
jvm
文章平均质量分 71
嘿哈吼哈
此人不懒,写了一点东西
展开
-
jdk1.8默认的垃圾收集器
查看一波电脑中的java版本>>java -versionjava version "1.8.0_91"Java(TM) SE Runtime Environment (build 1.8.0_91-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)可以看到版本是java1.8版本>>java -XX:+PrintCommandLineFlags -version-XX:Initi原创 2021-03-30 21:14:20 · 3574 阅读 · 1 评论 -
深入理解破坏双亲委派模型之jdbc
JDBC之所以要破坏双亲委派模式是因为,JDBC的核心在rt.jar中由启动类加载器加载,而其实现则在各厂商实现的的jar包中,根据类加载机制,若A类调用B类,则B类由A类的加载器加载,也就是说启动类加载器要加载jar包下的类,我们都知道这是不可能的,启动类加载器负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,那么JDBC是如何加载这些Driver实现类的?通过Thread.currentThread().getContextClassLoader()得到线程上下文加载器来加转载 2021-03-21 22:53:48 · 259 阅读 · 0 评论 -
jvm之垃圾收集算法
感觉好像直接从书上简单整理上载会被csdn挂掉,可是jvm又没有啥代码敲得(脑壳疼)。接下来关于理论复习的博客,我可能就大致表述一下需要注意的点。不会在详细的表述了,需要的同学可以根据我的整理的点,去书上看(jvm复习1中有对应的书籍,可以自己去看一看),进行一个有针对性的复习。找到一个表述的很不错的一篇博客https://xie.infoq.cn/article/9d4830f6c0c1e2df0753f9858刚刚找的,写的非常详细,图画的还好看。额,开始怀疑我写这一篇的意义。一,前言垃圾回原创 2021-03-11 22:56:48 · 117 阅读 · 0 评论 -
jvm之对象
这里是对jvm中对象的创建过程,内存分布,内存定位的一个简单描述。都是根据书中的信息整理出来的。一,对象的创建过程1,查看类是否被加载当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那 必须先执行相应的类加载过程。2,分配空间分配空间的两种方式(1)指针碰撞假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一 边,空闲的内存被放在另一边,中间放着一个指针原创 2021-03-11 21:32:42 · 147 阅读 · 0 评论 -
jvm之内存布局
这里强烈推荐看一下我jvm复习1中的知识框架,关于内存布局这块,我觉得我梳理的流程还是不错的了。不过作为学习的话,光有框架是肯定不够的,我们需要将架子里面的内容填充完善。我来简单讲讲内存区域吧,强烈推荐看书运行时的内存区域程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的 字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器 的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处 理、线程恢复等基础功能都需要原创 2021-03-10 22:53:34 · 83 阅读 · 0 评论 -
jvm复习的简单知识框架
分享一波我的关于jvm的学习思维导图吧其实这个框架不是完全的jvm中的知识,我只是截取其中一部分来做一个知识框架。分享一波资料吧,链接:百度网盘,提取码:a1b1这是java虚拟机的书籍,毫无疑问,通过书籍和目录的方式学习是最好的。注:我以上的知识框架并不一定是按照目录来实现的,毕竟目录可能有一定的不连贯性(也就是先简单概括,后系统分析),所以我进行整理时候,关于一个点可能会一直衍生下去。所以会有一点冲突。并且由于是我个人的一个知识框架,有的点可能会被我忽略,这个框架仅作一个知识梳理会更好..原创 2021-03-10 22:23:59 · 164 阅读 · 0 评论