Compartilhamento de tecnologia

Duas perguntas da entrevista sobre Java todos os dias (1)

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. A diferença e a conexão entre esta palavra-chave e a superpalavra-chave

A palavra-chave this é usada nesta classe.

Dentro de uma classe, você pode usar this em qualquer método para se referir ao objeto atual.

A palavra-chave this é usada para resolver conflitos entre variáveis ​​globais e variáveis ​​locais.

this() pode chamar construtores sobrecarregados da mesma classe e precisa ser colocado na primeira linha.

A palavra-chave super é usada em subclasses.

Nas subclasses, métodos e propriedades nas classes pai podem ser chamados por meio de super.

super() pode chamar o construtor na classe pai e precisa ser colocado na primeira linha.

super() e this() não podem ser usados ​​ao mesmo tempo e nenhum deles pode ser usado em um método estático.

2. A diferença entre palavra-chave final e palavra-chave estática

final modifica variáveis, métodos, classes

Se final modificar uma variável, a variável será uma constante. As constantes não podem ser modificadas e devem ser inicializadas quando definidas.

Se o método for final, o método não pode ser substituído por subclasses

Se final modificar uma classe, a classe não poderá mais ser estendida ou subclassificada. String e Math na biblioteca de classes Java são classes finais.

constante de tipo de referência modificada final

Se a constante for um tipo de dados básico, ela não poderá ser modificada.

Se a constante for um tipo de referência, outros objetos não poderão ser atribuídos à referência, mas a referência poderá ser usada para alterar as propriedades dentro do objeto.

Variáveis ​​modificadas por static são variáveis ​​estáticas, que são essencialmente variáveis ​​globais. Todas as instâncias da classe compartilham as mesmas variáveis ​​estáticas. Portanto, após modificar o valor de uma variável estática através de um objeto, a variável estática acessada através de outros objetos da classe fica com o valor modificado. Quando a classe é carregada pela máquina virtual, as variáveis ​​estáticas são inicializadas e as variáveis ​​estáticas podem ser usadas sem criar um objeto da classe.

Os métodos modificados por estáticos são métodos estáticos. Eles só podem chamar diretamente outros métodos estáticos, só podem acessar dados estáticos diretamente e não podem fazer referência às palavras-chave this ou super de forma alguma.

O bloco de código modificado por estático é um bloco de código estático, que é executado apenas uma vez e é executado quando a classe é carregada. Sua função é inicializar os dados estaticamente.