• nightmare
    2019-07-11
    Class•forName有重载方法可以指定是否需要初始化,而默认的方法初始化设置为true这会初始化类执行链接和初始化操作,而ClasaLoader是有类加载器的loadClass方法加载,传入的是false只会执行链接操作,而不会执行初始化操作

    作者回复: 回答非常详细

    
     13
  • QQ怪
    2019-07-12
    看老师这篇分享花了1个小时,分享的干货很多,回答下老师的问题:
    不同点:
    1)Class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法。
    2)classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。

    作者回复: 这次内容确实有点多,慢慢消化。

    
     7
  • -W.LI-
    2019-07-13
    这其实是因为由于 HotSpot 虚拟机目前的实现导致栈上分配实现比较复杂。
    栈上分配影响:
    1.java只有值传递,跨方法的局部变量在栈上分配的话,在现有栈实现上会影响栈的回收。
    2.栈属于线程所有,实现栈上分配,会消耗更多的内存。让java的多线程更吃内存。
    3.如果实现栈上分配,还需要GC作用会弱化很多吧。
    4.基类型栈上分配+引用类型堆分配->全栈上分配。这么实现的话hotspot感觉全推翻了。
    老师好有理解的不对的请指出谢谢
    展开

    作者回复: W.LI同学解释的很透彻,赞一个。

    
     5
  • 张德
    2019-07-20
    刘老师您好 听完这篇课程想起了以前去阿里面试一个面试官问到的问题 问题大概是 OSGI各个容器之间的类加载器是怎么进行隔离的 刘老师懂不懂 能不能回答一下 谢谢
     2
     3
  • 天信
    2020-01-07
    很困惑线上服务的时候如何去调整这些参数达到最优解,比如调整 ComplieThrehold 大小或者其它参数,以及调整后到如何计算收益呢

    作者回复: 一般情况下我们不会去调整这些参数,JVM默认值就已经可以满足大多数服务了,使用默认值即可。

    
     1
  • 天天向上
    2019-12-29
    文中讲到:逃逸分析如果发现一个对象只在方法中使用,就会将对象分配在栈上。然而我们的程序大多数对象都是只在方法中使用的啊,那栈就得需要很大的空间了啊??

    作者回复: 使用方法时间非常短,所以在栈上的数据也就很快被释放掉了

    
     1
  • 平凡之路
    2019-11-28
    学习了很多
    
    
  • SDL
    2019-09-25
    差了很多文章 还是没能找到在哪设置这些参数呢 望老师告知一下小白

    作者回复: springboot jar启动文件下,在启动时设置JVM参数就好了,java -xx(jvm参数)-jar xxx.jar

    
    
  • godtrue
    2019-09-11
    太干了,需要多点时间消化。老师这些知识,怎么持久化到脑袋里的,感觉自己脑袋里的知识都是分配在堆上的,很想放在MySQL数据库里。
     1
    
  • 疯狂咸鱼
    2019-09-02
    在非线程安全的情况下,尽量不要使用线程安全容器?这句话是不是线程安全的情况下?

    作者回复: 是非线程安全,有时候非线程安全使用线程安全容器反而增加了性能开销

     1
    
  • 王龙飞
    2019-07-23
    看了三遍,干货满满,老师辛苦
    
    
  • 梁中华
    2019-07-15
    据一些书上说,因为默写原因Hotspot JVM并没有实现逃逸分析的优化,不知道最新的JVM有没有实现这条优化。

    作者回复: 目前的资料来看,最新的JVM暂时没有实现。

    
    
  • 王世林
    2019-07-14
    class.forNam实现也调用ClassLoader. 不过class.forName有static静态代码块,在类初始化的过程中执行了静态代码块中的代码,例如jdbc的实现需要加载数据库驱动,在静态代码块中向DriveManager注册自己.Spring直接用的Classloader
    
    
  • bro.
    2019-07-12
    逃逸分析跟标量替换在JDK 6u23以上版本都是默认开启状态的

    作者回复: 是的

    
    
  • Wendy
    2019-07-12
    你好,刘兄!方便加下你微信吗?方便沟通

    作者回复: 你好 Wendy,平台暂时不支持我们加个人微信,有问题可以在这里沟通,或通过github中的邮箱沟通。感谢你的支持。

     1
    
  • undifined
    2019-07-11
    老师 这段代码没有懂

    static{
      i=0;
    }
    private static int i=1;
    public static void main(String [] args){
      System.out.println(i);
    }

    static代码块在类加载的时候执行,按照书写顺序,此时 i 还没有被声明,是怎么赋值的
    展开
     2
    
  • Liam
    2019-07-11
    栈上分配这里,对局部变量对象的大小是否有要求,毕竟栈的内存比较小

    作者回复: 目前hotspot虚拟机暂时不支持栈上分配对象。

    
    
  • 我又不乱来
    2019-07-11
    Class.forName加载类的时候会对类进行初始化,如静态代码块,ClassLoader 不会做初始化。spring做类加载的时候应该用的是ClassLoader把。超哥。

    作者回复: 正确

    
    
我们在线,来聊聊吧