java编程思想
有一系列类需特别对待,可将他们想象成主要类型,进行程序设计时频繁用到。之所以特别对待,由于用new创建对象(特别是小的,简单的变量并不是特别有效),因为new将对象至于堆中;对于这些类型,java采用了与c相同的方法。不用new创建变量,而是创建一个并非句柄的变量。这个变量容纳了具体的值,并存在栈中,更高效的存取。
java决定主要类型大小,是java强移植行的原因之一。
学习: int 数据类型,声明变量 ,默认值是0;Integer 是类 ,默认是null。
测试
public static void main(String[] args){
int a = 1;
Integer b = 1;//相当于 Integer a=Integer.valueOf(1) 自动装箱 ;int i = new Integer(2); 这是拆箱
Integer c = new Integer(1);
Integer d = 1;
Integer e = 128;
Integer f = 128;
System.out.println(a==b);//true
System.out.println(a==c);//true Integer自动拆箱成int类型,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换
System.out.println(b==c);// false ==运算比较的不是值而是引用
System.out.println(b.equals(c));//true 比较值
System.out.println(b==d);//true
System.out.println(b==d);//false 整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引 用常量池中的Integer对象
}
比较
一般创建实体类时候用Integer
int a // a 是变量,只能参与运算
Integer a //a 是引用,调用方法,实现类型转化。保存到数据库null。如果是int报错。
书中写到:
补充:
高精度计算类型 BigInteger 和 BigDecimal,没有主类型,但是有自己特殊的方法,对应主类型执行的操作。对int做的,对他们都可以。必须使用方法调用,不能使用运算符。牵扯更多,运算速度慢一些,保证了精度。
BigInteger 支持任意精度的整数。即精确表示任意大小的整数值,不会丢失任何信息;
BigDecimal 支持任意精度定点数字。进行货币计算。