在何处初始化对象才是最快的速度?【深度思考】

Abel_Joo 2014-04-21 08:20:00
观察以下三种做法:
第一种:
public class Init {

public static void main(String[] args) {
Random rand = new Random();
rand.nextInt();
}

}

第二种:
public class Init {

public static Random rand;

public static void main(String[] args) {
rand = new Random();
rand.nextInt();
}

}

第三种:
public class Init {

public static Random rand = new Random();

public static void main(String[] args) {
rand.nextInt();
}

}


这三种里面,哪一种能够最快执行到rand.nextInt();方法?
为什么?
...全文
319 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuebichongkafei 2014-05-13
  • 打赏
  • 举报
回复
没意义,基本一样的,都是需要栈 堆,无论是随着类加载,还是随着对象存在,都需要经历这个过程,建议,如果初学,不要研究太深,因为你还没有深入研究的资本(个人观点,不同意不要喷我)
可乐罐 2014-05-12
  • 打赏
  • 举报
回复
引用 9 楼 lymoge 的回复:
[quote=引用 8 楼 vnvlyp 的回复:] 纠结这个有意义吗 就算执行几万次这三种速度差距也微乎其微。。 纠结速度还不如讨论一下哪一种是更好的代码习惯
不能同意更多。[/quote] 这个意见很中肯啊
lliiqiang 2014-05-12
  • 打赏
  • 举报
回复
第一种内部直接运行.
lymoge 2014-05-12
  • 打赏
  • 举报
回复
引用 8 楼 vnvlyp 的回复:
纠结这个有意义吗 就算执行几万次这三种速度差距也微乎其微。。 纠结速度还不如讨论一下哪一种是更好的代码习惯
不能同意更多。
vnvlyp 2014-05-11
  • 打赏
  • 举报
回复
纠结这个有意义吗 就算执行几万次这三种速度差距也微乎其微。。 纠结速度还不如讨论一下哪一种是更好的代码习惯
yuhouqingchen_2648 2014-05-11
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
个人认为基本一样,研究这个意义不大。个人比较习惯于第一种,只要能够用内部变量的,绝不用全局变量。
正解
七神之光 2014-04-23
  • 打赏
  • 举报
回复
引用 3 楼 lasting00001 的回复:
第一种最快,就速度来说:栈>堆>方法区
第二种 有点延迟加载的意思。
lasting00001 2014-04-23
  • 打赏
  • 举报
回复
第一种最快,就速度来说:栈>堆>方法区
alan19931103 2014-04-23
  • 打赏
  • 举报
回复
就这个例子来说没有区别吧。 创建对象的时候会先创建类的静态变量,然后才是方法体,成员变量 所以三个的顺序都是先创建引用 然后是对象 然后执行方法。
sleeplacker 2014-04-23
  • 打赏
  • 举报
回复
都是在堆上分配,没什么区别把
S117 2014-04-22
  • 打赏
  • 举报
回复
没什么区别吧, 再说滥用全局变量不是个好习惯吧!
rumlee 2014-04-22
  • 打赏
  • 举报
回复
个人认为基本一样,研究这个意义不大。个人比较习惯于第一种,只要能够用内部变量的,绝不用全局变量。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧