社区
Java SE
帖子详情
Integer
tjzero_sapce
2009-06-04 05:11:09
我有点不明白啊
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 到底有什么不一样啊?
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
...全文
63
20
打赏
收藏
Integer
我有点不明白啊 Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 到底有什么不一样啊? 另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tjzero_sapce
2009-06-07
打赏
举报
回复
[Quote=引用 8 楼 izard999 的回复:]
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");只是构造方法的重载而已,他们都是创建一个Integer对象. 在这里,你如果要判断两个Integer对象是否相等只能用equals方法了,因为是对象类型,而且你new了两次,内存就分配了两个空间分别存放两次创建的对象, 用==是比这两个对象的地址,当然是不相等的
int test3 = test1 这个代码,在JDK1.5以下是肯定会报错的.Integer是int的一个封装类而已,而且可以告…
[/Quote]
您所说的 1.5之后会自动解包和自动打包 是只针对这个包装类吧
猿敲月下码
2009-06-06
打赏
举报
回复
装箱和拆箱
fyofmee
2009-06-06
打赏
举报
回复
[Quote=引用 2 楼 huosidun 的回复:]
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");
肯定是不一样啊.你new了两个对象啊,那内存空间里就为你开辟了两个不同的内存区域啊,只不过是两个对象里的值相等而已
Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
这个是java有个自动机制,会自动把int包装…
[/Quote]
JDK1.5中加的,自动装包,拆包
kaisa316
2009-06-06
打赏
举报
回复
1. 没区别,只不过是两个不同的构造器有不同的参数类型。
2.自动包装机制,所以不用进行强制类型转换。
kingzhui005
2009-06-05
打赏
举报
回复
[Quote=引用 2 楼 huosidun 的回复:]
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");
肯定是不一样啊.你new了两个对象啊,那内存空间里就为你开辟了两个不同的内存区域啊,只不过是两个对象里的值相等而已
Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
这个是java有个自动机制,会自动把int包装…
[/Quote]
正解。那个自动打包/解包功能是jdk1.5的新特性。
fangpengyu
2009-06-05
打赏
举报
回复
是不同的构造方法,一个是字符串,一个是整型参数,JDK5.0后有自动装箱和自动解箱,内部给你自动转换了,原来是要调用某个方法才能转换的
yangzhiwei3340
2009-06-05
打赏
举报
回复
Integer 就是个包装类 int到Integer会自动包装
Integer到int也会自动解包 呵呵
晨星
2009-06-04
打赏
举报
回复
(1)除了是两个对象之外,没啥不一样,Integer类有两个构造函数,一个接受整数参数,另一个接受字符串参数;接受字符串参数的版本实际上是把字符串解析成整数。
(2)这个事情叫“自动拆箱”,是java 1.5之后引入的新特性。
loveappleforever
2009-06-04
打赏
举报
回复
学习了
8楼正确~
aaxuelian
2009-06-04
打赏
举报
回复
好...
lulu0126
2009-06-04
打赏
举报
回复
学习了!
tks!
guogaocheng
2009-06-04
打赏
举报
回复
Integer是java中的内置对象,是对int类型的封装,他就是int类型以对象形式存在于内存中。
同时提供一些相关int类型的操作。
比如 把一个数字字符串转换为int类型,则是常见的操作
int value = Integer.parseInt("123");
java中每一个基本类型都有对应的内置对象类型。
double --> Double
boolean --> Boolean 等等
基本类型的内置对象有一些使用上的好处:比如Integer类型能表示null,而int在使用的时候就必须有实际的值。
izard999
2009-06-04
打赏
举报
回复
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");只是构造方法的重载而已,他们都是创建一个Integer对象. 在这里,你如果要判断两个Integer对象是否相等只能用equals方法了,因为是对象类型,而且你new了两次,内存就分配了两个空间分别存放两次创建的对象, 用==是比这两个对象的地址,当然是不相等的
int test3 = test1 这个代码,在JDK1.5以下是肯定会报错的.Integer是int的一个封装类而已,而且可以告诉你,每一个基本类型都有相对应的封装类. 1.5以后会自动解包和自动打包,是不需要强制转换的.!
yejinson
2009-06-04
打赏
举报
回复
方法具体实现不同, 高版本的可以直接隐式转换
bocai17
2009-06-04
打赏
举报
回复
这个问题其实看看API文档就很清楚了
test1和test2,你是分别用来Integer类的2个不同的构造方法创建,这2个实例对象用equals()方法可以看到相等,因为Integer类重写来equals().
从1.5版本开始包装器类型和基本类型之间可以自动转换,即自动包箱和自动拆箱
tjzero_sapce
2009-06-04
打赏
举报
回复
[Quote=引用 2 楼 huosidun 的回复:]
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");
肯定是不一样啊.你new了两个对象啊,那内存空间里就为你开辟了两个不同的内存区域啊,只不过是两个对象里的值相等而已
Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
这个是java有个自动机制,会自动把int包装…
[/Quote]
合着说 test1.equals(test2) 是为 true 的, Integer test2 = new Integer("123"); 在传入参数的时候是 String 但是还是被自动转化成了 Integer类型 和 前面的 Integer test2 = new Integer(123); 下场是一样的!!
Adebayor
2009-06-04
打赏
举报
回复
[Quote=引用楼主 tjzero_sapce 的帖子:]
我有点不明白啊
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 到底有什么不一样啊?
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
[/Quote]
1.new个两个对象 test1与test2只是字面值上相等 其它就没什么联系了
2.不会报错的 java的自动装包/拆包(jdk1.5新特性) 和.net的装箱拆箱差不多的
MiShiDeShiJie0628
2009-06-04
打赏
举报
回复
不清楚,我不怎么熟悉java
holsten32
2009-06-04
打赏
举报
回复
Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123");
肯定是不一样啊.你new了两个对象啊,那内存空间里就为你开辟了两个不同的内存区域啊,只不过是两个对象里的值相等而已
Integer是包装类.也就是说它现在已经是是一个类了.别把他和int混淆
另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
这个是java有个自动机制,会自动把int包装成integer.也会将integer自动装换成int 这个机制叫什么我忘了.好像叫什么自动封箱还是什么来的!有人知道不?
关于
Integer
的缓存
Integer
s1 = 2;
Integer
s2 = 2; System.out.println(s1 == s2); # 答案为true # 二:
Integer
s1 = new
Integer
(2);
Integer
s2 = new
Integer
(2); System.out.println(s1 == s2); # 答案为false new
Integer
的...
Integer
类型值相等判断
本周开发中遇到一个很低级的问题,
Integer
包装类的相等判断,包装类与基本数据类型的区别,应该大多数人在面试中经常被问到,但是有的时候大家都会烦这些看起来没啥用的东西,面试前还需要去熟悉,博主之前也是这样...
Java
Integer
类型比较问题
Java
Integer
类型比较问题 【强制】所有整型包装类对象之间值的比较,全部使用 equals 方法比较。 说明:对于
Integer
var = ? 在-128至127范围内的赋值,
Integer
对象是在
Integer
Cache.cache产生,会复用已有对象...
int和
Integer
有什么区别
面试中会问道int和
Integer
的区别,这里我们详细说一下
Integer
是int的包装类;int是基本数据类型。
Integer
变量必须实例化后才能使用;int变量不需要。
Integer
实际是对象的引用,当new一个
Integer
时,实际上是...
java面试题之 int和
Integer
的区别
int和
Integer
的区别 1、
Integer
是int的包装类,int则是java的一种基本数据类型 2、
Integer
变量必须实例化后才能使用,而int变量不需要 3、
Integer
实际是对象的引用,当new一个
Integer
时,实际上是生成一个指针指向...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章