摘要:
晚上在 V2 的 Java 的节点看到有人问 Java Web 书籍推荐。我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spring 大门。 本文所描述的路线,适合有其他面向对象语言编程经验,具备数据结构、算法、网络、数据库、 阅读全文
随笔分类 - Java
深入理解Java虚拟机(第2版) 笔记目录
2017-08-14 13:08 by l4y, 403 阅读, 收藏, 编辑
摘要:
本篇为读 "深入理解Java虚拟机(第2版)" 一书的笔记目录。 "Java 运行期数据区" "Java 垃圾回收算法" "Java 内存分配策略" "Java 类文件结构" "Java 加载、链接、初始化" "Java 类加载器" 阅读全文
Java 类加载器
2017-08-14 13:02 by l4y, 328 阅读, 收藏, 编辑
摘要:
类加载器的主要工作是,通过一个类的全限定名来获取描述此类的二进制字节流。 对于任意一个类,由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换言之,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即 阅读全文
Java 加载、链接、初始化
2017-08-14 00:26 by l4y, 1169 阅读, 收藏, 编辑
摘要:
JVM 动态地加载、连接、初始化类或接口(在本文之后的篇幅中,我将使用“类”来表示“类和接口”)。这里我先贴上 Java 虚拟机规范的原文: Loading is the process of finding the binary representation of a class or inter 阅读全文
Java 类文件结构
2017-08-10 16:56 by l4y, 360 阅读, 收藏, 编辑
摘要:
Java 诞生之时有句著名的宣传口号“Write Once, Run Anywhere.”。但是,Java 语言本身不具备跨平台的能力,而是 JVM 提供了跨平台的能力。 事实上,不仅 Java 可以运行在 JVM 上,现在已经出现了其他的语言可以运行在 JVM 上,如 Clojure、Scal 阅读全文
Java 内存分配策略
2017-08-10 13:44 by l4y, 1243 阅读, 收藏, 编辑
摘要:
内存有分配,就有回收,Java 的 GC 算法在 "前一篇文章" 中已经介绍过了,这篇文章着重介绍 Java 的内存分配策略。 从大方向讲,除去 JIT ,对象的内存分配就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程缓存,将按线程优先在 TLAB 上分配。少数情况也会直接 阅读全文
Java 垃圾回收算法
2017-08-09 23:37 by l4y, 717 阅读, 收藏, 编辑
摘要:
在之前 "Java 运行期数据区" 一文中,介绍了运行时内存的各个部分。其中程序计数器、虚拟机栈、本地方法栈都随线程消亡,所以,这几个区域的内存分配和回收都具备确定性。而 Java 堆和方法区不同,我们只有在程序运行期间才能知道会创建哪些对象,这部分的内存分配和回收都是动态的,这也正是垃圾回收器关注 阅读全文
Java 运行期数据区
2017-08-09 20:07 by l4y, 540 阅读, 收藏, 编辑
摘要:
对于 Java 开发者来说,由虚拟机进行内存管理是把双刃剑,一方面免去了繁杂的内存管理工作,另一方面,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查问题将成为一项艰难的工作。本文主要介绍 Java 运行时的内存区域。 JVM 在执行 Java 程序的过程中,会把它所管理的内 阅读全文