helloworld__ level
获赞
14
粉丝
1
关注
0
看过 TA
6
广州大学
2021
Java
IP属地:广东
暂未填写个人简介
私信
关注
2019-04-02 20:44
已编辑
广州大学 Java
方法一: String str = "" + 1; 方法二: String str = String.valueof(1); 经过测试,无论整型数有多大,方法二的运行时间总比方法一的大一个数量级。 为什么方法一快呢?
看山跑不死马:你去看一下源码,String的ValueOf()方法实际上底调用了Integer的toString(),这个方法是通过你传进来的int值来计算一个一个索引值,这个索引值是在Integer类里初始化的几个char数组,通过索引找到数组里对应的字符然后再包装字符数组再返回回来才变成字符串,最后你看到的str的值才是"1",而方法一就不一样了,编译后的class文件里就变成"" 1被处理变为"1",表面上看,是方法二调用了很多方法,有很多操作,不过我猜测是因为方法一赋值是从字符串常量池拿到的"1",而方法二是构造了一个字符串对象赋值给str,主要的时间消耗差距这么大的主要原因还是因为构造对象的过程消耗很大
0 点赞 评论 收藏
分享
2018-03-17 16:29
已编辑
广州大学 Java
全部都用引用数据类型不好吗?昨天面试被问到,傻了。
antibody:引用类型在堆里,基本类型在栈里。 栈空间小且连续,往往会被放在缓存。引用类型*** miss率高且要多一次解引用。 对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务