所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。 //这段没看懂
实例:
1 public class Test{ 2 public static void main(String args[]){ 3 Integer x=5; 4 x=x+10; 5 System.out.println(x); 6 } 7 }
当x被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。
1 /* 2 3 java 中的自动装箱与拆箱: 4 5 装箱就是自动将基本数据类型转换为包装器类型; 6 7 拆箱就是自动将包装器类型转换为基本数据类型。 8 */ 9 10 public class Number{ 11 public static void main(String[]args){ 12 /* 13 Integer i1=128; //装箱,相当于Integer.valueOf(128); 14 int t=i1; //相当于i1.intValue()拆箱 15 System.out.println(t); 16 */ 17 18 /* 19 对于-128到127(默认是127)之间的值,被装箱后,会被放在内存里进行重用,但是如果超出了这个值,系统会重新new一个对象 20 */ 21 Integer i1=200; 22 Integer i2=200; 23 24 /* 25 注意==与equals的区别 26 == 它比较的是对象的地址 27 equals 比较的是对象的内容 28 */ 29 30 if(i1==i2){ 31 System.out.println("true"); 32 } else { 33 System.out.println("false"); 34 } 35 } 36 }
Java Math 类
Java的Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math的方法都被定义为static形式,通过Math类可以在主函数中直接调用。
1 public class Test{ 2 public static void main(String[]args) 3 { 4 System.out.println("90度的正弦值: "+Math.sin(Math.PI/2)); 5 System.out.println("0度的余弦值: "+Math.cos(0); 6 System.out.println("60度的正切值: "+Math.tan(Math.PI/3)); 7 System.out.println("1的反正切值: "+Math.atan(1)); 8 System.out.println("π/2的角度值: "+Math.toDegrees(Math.PI/2)); 9 System.out.println(Math.PI); 10 } 11 } 12 13 /* 执行结果: 14 90度的正弦值:1.0 15 0度的余弦值:1.0 16 60度的正切值: 1.7320508075688767 17 1的反正切值: 0.7853981633974483 18 π/2的角度值: 90.0 19 3.141592653589793 20 */