Integer 我有点不明白啊 Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 到底有什么不一样啊?另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 肯定是不一样啊.你new了两个对象啊,那内存空间里就为你开辟了两个不同的内存区域啊,只不过是两个对象里的值相等而已Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?这个是java有个自动机制,会自动把int包装成integer.也会将integer自动装换成int 这个机制叫什么我忘了.好像叫什么自动封箱还是什么来的!有人知道不? 1.new个两个对象 test1与test2只是字面值上相等 其它就没什么联系了2.不会报错的 java的自动装包/拆包(jdk1.5新特性) 和.net的装箱拆箱差不多的 合着说 test1.equals(test2) 是为 true 的, Integer test2 = new Integer("123"); 在传入参数的时候是 String 但是还是被自动转化成了 Integer类型 和 前面的 Integer test2 = new Integer(123); 下场是一样的!! 这个问题其实看看API文档就很清楚了test1和test2,你是分别用来Integer类的2个不同的构造方法创建,这2个实例对象用equals()方法可以看到相等,因为Integer类重写来equals().从1.5版本开始包装器类型和基本类型之间可以自动转换,即自动包箱和自动拆箱 Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");只是构造方法的重载而已,他们都是创建一个Integer对象. 在这里,你如果要判断两个Integer对象是否相等只能用equals方法了,因为是对象类型,而且你new了两次,内存就分配了两个空间分别存放两次创建的对象, 用==是比这两个对象的地址,当然是不相等的int test3 = test1 这个代码,在JDK1.5以下是肯定会报错的.Integer是int的一个封装类而已,而且可以告诉你,每一个基本类型都有相对应的封装类. 1.5以后会自动解包和自动打包,是不需要强制转换的.! Integer是java中的内置对象,是对int类型的封装,他就是int类型以对象形式存在于内存中。 同时提供一些相关int类型的操作。 比如 把一个数字字符串转换为int类型,则是常见的操作 int value = Integer.parseInt("123"); java中每一个基本类型都有对应的内置对象类型。 double --> Double boolean --> Boolean 等等 基本类型的内置对象有一些使用上的好处:比如Integer类型能表示null,而int在使用的时候就必须有实际的值。 (1)除了是两个对象之外,没啥不一样,Integer类有两个构造函数,一个接受整数参数,另一个接受字符串参数;接受字符串参数的版本实际上是把字符串解析成整数。(2)这个事情叫“自动拆箱”,是java 1.5之后引入的新特性。 是不同的构造方法,一个是字符串,一个是整型参数,JDK5.0后有自动装箱和自动解箱,内部给你自动转换了,原来是要调用某个方法才能转换的 正解。那个自动打包/解包功能是jdk1.5的新特性。 Integer 就是个包装类 int到Integer会自动包装Integer到int也会自动解包 呵呵 从数据库读取数据,多线程发送,可是数据会重复。 String中字符的排序 一个混淆很多人的java机制概念问题 重写一个JTable遇到的问题,请高手指教一二,挺急的 怎样生成一个随机数? JAVA里生成随机数的范围是多少? stack类不能被重载??????!!!!!! 组合题3 奇怪的问题 用什么方法将文本转化成数字 编译成功,但是没有输出结果这时哪里出错了? 系统时间加某一个int(比如40)后的系统时间是多少 如何向没有Main()方法的类注册事件监听器
Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
这个是java有个自动机制,会自动把int包装成integer.也会将integer自动装换成int 这个机制叫什么我忘了.好像叫什么自动封箱还是什么来的!有人知道不?
2.不会报错的 java的自动装包/拆包(jdk1.5新特性) 和.net的装箱拆箱差不多的
合着说 test1.equals(test2) 是为 true 的, Integer test2 = new Integer("123"); 在传入参数的时候是 String 但是还是被自动转化成了 Integer类型 和 前面的 Integer test2 = new Integer(123); 下场是一样的!!
test1和test2,你是分别用来Integer类的2个不同的构造方法创建,这2个实例对象用equals()方法可以看到相等,因为Integer类重写来equals().
从1.5版本开始包装器类型和基本类型之间可以自动转换,即自动包箱和自动拆箱
int test3 = test1 这个代码,在JDK1.5以下是肯定会报错的.Integer是int的一个封装类而已,而且可以告诉你,每一个基本类型都有相对应的封装类. 1.5以后会自动解包和自动打包,是不需要强制转换的.!
同时提供一些相关int类型的操作。
比如 把一个数字字符串转换为int类型,则是常见的操作
int value = Integer.parseInt("123"); java中每一个基本类型都有对应的内置对象类型。
double --> Double
boolean --> Boolean 等等
基本类型的内置对象有一些使用上的好处:比如Integer类型能表示null,而int在使用的时候就必须有实际的值。
(2)这个事情叫“自动拆箱”,是java 1.5之后引入的新特性。
Integer到int也会自动解包 呵呵