代码改变世界

随笔档案-2017年08月

Swift 笔记汇总

2017-08-24 13:16 by l4y, 206 阅读, 收藏, 编辑
摘要: Swift 3 笔记 "Swift: The Basics" :介绍 Swift 一些零碎的点。 "Swift: Basic Operators" :介绍 Swift 的操作符。 "Functions" : 介绍 Swift 的函数,包括默认参数值,可变长参数,In Out Parameters 等 阅读全文

深入理解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 程序的过程中,会把它所管理的内 阅读全文
点击右上角即可分享
微信分享提示