Perguntas clássicas da entrevista básica do Java, bem -vindo a coletar e compartilhar.
Pergunta: O que acontece se o método principal for declarado privado?
Resposta: Pode compilar normalmente, mas solicitará "o método principal não é público" ao executar.
Pergunta: Qual é a diferença entre passar a referência e o valor passante em Java?
Resposta: Passar uma referência significa passar um endereço em vez do próprio valor, e passar um valor é uma cópia do valor.
Pergunta: Se você deseja reescrever o método igual de um objeto, o que mais deve considerar?
Resposta: HashCode.
Pergunta: Como é implementada "Write Once, Run Everywhere" de Java?
Resposta: Os programas Java serão compilados em um arquivo de classe composto por bytecodes, que podem ser executados em qualquer plataforma, portanto, o Java é independente da plataforma.
Pergunta: Explique o papel de cada palavra -chave na instrução Public Static Void (String args [])
Resposta: O público: O método principal é o primeiro método chamado quando um programa Java é executado, por isso deve ser visível para o ambiente Java. Portanto, a visibilidade é definida como PULIC.
estático: a plataforma Java não criará uma instância dessa classe ao chamar esse método; portanto, esse método deve ser declarado estático.
Vazio: o método principal não tem valor de retorno.
String é o tipo de parâmetro passado na linha de comando e args refere -se a uma matriz de strings passadas na linha de comando.
Pergunta: == diferença de iguais
Resposta: == Compare se dois objetos são o mesmo objeto na memória, o que significa que os locais de armazenamento na memória são os mesmos. Os valores armazenados pelos dois objetos de string são os mesmos, mas podem ser armazenados em locais diferentes na memória.
== Comparação é a referência, enquanto o método igual compara o conteúdo. Public boolean é igual (objeto obj) Este método é fornecido por um objeto e pode ser reescrito por subclasses. A implementação padrão retornará true apenas quando o objeto for comparado consigo mesmo e, neste momento, é equivalente a ==. String, Bitset, Data e arquivo Substituir o método igual. Para dois objetos de string, valores iguais significa que eles contêm a mesma sequência de caracteres. Para uma classe de wrapper com um tipo básico, valores iguais significa que os valores do tipo básico correspondentes são os mesmos.
classe pública Equalstest {public static void main (string [] args) {string s1 = "abc"; String s2 = s1; String s5 = "abc"; String S3 = new String ("ABC"); String S4 = new String ("ABC"); System.out.println ("== Comparação:” + (S1 == S5)); System.out.println ("== Comparação:” + (S1 == S2)); System.out.println ("Usando o método igual:" + s1.equals (s2)); System.out.println ("== Comparação:” + S3 == S4); System.out.println ("Usando o método igual:" + s3.equals (s4)); }}resultado:
== Comparação: Verdadeiro
== Comparação: Verdadeiro
Usando o método igual: true
falso
Usando o método igual: true
Pergunta: O que acontece se o modificador estático do método principal for removido?
Resposta: O programa pode compilar normalmente. Uma exceção de noschmethoderror será lançada durante o tempo de execução.
Pergunta: Por que o driver Oracle Type4 é chamado de driver fino?
RESPOSTA: O Oracle fornece um driver JDBC tipo 4, chamado de driver fino. Esse driver contém uma implementação do TCP/IP Net8 no Oracle que está totalmente implementado em Java. Portanto, é independente da plataforma e pode ser baixado pelo navegador em tempo de execução e não depende da implementação do Oracle de nenhum cliente. A string de conexão do cliente usa a porta de endereço TCP/IP, não o nome TNSName do nome do banco de dados.
Pergunta: Deixe -me apresentar o método Finalize
Resposta: Final: Declaração Constante. Finalmente: lidar com exceções. Finalize: ajuda na coleta de lixo.
As variáveis declaradas na interface são finais por padrão. A classe final não pode ser herdada, o que significa que não há subclasses. Isso é feito por tipos básicos de razões de segurança, como string e número inteiro. Isso também permite que o compilador faça algumas otimizações e facilite a segurança da segurança dos threads. O método final não pode ser reescrito. O valor da variável final não pode ser alterado. O método finalize () será chamado antes que um objeto seja destruído e reciclado. Finalmente, geralmente é usado para manuseio de exceção, independentemente de ser ou não uma exceção, será executada ou não. Por exemplo, o fechamento da conexão geralmente é feito em um bloco finalmente.
Pergunta: Qual é a API Java?
Resposta: Java API é uma coleção de um grande número de componentes de software que fornecem muitos recursos úteis, como componentes da GUI.
Pergunta: O que é a aula de GregorianNendar?
RESPOSTA: Gregoriancalendar fornece suporte para calendários ocidentais tradicionais.
Pergunta: Qual é a classe ResourceBundle?
Resposta: O ResourceBundle é usado para armazenar recursos em um local especificado. Os aplicativos podem carregar esses recursos de acordo com a localidade de tempo de execução, fornecendo assim a exibição de diferentes idiomas.
Pergunta: Por que não há variáveis globais em Java?
Resposta: As variáveis globais são globalmente visíveis e o Java não suporta variáveis globalmente visíveis porque: as variáveis globais destroem o princípio da transparência de referência. As variáveis globais causam conflitos no espaço para nome.
Pergunta: Como converter o tipo de string para o tipo de número?
Resposta: O Método Valorof da classe Integer pode converter uma string em um número. Aqui está um exemplo de código:
String numstring = "1000";
int id = integer.valueof (numString) .IntValue ();
Pergunta: Qual é a classe SimpleTimeZone?
Resposta: O SimpleTimeZone fornece suporte à data gregoriana.
Pergunta: Qual é a diferença entre um loop de tempo e um loop?
Resposta: a estrutura enquanto determina se a próxima iteração deve continuar no início do loop. A estrutura DO/enquanto determina se a próxima iteração continuará no final do loop. A estrutura DO executará o corpo do loop pelo menos uma vez.
Pergunta: Qual é a aula de localidade?
Resposta: A classe de localidade é usada para ajustar dinamicamente a saída do programa de acordo com o ambiente do local.
Pergunta: Quais são os princípios da programação orientada a objetos?
Resposta: Existem três pontos principais: polimorfismo, herança e encapsulamento.
Pergunta: Introdução aos princípios da herança
Resposta: A herança permite que um objeto obtenha as propriedades de outro objeto. O uso da herança permite que as funções testadas sejam reutilizadas e podem ser modificadas de uma só vez, e todos os locais de herança entram em vigor ao mesmo tempo.
Pergunta: O que é a conversão do tipo implícito?
Resposta: O tipo implícito de conversão está simplesmente atribuindo um tipo a outro tipo, sem dizer explicitamente ao compilador que a conversão ocorreu. Nem todos os tipos suportam conversão de tipo implícito.
Exemplo de código:
int i = 1000;
longo j = i; // elenco implícito
Pergunta: O tamanho de uma palavra -chave em Java?
Resposta: Não.
Pergunta: Qual é o método nativo?
Resposta: O método nativo é um método de implementação de código não Java.
Pergunta: em System.out.println (), o que são sistemas, out e println?
Resposta: O sistema é uma classe final predefinida fornecida pelo sistema. OUT é um objeto PrintStream e o Println é um método sobrecarregado no objeto OUT.
Pergunta: O que são encapsulamento, herança e polimorfismo?
Resposta: Simplificando, o polimorfismo refere -se a várias implementações de um nome. O polimorfismo permite que uma entidade implemente operações diferentes de maneira comum. A operação específica é determinada pela implementação real.
Existem três maneiras de manifestar o polimorfismo em Java: a sobrecarga do método é implementada por meio de herança e reescrita de métodos através da interface Java.
Pergunta: O que é uma conversão do tipo explícito?
Resposta: A conversão do tipo explícito informa explicitamente ao compilador para converter objetos.
Exemplo de código:
longo i = 700.20;
int j = (int) i; // elenco explícito
Pergunta: O que é uma máquina virtual Java?
Resposta: As máquinas virtuais Java são sistemas de software que podem ser portados para diferentes plataformas de hardware.
PERGUNTA: O que é o tipo que está do lado de baixo?
Resposta: Conversão para baixo refere -se à conversão de um tipo comum em um tipo específico, que é realizado para baixo na estrutura da herança.
Pergunta: Qual é o modificador de acesso para Java?
Resposta: O modificador de acesso é uma palavra -chave que indica o tipo de acesso de um membro da classe. Use essas palavras -chave para definir o acesso a métodos ou variáveis para programas. Eles contêm:
Público: Todas as classes podem acessar protegidas: todas as subclasses podem acessar privado: somente as classes atribuídas podem acessar o padrão: as classes e subclasses atribuídas no mesmo pacote podem acessar
Pergunta: Quais são as classes pais de todas as classes?
Resposta: Objeto.
Pergunta: Quais são os tipos básicos de Java?
Resposta: Byte, char, curto, int, longo, flutuante, duplo, booleano.
Pergunta: Quais são as características dos tipos estáticos?
Resposta: As variáveis estáticas estão vinculadas à classe, e não aos objetos de instância da classe. Cada objeto de instância compartilha a mesma variável estática. Ou seja, uma classe tem apenas uma variável estática, não importa quantos objetos ela tenha. Variáveis de classe ou variáveis estáticas são declaradas através da palavra -chave estática. As variáveis de classe são geralmente usadas como constantes. As variáveis estáticas são geralmente acessadas por nomes de classe. Quando o programa estiver em execução, essa variável será criada até que o programa seja concluído e não seja destruído. O escopo das variáveis de classe é o mesmo que as variáveis de instância. Seu valor inicial é o mesmo que as variáveis de membro. Quando a variável não for inicializada, haverá um valor padrão de acordo com seu tipo de dados. Da mesma forma, os métodos estáticos são métodos que pertencem a classes, não objetos de classe. Suas chamadas não agem em objetos de classe e não precisam criar nenhuma instância de classe. Os próprios métodos estáticos são finais, porque a reescrita só acontecerá em instâncias de aula. Os métodos estáticos estão ligados à classe, não aos objetos. Os métodos estáticos da classe pai serão bloqueados pelos métodos estáticos da classe infantil, desde que o método original não seja declarado como final. Os métodos não estáticos não podem substituir os métodos estáticos, ou seja, você não pode alterar um método estático em um método de instância em uma subclasse.
Variáveis não estáticas têm uma cópia separada do valor em cada instância do objeto.
Pergunta: Qual é a diferença entre o operador e o operador &&?
Resposta: Quando uma expressão é avaliada, ambos os operando serão avaliados e && é mais como um atalho para um operador. Quando a expressão de um && avalia, o primeiro operando é calculado primeiro e, se retornar true, o segundo operando será calculado. Se o primeiro operando for considerado falso, o segundo operando não será avaliado.
Pergunta: Como o Java lida com o transbordamento e o fluxo de números inteiros?
Resposta: O Java armazena os bytes de ordem baixa correspondente no resultado do cálculo no valor correspondente de acordo com o tamanho do tipo.
Pergunta: O que acontece se o vazio estático público for escrito como vazio público estático?
Resposta: O programa é compilado e executado normalmente.
Pergunta, qual é a diferença entre declarar variáveis e definir variáveis?
Resposta: Declare variáveis, fornecemos apenas o tipo e o nome da variável e não a inicializamos. A definição inclui dois estágios: strings de declaração e inicialização S; apenas declaração variável, string s = new string ("bob"); ou string s = "bob"; é uma definição variável.
Pergunta: Qual tipo de parâmetro Tipo Java suporta?
Resposta: Os parâmetros Java são todos valores passados. Para um objeto, o valor passado é uma referência ao objeto, ou seja, a cópia da referência original e a referência do parâmetro apontam para o mesmo objeto.
Pergunta: Quais são os princípios do encapsulamento de objetos?
Resposta: O encapsulamento é vincular os dados e o código que opera os dados em uma unidade separada. Isso garante a segurança dos dados e impede o uso incorreto do código externo. Os objetos permitem que programas e dados sejam encapsulados para reduzir possíveis interferências. Outra compreensão do encapsulamento é atuar como uma camada protetora para dados e código para evitar o acesso aleatório ao código fora da camada protetora.
Pergunta: Como você entende as variáveis?
Resposta: Uma variável é uma área de memória nomeada para acesso pelo programa. As variáveis são usadas para armazenar dados e, como o programa é executado, os dados armazenados também podem mudar.
Pergunta: O que é melhoria numérica?
Resposta: Melhoramento numérico refere -se à conversão de dados de um tipo de dados menor para um tipo de dados maior para operações inteiras ou de ponto flutuante. Durante o processo de aumento numérico, o byte, o char, os valores curtos serão convertidos em tipo int. Quando necessário, o tipo int também pode ser promovido a muito tempo. Longo e flutuante podem ser convertidos em tipos duplos.
Pergunta: Qual é o tipo de conversão de java?
Resposta: A conversão de um tipo de dados para outro é chamado de conversão de tipo. O Java possui dois tipos de métodos de conversão, um é a conversão do tipo explícito e o outro está implícito.
Pergunta: Qual é o primeiro parâmetro da matriz de string nos parâmetros do método principal?
Resposta: A matriz está vazia, sem nenhum elementos. Ao contrário de C ou C ++, o primeiro elemento é o nome do programa por padrão. Se a linha de comando não fornecer nenhum parâmetros, a matriz de string no método principal está vazia, mas não nula.
Pergunta: Como determinar se uma matriz é nula ou vazia?
Resposta: o valor de saída do Array.length. Se for 0, a matriz está vazia. Se for nulo, uma exceção nula de ponteiro será lançada.
Pergunta: Várias classes podem ter permissão para possuir ao mesmo tempo e ter métodos principais no programa?
Resposta: Sim. Quando o programa for executado, especificaremos o nome da classe em execução. A JVM procurará apenas os principais métodos da classe que você especificou. Portanto, não há conflito de nomeação entre várias classes com métodos principais.
Pergunta: Quando as variáveis estáticas carregam? Compilar ou tempo de execução? Qual é o momento do carregamento do bloco de código estático?
Resposta: Quando o carregador de classe carrega a classe na JVM, variáveis estáticas serão criadas, o que não tem nada a ver com o fato de o objeto ser criado. O espaço de memória será alocado quando as variáveis estáticas forem carregadas. O código do bloco de código estático será executado apenas uma vez quando a classe for inicializada pela primeira vez. Uma classe pode ter vários blocos de código estático, não é um membro da classe, não tem valor de retorno e não pode ser chamado diretamente. Os blocos de código estático não podem conter isso ou super, eles geralmente são inicializados com variáveis estáticas.
Pergunta: Uma classe pode ter vários métodos principais?
Resposta: Sim, mas apenas um método principal tem a seguinte assinatura:
public static void main (string [] args) {}
Caso contrário, o programa não será compilado. O compilador avisará que o método principal já existe.
Pergunta: Deixe -me apresentar brevemente como a JVM funciona?
Resposta: A JVM é um computador abstrato. Assim como um computador real, eles primeiro compilarão o arquivo .java em um arquivo .class (o arquivo .class é o arquivo bytecode) e, em seguida, usará seu intérprete para carregar o bytecode.
Pergunta: E se os valores de duas variáveis forem trocados?
Resposta: primeiro adicione dois valores e atribua valores à primeira variável, depois subtraia a segunda variável do resultado e atribua valores à segunda variável. Em seguida, subtraia a segunda variável com a primeira variável e atribua o valor à primeira variável ao mesmo tempo. O código é o seguinte:
int a = 5, b = 10; a = a+b; b = ab; a = ab;
Use XOR para alternar. O primeiro método também pode causar transbordamento. O método de xor é o seguinte: int a = 5, b = 10; a = a+b; b = ab; a = ab;
int a = 5; int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
Pergunta: O que é encapsulamento de dados?
Resposta: Uma maneira de encapsular dados é criar métodos definidos e obter na classe para acessar as variáveis de dados do objeto. De um modo geral, as variáveis são privadas, enquanto os métodos Get e Set são públicos. O encapsulamento também pode ser usado para verificar os dados ao armazenar dados, ou calcular dados ou usá -los como introspecção (como o uso de javabeus em suportes). A encapsulação de dados e funções em uma estrutura separada é chamada de encapsulamento de dados. O encapsulamento está realmente encapsulando dados e métodos de operação associados em uma unidade independente, para que os dados possam ser acessados usando esses métodos associados. O encapsulamento fornece segurança de dados, que é realmente uma maneira de ocultar dados.
Pergunta: Qual é a API de reflexão? Como é implementado?
Resposta: Reflexão refere -se à função de poder visualizar o status e as características de uma classe durante o tempo de execução e poder executar o gerenciamento dinâmico. Essas funções são fornecidas através de algumas APIs de reflexão de classe interna, como classe, método, campo, construtores, etc. Exemplo de uso: use o método getName da API de reflexão Java para obter o nome da classe.
Pergunta: A própria JVM manterá o cache? É alocado objetos na pilha, ou a pilha do sistema operacional ou o heap gerenciado pela própria JVM? Por que?
Resposta: Sim, a própria JVM gerencia o cache, que cria objetos na pilha e, em seguida, faz referência a esses objetos na pilha.
Pergunta: O que é memória virtual?
Resposta: A memória virtual também é chamada de memória estendida e, na verdade, não há memória física real.
Pergunta: O método pode ser estático e sincronizado ao mesmo tempo?
Resposta: Sim. Se você fizer isso, a JVM adquire a trava na instância java.lang.class associada a esse objeto. Fazer isso é igual a:
sincronizado (xyz.class) {
}
Pergunta: Qual é a diferença entre String e StringTokenizer?
Resposta: StringTokenizer é uma classe de ferramentas usada para dividir strings.
StringTokenizer st = new StringTokenizer ("Hello World"); while (St.HasmoreTokens ()) {System.out.println (St.NextToken ());}
Saída:
Olá
Mundo
Pergunta: Quais são as características das variáveis transitórias?
Resposta: A variável transitória não será serializada. Por exemplo, quando uma classe que implementa a interface serializável é serializada para o ObjectStream, as variáveis do tipo transitório não serão gravadas no fluxo. Ao mesmo tempo, quando as costas desserializadas, o valor variável correspondente é nulo.
Pergunta: Quais contêineres usam o layout de fronteira como seu layout padrão?
Resposta: Janela, quadro, diálogo.
Pergunta: Como entender o que é a sincronização?
Resposta: A sincronização é usada para controlar o acesso de recursos compartilhados entre vários threads para garantir que apenas um thread possa acessar esse recurso ao mesmo tempo. Em um programa multithread protegido de forma assíncrona, quando um thread está modificando uma variável compartilhada, outro thread também pode usar ou atualizar seu valor. A sincronização evita a geração de dados sujos.
Sincronize os métodos:
public sincronizado void method1 () {// Código apropriado relacionado ao método.}Sincronize os blocos de código dentro do método:
public myfunction () {sincronizado (this) {// código sincronizado aqui. }}O exposto acima é uma compilação das informações para perguntas da entrevista em Java. Continuaremos a adicionar informações relevantes no futuro. Obrigado pelo seu apoio a este site!