rc447516551 2017-03-09 13:11 采纳率: 66.7%
浏览 2441
已采纳

Java第一次创建对象速度会慢于之后的创建

我在创建一个对象时发现第一次new出的对象会耗时比较长,而后面的创建则会很快速,请问大神这是为什么?
代码如下:

  public static void main(String[] args) throws InterruptedException {
    for(int i =0;i<5;i++){
        long now = System.currentTimeMillis();
        RestTemplate httpClient = new RestTemplate();
        System.out.println(System.currentTimeMillis() - now);
    }
}

输出结果如下:

 1084
16
7
12
5

感谢大神回答!

  • 写回答

3条回答 默认 最新

  • oyljerry 2017-03-09 13:52
    关注

    类的对象在第一次创建的时候,Java虚拟机(JVM)首先检查是否所要加载的类对应的Class对象是否已经加载。如果没有加载,JVM就会根据类名查找.class文件,并将其Class对象载入。一般某个类的Class对象被载入内存,它就用来创建这个类的所有对象。

    所以同一个类创建第二个对象的时候就不再需要加载类对象,而是直接实例化,这样后面创建的时间就短了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 github符合条件20分钟秒到账,github空投 提供github账号可兑换💰感兴趣的可以找我交流一下
  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?