做网站需要哪些费用,深圳建设网站seo 手机,wordpress的MD风格主题,.网站链接策略前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
1、Integer是int的包装类#xff0c;int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用#xff0c;而int变量不需要…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
1、Integer是int的包装类int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用而int变量不需要 3、Integer实际是对象的引用当new一个Integer时实际上是生成一个指针指向此对象而int则是直接存储数据值 4、Integer的默认值是nullint的默认值是0
延伸 关于Integer和int的比较 1、由于Integer变量实际上是对一个Integer对象的引用所以两个通过new生成的Integer变量永远是不相等的因为new生成的是两个对象其内存地址不同。
Integer i new Integer(100);
Integer j new Integer(100);
System.out.print(i j); //false2、Integer变量和int变量比较时只要两个变量的值是向等的则结果为true因为包装类Integer和基本数据类型int比较时java会自动拆包装为int然后进行比较实际上就变为两个int变量的比较
Integer i new Integer(100);
int j 100
System.out.print(i j); //true3、非new生成的Integer变量和new Integer()生成的变量比较时结果为false。因为非new生成的Integer变量指向的是java常量池中的对象而new Integer()生成的变量指向堆中新建的对象两者在内存中的地址不同
Integer i new Integer(100);
Integer j 100;
System.out.print(i j); //false4、对于两个非new生成的Integer对象进行比较时如果两个变量的值在区间-128到127之间则比较结果为true如果两个变量的值不在此区间则比较结果为false
Integer i 100;
Integer j 100;
System.out.print(i j); //trueInteger i 128;
Integer j 128;
System.out.print(i j); //false对于第4条的原因 java在编译Integer i 100 ;时会翻译成为Integer i Integer.valueOf(100)而java API中对Integer类型的valueOf的定义如下
public static Integer valueOf(int i){assert IntegerCache.high 127;if (i IntegerCache.low i IntegerCache.high){return IntegerCache.cache[i (-IntegerCache.low)];}return new Integer(i);
}java对于-128到127之间的数会进行缓存Integer i 127时会将127进行缓存下次再写Integer j 127时就会直接从缓存中取就不会new了
如果有错误的地方还请指正。
参考 http://blog.csdn.net/you23hai45/article/details/50734274 http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html