Geralmente, usaremos os tipos básicos de dados: byte, int, short, long, double, float, boolean, char;
Existem também oito tipos de empacotamento correspondentes: Byte, Integer, Short, Long, Double, Float, Character, Boolean;
Os tipos de empacotamento são declarados com final e não podem ser substituídos por herança em situações reais, o compilador irá automaticamente encaixotar o tipo de dados básico em um tipo de objeto ou desempacotar o tipo de objeto em um tipo de dados básico:
public static void main(String[] args) { int num1 = 1; //Coloca tipos de dados básicos em tipos de empacotamento de objetos Integer num2 = num1; Número inteiro3 = 3; //Descompacta a classe de dados do objeto int num4 = num3; }
A classe Number é uma classe abstrata do pacote java.lang. Ela fornece um método para descompactar tipos empacotados em tipos básicos. Todos os tipos empacotados de tipos básicos (tipos de dados) herdam esta classe abstrata e sua declaração final não pode ser herdada e alterada. .
pacote java.lang; classe abstrata pública Número implementa java.io.Serializable { público abstrato int intValue(); público abstrato longo longValue(); público abstrato float floatValue(); público abstrato duplo doubleValue(); byte público byteValue() { return (byte)intValue(); } public short shortValue() { return (curto)intValue(); } privado estático final longo serialVersionUID = -8742448824652078965L; }
Embalagem | Tipos de dados básicos |
---|---|
Booleano | booleano |
Byte | byte |
Curto | curto |
Inteiro | interno |
Longo | longo |
Personagem | personagem |
Flutuador | flutuador |
Dobro | dobro |
Esse tipo de empacotamento que é especialmente suportado pelo compilador é chamado de boxing, portanto, quando um tipo de dados interno é usado como um objeto, o compilador irá encaixotar o tipo interno em uma classe wrapper. Da mesma forma, o compilador pode descompactar um objeto em um tipo integrado. A classe numérica pertence ao pacote java.lang.
Aqui está um exemplo de boxe e unboxing:
teste de classe pública{
publicstaticvoidmain(Stringargs[]){
Integerx=5;//boxesinttoanIntegerobject
x = x + 10; // descompacta o inteiro para não
System.out.println(x);
}
}
Os resultados de compilação e execução do exemplo acima são os seguintes:
15
Quando x é atribuído a um valor inteiro, o compilador deve colocar x na caixa porque x é um objeto. Então, para que x seja adicionado, x é descompactado.
O Math do Java contém propriedades e métodos para realizar operações matemáticas básicas, como exponenciais elementares, logaritmos, raízes quadradas e funções trigonométricas.
Os métodos matemáticos são todos definidos em formato estático e podem ser chamados diretamente na função principal por meio da classe Math.
Exemplo
teste de classe pública {
público estático void principal (String []args)
{
System.out.println("Seno de 90 graus: " + Math.sin(Math.PI/2));
System.out.println("Cosseno de 0 graus: " + Math.cos(0));
System.out.println("tangente de 60 graus: " + Math.tan(Math.PI/3));
System.out.println("Arcotangente de 1: " + Math.atan(1));
System.out.println("O valor do ângulo de π/2: " + Math.toDegrees(Math.PI/2));
System.out.println(Math.PI);
}
}
Os resultados de compilação e execução do exemplo acima são os seguintes:
Seno de 90 graus: 1,0
Cosseno de 0 graus: 1,0
Valor tangente de 60 graus: 1,7320508075688767
Arco tangente de 1: 0,7853981633974483
O valor do ângulo de π/2: 90,0
3.141592653589793
Métodos de classe Number&Math
A tabela a seguir lista os métodos da classe Number e da classe Math comumente usados:
número de série | Métodos e Descrição | |||||
---|---|---|---|---|---|---|
1 | xxxValue() converte o objeto numérico em um valor do tipo de dados xxx e o retorna. | |||||
2 | compareTo() compara o objeto numérico com o parâmetro. | |||||
3 | equals() determina se o objeto numérico é igual ao parâmetro. | |||||
4 | valueOf() retorna um objeto Integer especificando o tipo de dados integrado | |||||
5 | toString() retorna o valor em formato de string. | |||||
6 | parseInt() analisa uma string no tipo int. | |||||
7 | abs() retorna o valor absoluto do argumento. | |||||
8 | ceil() retorna o menor número inteiro maior ou igual a (>=) o parâmetro fornecido, o tipo é ponto flutuante de precisão dupla. | |||||
9 | floor() retorna o maior número inteiro menor ou igual a (<=) o argumento fornecido. | |||||
10 | rint() retorna o número inteiro mais próximo do argumento. O tipo de retorno é duplo. | |||||
11 | round() retorna o valor int ou long mais próximo. | |||||
12 | min() retorna o valor mínimo dos dois parâmetros. | |||||
13 | max() retorna o valor máximo dos dois parâmetros. | |||||
14 | exp() retorna a potência do parâmetro da base numérica natural e. | |||||
15 | log() retorna o logaritmo da base numérica natural do argumento. | |||||
16 | pow() retorna o primeiro parâmetro elevado à potência do segundo parâmetro. | |||||
17 | sqrt() encontra a raiz quadrada aritmética do argumento. | |||||
18 | sin() encontra o valor do seno do parâmetro de tipo duplo especificado. | |||||
19 | cos() encontra o valor do cosseno do parâmetro de tipo duplo especificado. | |||||
20 | tan() encontra o valor tangente do parâmetro de tipo duplo especificado. | |||||
vinte e um | asin() encontra o valor do arco seno do parâmetro de tipo duplo especificado. | |||||
vinte e dois | acos() encontra o valor do arco cosseno do parâmetro de tipo duplo especificado. | |||||
vinte e três | atan() encontra o valor do arco tangente do parâmetro de tipo duplo especificado. | |||||
vinte e quatro | atan2() converte coordenadas cartesianas em coordenadas polares e retorna o valor do ângulo das coordenadas polares. | |||||
25 | toDegrees() converte parâmetros em ângulos. | |||||
26 | toRadians() converte ângulos em radianos. | |||||
27 | random() retorna um número aleatório. |