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),算了,表达不清楚了,自己想吧还是。 展开
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),算了,表达不清楚了,自己想吧还是。 展开
展开全部
(1)没有什么联系了,内存都重新分配了
(2)应该先执行值的拷贝,再去check能否转型,不可以抛出转型异常,可以的话就在新的integer型的内存中放置
(2)应该先执行值的拷贝,再去check能否转型,不可以抛出转型异常,可以的话就在新的integer型的内存中放置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用解释?你明白了么?
就像String a="s";
String b="s";
一样,a和b都在常量池,内存地址一样。
String c2="ss";
String c=c2.substring(1,2);新生成的堆中变量,不在常量池。
就像String a="s";
String b="s";
一样,a和b都在常量池,内存地址一样。
String c2="ss";
String c=c2.substring(1,2);新生成的堆中变量,不在常量池。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i和"1"是不同的对象当然没联系了
至于过程可以参看源代码我就不贴了
至于过程可以参看源代码我就不贴了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在Integer.valueof(str)执行过程是怎么样的?
我看了下这方法的源码,它是这么封装的,
public static Integer valueOf(String s) throws NumberFormatException
{
return new Integer(parseInt(s, 10));
}
你也可以去看看源码?看这些方法咋写的。。会找源码吧。。我是初学者。。
我看了下这方法的源码,它是这么封装的,
public static Integer valueOf(String s) throws NumberFormatException
{
return new Integer(parseInt(s, 10));
}
你也可以去看看源码?看这些方法咋写的。。会找源码吧。。我是初学者。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询