代码改变世界

随笔分类 - Java

我推荐的 Java Web 学习路线

2017-10-27 00:10 by l4y, 17835 阅读, 收藏, 编辑
摘要:晚上在 V2 的 Java 的节点看到有人问 Java Web 书籍推荐。我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spring 大门。 本文所描述的路线,适合有其他面向对象语言编程经验,具备数据结构、算法、网络、数据库、 阅读全文

深入理解Java虚拟机(第2版) 笔记目录

2017-08-14 13:08 by l4y, 156 阅读, 收藏, 编辑
摘要:本篇为读 "深入理解Java虚拟机(第2版)" 一书的笔记目录。 "Java 运行期数据区" "Java 垃圾回收算法" "Java 内存分配策略" "Java 类文件结构" "Java 加载、链接、初始化" "Java 类加载器" 阅读全文

Java 类加载器

2017-08-14 13:02 by l4y, 97 阅读, 收藏, 编辑
摘要:类加载器的主要工作是,通过一个类的全限定名来获取描述此类的二进制字节流。 对于任意一个类,由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换言之,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即 阅读全文

Java 加载、链接、初始化

2017-08-14 00:26 by l4y, 470 阅读, 收藏, 编辑
摘要:JVM 动态地加载、连接、初始化类或接口(在本文之后的篇幅中,我将使用“类”来表示“类和接口”)。这里我先贴上 Java 虚拟机规范的原文: Loading is the process of finding the binary representation of a class or inter 阅读全文

Java 类文件结构

2017-08-10 16:56 by l4y, 164 阅读, 收藏, 编辑
摘要:Java 诞生之时有句著名的宣传口号“Write Once, Run Anywhere.”。但是,Java 语言本身不具备跨平台的能力,而是 JVM 提供了跨平台的能力。 事实上,不仅 Java 可以运行在 JVM 上,现在已经出现了其他的语言可以运行在 JVM 上,如 Clojure、Scal 阅读全文

Java 内存分配策略

2017-08-10 13:44 by l4y, 689 阅读, 收藏, 编辑
摘要:内存有分配,就有回收,Java 的 GC 算法在 "前一篇文章" 中已经介绍过了,这篇文章着重介绍 Java 的内存分配策略。 从大方向讲,除去 JIT ,对象的内存分配就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程缓存,将按线程优先在 TLAB 上分配。少数情况也会直接 阅读全文

Java 垃圾回收算法

2017-08-09 23:37 by l4y, 371 阅读, 收藏, 编辑
摘要:在之前 "Java 运行期数据区" 一文中,介绍了运行时内存的各个部分。其中程序计数器、虚拟机栈、本地方法栈都随线程消亡,所以,这几个区域的内存分配和回收都具备确定性。而 Java 堆和方法区不同,我们只有在程序运行期间才能知道会创建哪些对象,这部分的内存分配和回收都是动态的,这也正是垃圾回收器关注 阅读全文

Java 运行期数据区

2017-08-09 20:07 by l4y, 191 阅读, 收藏, 编辑
摘要:对于 Java 开发者来说,由虚拟机进行内存管理是把双刃剑,一方面免去了繁杂的内存管理工作,另一方面,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查问题将成为一项艰难的工作。本文主要介绍 Java 运行时的内存区域。 JVM 在执行 Java 程序的过程中,会把它所管理的内 阅读全文