所有的包装类(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.015 0度的余弦值:1.016 60度的正切值: 1.732050807568876717 1的反正切值: 0.785398163397448318 π/2的角度值: 90.019 3.14159265358979320 */