社区
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 的了呢? 不需要强制类型转换么?
...全文
73
20
打赏
收藏
Integer
我有点不明白啊 Integer test1 = new Integer(123); 和 Integer test2 = new Integer("123"); 到底有什么不一样啊? 另外 int test3 = test1 ; 一个Integer 的 怎么就能直接 转换为 int 的了呢? 不需要强制类型转换么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
包装类的相等判断,包装类与基本数据类型的区别,应该大多数人在面试中经常被问到,但是有的时候大家都会烦这些看起来没啥用的东西,面试前还需要去熟悉,博主之前也是这样...
Java中
Integer
和int之间的转换
本文转载自:http://isnb.blog.163.com/blog/static/194111114201061334935457/int到...
Integer
A=new
Integer
(a);或:
Integer
A=
Integer
.valueOf(a);
Integer
到int:
Integer
A=new
Integer
(5);int a=A.intValue();...
Verilog中的
integer
类型
integer
类型也是一种寄存器数据类型,
integer
类型的变量为有符号数,而reg类型的变量则为无符号数,除非特 别声明为有符号数,还有就是
integer
的位宽为宿主机的字的位数,但最小为32位,用
integer
的变量都可以用reg...
Java进阶(三十四)
Integer
与int的种种比较你知道多少?
Integer
与int的种种比较你知道多少?前言 如果面试官问
Integer
与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类;int的初值为0,Ingeter的初值为null。但是如果面试官再问一下
Integer
i ...
关于解释List<
Integer
> list = new ArrayList<
Integer
>()
Integer
> list = new ArrayList<
Integer
>() List<
Integer
> List是一个接口 <>表示了List里面放的对象是什么类型的,这样写就表示了,你List里面放的必须是
Integer
类型的 关于
integer
: int...
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章