1. Tipos básicos de dados
Cirurgia plástica:
byte 1 byte
curtos 2 bytes
interno 4 bytes
longo 8 bytes
personagem:
caractere 2 bytes
Número de ponto flutuante:
flutuar 4 bytes
duplo 8 bytes
Booleano:
booleano 1 byte
2.java 7 adiciona novos inteiros binários
Comece com 0b ou 0B
3. Os caracteres em java são codificados Unicode de 16 bits, o formato é '/uXXXX', onde xxxx representa um número inteiro hexadecimal
4. Java estipula infinito positivo, infinito negativo e zero.
Infinito positivo = um número positivo dividido por 0
Infinito negativo = um número negativo dividido por zero
Divida 0,0 por 0,0 ou tire a raiz quadrada de um número negativo para obter um número não
5. Os tipos booleanos em Java só podem ser verdadeiros e falsos
6. Não existe array multidimensional em java
Parece que os arrays multidimensionais na linguagem C não são arrays reais. Por exemplo, a[3][4], a[0] a[1] a[2] são reais e são preenchidos com endereços e. são dinâmicos na linguagem C iguais ao array alocado como.
int [][] b = novo int[3][4]
7. Método de compilação com pacote em Java
javac -d . Hello.java irá gerar uma árvore de diretórios no diretório atual.
Execute o nome do pacote java.nome da classe
8. O campo de objetos no polimorfismo Java não possui polimorfismo, como classe pai object = nova subclasse (), object.field é chamado de classe pai, mesmo que o campo seja coberto na subclasse.
9. operador instância
Formato: nome da variável de referência instância do nome da classe (ou interface) É usado para determinar se o objeto anterior é uma instância da classe, subclasse ou classe de implementação do objeto seguinte. Em caso afirmativo, ele retorna verdadeiro, caso contrário, retorna falso.
10. Conversão entre tipos de dados básicos e classes de encapsulamento correspondentes em Java
intuma = 1;
Inteiro A = novo Inteiro(a);
a = A.intValue();
O mesmo vale para outros tipos.
11. Exemplo de classe Singleton
público estático void principal(String[] args)
{
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2);
}
}
Campo de Classe: O valor inicial deve ser especificado em um bloco de inicialização estático ou ao declarar o FIeld
Campo de Instância: deve ser declarado em um bloco de inicialização não estático ou especificando um valor inicial ou construtor ao declarar o Campo.
13.As variáveis finais devem ser inicializadas explicitamente. O sistema não inicializará implicitamente as variáveis finais.
14.java usará o pool de constantes para gerenciar as constantes de string diretas que foram usadas antes, por exemplo: String a = "java";, o sistema salvará a string constante "java" no pool de constantes, e quando String b = "java"; é executado novamente, a == b é verdadeiro
15.Os métodos finais não podem ser substituídos e as classes finais não podem ser herdadas.
Se o método privado for usado, será igual ao privado final.
Se um método modificado com final aparecer em uma subclasse, ele será recentemente definido pela subclasse e não terá nada a ver com a classe pai.
16. Classe imutável: O campo desta classe não pode ser alterado após a criação. Java fornece oito classes básicas de wrapper de variáveis e classes de string são imutáveis.
17. Classes imutáveis que armazenam instâncias em cache
booleano público é igual (objeto objeto)
{
se(este == obj)
retornar verdadeiro;
if(obj!= null && obj.getClass() == CacheImmutale.class)
{
CacheImmutale ci = (CacheImmutale)obj;
retornar nome.equals(ci.getName());
}
retornar falso;
}
hashCode int público()
{
retornar nome.hashCode();
}
}
classe pública CacheImmuteTest
{
público estático void principal(String[] args)
{
CacheImmutale c1 = CacheImmutale.valueOf("Olá");
CacheImmutale c2 = CacheImmutale.valueOf("Olá");
System.out.println(c1 == c2);
}
}
Há também java.lang.Integer fornecido por java, que usa um mecanismo de cache para criar números entre -128-127.
Inteiro in2 = Integer.valueOf(6);
Inteiro in3= Integer.valueOf(6);
in2 == in3 é verdadeiro;
18. Estático e abstrato não podem modificar um método ao mesmo tempo. Não existe método abstrato de classe.
19. Uma classe pode ter uma classe pai e implementar várias interfaces. Na interface, Filed é público, estático e final, e o método é público abstrato.
20. Quando um método de uma classe interna não estática acessa uma variável, a ordem de pesquisa é: primeiro dentro do método na classe interna -> classe interna -> se não for encontrado na classe externa, ocorrerá um erro de compilação.
classe pública DiscernVariable
{
private String prop = "Variável de instância da classe externa";
aula particular InClass
{
private String prop = "Variável de instância da classe interna";
informação de vazio público()
{
String prop = "variável local";
System.out.println("Valor do campo da classe externa: " + DiscernVariable.this.prop);
System.out.println("Valor do campo da classe interna: " + this.prop);
System.out.println("Valor da variável local: " + prop);
}
}
teste de vazio público()
{
InClass in = new InClass();
in.info();
}
público estático void principal(String[] args)
{
new DiscernVariable().test();
}
}
22. Acesse classes internas fora das classes externas
Acesse classes internas não estáticas: outclass.Inclass varname = new outclass().new InClass();
Acesse classes internas estáticas: outclass.Inclass varname = new outclass.Inclass();
aula fora
{
classeIn
{
publicIn()
{
System.out.println("Construtor de classe interna não estática");
}
}
}
classe públicaCreatInnerInstance
{
público estático void principal(String[] args)
{
Out.In in = new Out().new In();
/*
O código acima pode ser escrito separadamente como:
Fora.Entra dentro;
Saída = new Saída();
in = out.new In();
*/
}
}
classe SubClass estende Out.In
{
//Mostra o construtor que define a SubClasse
Subclasse pública (saída)
{
//Exibe o construtor que chama In através do objeto Out transferido
fora.super();
}
}
classe StaticOut
{
classe estática StaticIn
{
public StaticIn()
{
System.out.println("construtor de classe interna estática");
}
}
}
classe pública CreatStaticInnerInstance
{
público estático void principal(String[] args)
{
StaticOut.StaticIn in = new StaticOut.StaticIn();
/*
O código acima pode ser escrito separadamente como:
StaticOut.StaticIn em;
in = new StaticOut.StaticIn();
*/
}
}
classe SubClass estende StaticOut.StaticIn
{
//Não há necessidade de criar instância de classe interna
}