黑马程序员技术交流社区
标题:
对象个数问题
[打印本页]
作者:
胡元
时间:
2012-4-1 11:21
标题:
对象个数问题
integer i = 100,这个表达式有一个对象就是基本数据100
interger i = new interger(100)咋就成两个对象了呀,各位给点解释!
作者:
曹魁
时间:
2012-4-1 11:27
integer i = 100本来是一个对象,
new interger(100)相当于
又新创建了
一个!
而不是调用!
作者:
袁野
时间:
2012-4-1 11:40
自动装箱和享元设计模式(代码)
public class AutoBox {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer aobj = new Integer(3); // 早起的写法,
Integer iobj = 3; // 自动装箱,1.5的新特性
System.out.println(iobj + 7); // 自动拆箱
String name1 = new String("aaa");
String name2 = new String("aaa");
System.out.println(name1 == name2); // flase ,每个引用都有一个new,所以地址值不同
Integer a = 10;
Integer b = 10;
System.out.println(a == b); // true
Integer a1 = 135;
Integer b1 = 135;
System.out.println(a1 == b1); // flase
// 为什么结果不相同那???????????????
// 对于基本数据类型的整数要装箱成基本数据类型的整数,数字在一个字节之内 -128--127 之间(因为他们的使用频率高)
// 一旦被包装成Integer对象就被缓存起来,当下次用的时候先看缓存中有没有,有就拿出来用,节省内存空间
// 这样就可以成为一种设计模式,享元设计模式
// 例:在word文档中,每一个字母都有一个字符,有很多重复的字母,这样我们就可以定义26个字符就可以了
// sdfqqqs...s和s的区别就是 位置不同,s有个显示的方法 ,s.display(int x, int y)
//
// 享元设计模式的定义
// 如果有很多很小的对象,他们有很多相同的点,那么久可以把他们变成一个对象,
// 不同的东西变成外部的属性,作为方法的参数传入
Integer num1 = Integer.valueOf(3); // 返回一个表示指定的 int 值的 Integer 实例。
Integer num2 = Integer.valueOf(3);
System.out.println(num1 == num2);
作者:
曹魁
时间:
2012-4-1 11:42
本帖最后由 曹魁 于 2012-4-1 11:47 编辑
在
JDK1.5之前
,要使用以下语句才能将int包装为一个Integer对象:
Integer integer = new Integer(10);
自动装箱运用的方法可以如下:
int i = 10;Integer integer = i;
作者:
张小庆
时间:
2012-4-1 16:29
你都说了,100是一个对象,你new完之后当然又有了一个啊
作者:
陈苓
时间:
2012-4-3 02:09
interger i = new interger(100)
一个是interger对象,一个是指向这个interger对象的引用对象。
作者:
yangshang1
时间:
2012-4-3 07:02
public class TestInt {
public static void main(String[] args) {
Integer a=new Integer(200);
Integer a1=new Integer(200);//这不是两个对象吧
Integer a2=200;
Integer a3=new Integer(a2);//这才是两个对象吧
System.out.println(a3);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2