A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾公亮 黑马帝   /  2011-9-23 14:37  /  2639 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类型转为Integer类型不是有三种方法嘛!
其中一种就是int height=new Integer(args[1]).intValue();
这句也可以这样写:int height=new Integer(args[1]);
它们在执行效率上有什么区别吗?

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 突破蛋蛋啦……

查看全部评分

4 个回复

倒序浏览
黑马网友  发表于 2011-9-23 15:05:29
沙发
我个人的理解是第一种效率高一点,第一种是利用intValue()方法把Integer对象里面的值赋给height
第二种利用java新特性中的自动拆箱,把Integer对象拆箱成int值,效率不如第一种高。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
一般情况使用静态的方法进行转换:

例1:[code=html]a):Integer temp1 = Integer.valueOf("1");[/code][code=html]b):Integer temp2 = Integer.parseInt("1");[/code]例2:[code=html]a):Integer temp3 = new Integer("1");[/code]例1中的a)和例2中的a)的效果一样,例2是将“1”作为构造函数的参数,在构造函数中使用其静态方法parseInt()进行转换,相比之下,例2中a)实际多了一个将"1"实例化的操作;

再来讲一下valueOf和parseInt两种Integer类中的静态方法,看了源代码可以知道,在valueOf方法中先将传入的参数使用parseInt方法将参数返回为int类型,然后再将参数传入valueOf方法中,返回一个Integer对象。


一般情况下,要转换的字符串的值在-127到128之间,使用parseInt效果最佳,其实最主要的是返回的类型不同。
[ 本帖最后由 许晨峰 于 2011-09-23  15:10 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-23 15:47:46
板凳
你这两个方法都是要创建一个Integer对象,Integer类里面有一个成员变量value,当你通过构造方法传递进去的值会赋给value,int height=new Integer(args[1]).intValue()你的这第一种方法是直接返回Integer类里面的value成员变量,int height=new Integer(args[1])而这第二种方法还要涉及到拆箱,应该是第一种方法效率比较高,上面的一位兄弟也说了,你可以在eclipse里按下ctrl键然后点击Integer这个关键字,就可以打开源代码了,有空看看源代码里的东西就明白了

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-23 21:37:22
报纸
看来以后直接用Integer的两种方法就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马