Integer.valueof(String)

例如:Stringstr="1";Integeri=Integer.valueof(str);这样其实是返回了一个Integer对象。我想知道:(1)i和"1"之间还有没... 例如:
String str = "1";
Integer i = Integer.valueof(str);
这样其实是返回了一个Integer对象。我想知道:
(1)i和"1"之间还有没有什么联系?
(2)在Integer.valueof(str)执行过程是怎么样的?要详细一点。
补充一下:
Integer i1 = 1;
Integer i2 = 1;
Integer i3 = Integer.valueOf("1");

为什么i1==i2 为true,这个不用解释。
i1==i3为false,解释这个。解释底层。谢谢

Java编译器在JDK1.5后,对原型的自动装包是有一个规定的,
char<=127的放在同一个包装对象中,short和int在-128到127之间的数据放在同一个包装对象中。具体可见源代码。但是对于Integer.valueOf(String),算了,表达不清楚了,自己想吧还是。
展开
 我来答
liushebiao
推荐于2018-03-11 · TA获得超过3336个赞
知道小有建树答主
回答量:724
采纳率:0%
帮助的人:395万
展开全部
问题1:没有关系了,只是把String型的"1"转化为了Integer型的1

问题2:

(1)调用Integer类中的静态方法valueOf(String)
(2)valueOf方法将传入的参数String转化为int型值
(3)返回该值,如果String并不是纯粹由数字构成即无法转化为数字,则抛出NumberFormatException..
zhoujichao23
2009-08-11 · TA获得超过306个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:301万
展开全部
(1)没有什么联系了,内存都重新分配了
(2)应该先执行值的拷贝,再去check能否转型,不可以抛出转型异常,可以的话就在新的integer型的内存中放置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艾尔凡迪
2013-08-17 · 超过31用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:70.9万
展开全部
不用解释?你明白了么?
就像String a="s";
String b="s";

一样,a和b都在常量池,内存地址一样。
String c2="ss";
String c=c2.substring(1,2);新生成的堆中变量,不在常量池。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
archjoker
2009-08-11 · TA获得超过258个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:186万
展开全部
i和"1"是不同的对象当然没联系了
至于过程可以参看源代码我就不贴了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
50589761
2009-08-11 · TA获得超过575个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:368万
展开全部
在Integer.valueof(str)执行过程是怎么样的?

我看了下这方法的源码,它是这么封装的,
public static Integer valueOf(String s) throws NumberFormatException
{
return new Integer(parseInt(s, 10));
}

你也可以去看看源码?看这些方法咋写的。。会找源码吧。。我是初学者。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式