
JVM
zch1990s
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM学习笔记(一)JVM内存模型
今天记录并巩固下学到的JVM相关知识,JVM的内存模型大致能分为5个大块:程序计数器(Program Counter Register),虚拟机栈 (Virtual Machine Stack),本地方法栈(Native Method Stack),堆(Heap),以及方法区(Method Area)。程序计数器:程序计数器占用一小块内存,用于标识当前线程所执行的字节码的行号,程序运行时,字节码解...原创 2018-03-15 16:50:04 · 457 阅读 · 0 评论 -
JVM学习笔记(二)JVM垃圾回收机制
今天记录并巩固下学到的JVM垃圾回收的相关知识,在JVM中,垃圾回收主要发生在堆中,在回收对象前JVM首先需要确认哪些对象是可回收的,一般判断对象是否应该回收有两种方式:引用计数算法顾名思义,引用计数算法其实就是计算某个对象的引用数。首先为每个对象添加一个引用计数器,当有一个地方引用了某一对象,则该计数器加1;当某一地方不在引用时,则引用计数器减1。引用计数算法很实用,且使用起来效率也很不错,但是...原创 2018-03-29 16:57:21 · 347 阅读 · 0 评论 -
JVM学习笔记(三)JVM垃圾回收算法及内存分配策略
今天巩固并记录下JVM垃圾回收算法及内存分配策略。JVM将存储对象的内存分为两块---新生代和老年代。其中新生代使用的是复制算法而老年代使用的是标记-整理算法。 复制算法 复制算法会将内存等量地分成两块,每次只使用其中的一块。当一块内存用完了就将还存活的对象复制到另一块上面之后将已使用过的内存清理掉。过程如下图: 新生代的内存会被分为两个区域---Eden区和Survivor区,每次都只...原创 2018-04-12 14:46:41 · 272 阅读 · 0 评论 -
关于Java类初始化的一些特性
在 Java中,虚拟机对于类的加载时机并未严格的约束而是根据各虚拟机的特性自行决定,但是对于初始化来说,存在几种情况使得类必须立即执行初始化操作: 1)当使用new,putstatic,getstatic,invokestatic这4条指令时,若该类未被初始化则需立即对该类进行初始化。 2)对类进行反射调用时,若该类未被初始化则需立即对该类进行初始化。 3)初始化一个类时,若该类...原创 2018-05-18 16:19:53 · 169 阅读 · 0 评论 -
[翻译]Java虚拟机如何实现线程同步 (How the Java virtual machine performs thread synchronization)
所有的Java程序最终都会被编译成包含字节码(Java虚拟机的机器语言)的class文件。这篇文章将带着大家一探Java虚拟机处理线程同步的机制。线程与数据共享Java有许多优点,其中之一就是其在语言级别上对于多线程的支持。该特性的主要特性主要体现在多线程情况下对数据共享的调配与访问。对于一个正在执行的Java应用,其运行时所产生的数据会被JVM划分并分别存储于多个不同的区域,包括一个或多个Jav...翻译 2018-05-23 16:07:15 · 257 阅读 · 0 评论 -
JVM学习笔记(四)类加载机制
今天巩固下JVM类(class)加载机制。在Java中一个类从加载进JVM内存直至卸载一共会经历过7个流程,分别为:加载(Loading),验证(Verification),准备( Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)。加载 加载阶段共分三步: 1)通过类的全限定名来获取定义此类的二进制...原创 2018-06-05 11:26:44 · 318 阅读 · 0 评论 -
[翻译]方法重载在JVM中的实现原理(Method overloading in the JVM)
原文链接:https://www.javaworld.com/article/3268983/learn-java/java-challengers-1-method-overloading-in-the-jvm.html什么是方法重载?方法重载是一种允许开发者在同一个类中多次使用拥有不同参数及相同方法名方法的一种编程技巧。在这种情况下,我们称之为方法被重载。下面的示例显示了拥有不同参数(不同之处...翻译 2018-06-06 15:02:28 · 259 阅读 · 0 评论 -
[翻译]在字符串常量池中字符串方法,关键字以及运算符如何处理字符串比较 (How String methods, keywords, and operators process comparison)
原文链接:https://www.javaworld.com/article/3276354/java-language/java-challengers-2-string-comparisons.html在Java中,String类封装一个char数组。简单来说,String 是一个char数组用于组合文字,语句或者任何你想要的数据。封装是面向对象编程最强大的概念之一。因为封装,你不用了解Str...翻译 2018-06-01 14:30:45 · 218 阅读 · 0 评论