Recursos e vantagens do Java
- Simplicidade
- Orientado a Objeto
- portabilidade
- alta performance
- distribuído
- Dinâmico
- Multithreading
- segurança
- Robustez
JDK JRE JVM
JDK contém os dois a seguir, no máximo
Java Development Kit
JRE
Java Runtime Environment
JVM
JAVA Virtual Machine
tipo de dados
-
Linguagem fortemente tipada
-
- O uso de variáveis é necessário para cumprir estritamente os regulamentos, e todas as variáveis devem ser definidas antes de serem usadas
-
Linguagem mal digitada
-
Os tipos de dados Java são divididos em duas categorias
- Tipo primitivo
- Tipo de referência
tipo de dados
Tipo primitivo
- Tipo numérico
Tipo inteiro | Tamanho do byte | alcance |
---|---|---|
byte | 1 | -128-127 |
curto | 2 | -32768-32767 |
int | 4 | -2147483648-214748364 |
longo | 8 | -9223372036854775808-9223372036854775807 |
Tipo de ponto flutuante | Tamanho do byte |
---|---|
flutuador | 4 |
em dobro | 8 |
Caractere tipo char | 2 |
- Tipo booleano: ocupa 1 bit e seu valor é apenas verdadeiro e falso
Extensão inteira: hexadecimal binário ob decimal octal 0 hexadecimal 0X
输出
int i = 10; 10
int i = 010; //八进制0 8
int i = 0x10; //十六进制0X 0~9 A~F 16 16
int i = 0x11; 17
Como os números de ponto flutuante expandem os negócios bancários? dinheiro
-
Classe de ferramenta matemática BigDecimal
-
erro de arredondamento discreto finito flutuante é aproximadamente próximo, mas não igual
-
em dobro
-
É melhor evitar o uso de números de ponto flutuante para comparação como um todo
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
输出
f==d //false
float d1 = 23131654351F;
float d2 = d1 + 1;
输出
d1==d2 //true
-
Expansão de personagem
char c1 = 'A'; char c2 = '中'; 输出 c1 = A (int)c1 = 65 //强制转换 c2 = 中 //强制转换 (int)c2 = 20013 //强制转换
- Todos os caracteres são essencialmente números
- Codificando tabela Unicode: (97 = a 65 = A) 2 bytes 0-65536 Excel 2 16 = 65536
- U0000 UFFFF
- Todos os caracteres são essencialmente números
char c3 = '\u0061';
输出
c3 = a;
Personagem de fuga
- \ t guia horizontal
- \ n Nova linha
Resultado
Hello \ tWorld = Hello World
Hello \ nWorld = Hello
Mundo
Objeto de análise de memória
输出
String sa = new String("hello world");
String sb = new String("hello world");
sa = sb //false
String sc = "hello world";
String sd = "hello world";
sc = sd //true
O que é byte
- Bit: é a menor unidade de armazenamento de dados no computador.11001100 é um número binário de oito bits.
- Byte (byte): É a unidade básica de processamento de dados em um computador. Normalmente é representado por B maiúsculo.
- 1B (byte, byte) = 8 bits (bit)
- Caracteres: refere-se a palavras alfanuméricas e símbolos usados em computadores
Conversão de tipo
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-hotlinking. Recomenda-se salvar a imagem e carregá-la diretamente (img-bSXNw8pl-1596557159876) (C: \ Users \ 10560 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200804233646771.png)]
ponto importante
- Não é possível converter valores booleanos
- Não é possível converter o tipo de objeto em tipo irrelevante
- Ao converter alta capacidade em baixa capacidade, force a conversão // Por exemplo, int i = 1; saída ((byte) i)
- Pode haver estouro de conteúdo ou problemas de precisão durante a conversão!
Novo recurso do JDK7, os números podem ser separados por sublinhado
int money = 10_0000_0000;
int years = 20;
int total = money*years; //-1474836480,计算的时侯溢出了
long total2 = money*years; //默认是int,转换之前已经存在问题了?
long total3 = money*((long)years); //先把一个数转换为long
输出才正常