重构:改善既有代码的设计代码整洁之道深入理解Java虚拟机Java并发编程的艺术《修改代码的艺术》《程序员的职业素养》代码大全程序员修炼之道深入理解java虚拟机Java并发编程实战(已下载)Effective java 中文版Spring 揭秘重构。已买入研磨设计模式 https://github ...
分类:
其他好文 时间:
2019-09-05 13:45:25
阅读次数:
122
书单较为片面,仅供参考。并非每一本都推荐。 1. 《Java编程思想》 2. 《Java核心技术:卷I(第10版)》3. 《Effective Java(第2版)》4. 《Java并发编程实战》5. 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》6. 《设计模式之禅(第2版)》7. ...
分类:
其他好文 时间:
2019-08-28 23:58:41
阅读次数:
162
《深入理解 Java 虚拟机》学习 垃圾回收算法 1. 说明 程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭,这几个区域的内存分配和回收都具备确定性 Java 堆和方法区这部分内存的分配和回收都是动态的,垃圾收集器所关注的是这部分内存 新生代和老年代 Java 中的堆是 JVM 所管 ...
分类:
编程语言 时间:
2019-08-23 13:20:24
阅读次数:
83
一、Java异常 在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,例如用户的坏数据、试图打开一个不存在的文件等。为了能够及时有效地处理程序中的运行错误,Java 专门引入了异常类。 二、Java常见异常分类 三、为什么产生异常 在 Java 中一个异常的产生,主要有 ...
分类:
编程语言 时间:
2019-08-21 23:05:34
阅读次数:
105
这一节打算从“方法调用”的主题进行分析。 方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不设计方法内部的具体运行过程。 一、概念 解析调用:所有方法调用中的目标方法在Class文件里都是一个常量池中的引用,在类加载的解析阶段,会将其中一部分符号 ...
分类:
编程语言 时间:
2019-08-21 00:35:51
阅读次数:
118
String类是Java编程中应用最广泛的类,所以每一位程序员都应该仔细研究一番String类的内部实现,这样对我们理解String对象的工作机制、避免错误和提升代码效率有很大好处。你若打开Java语言规范 (Java 9),可以看到4.3.3节中对String对象的简述[1]: String对象的 ...
分类:
编程语言 时间:
2019-08-17 21:44:16
阅读次数:
110
Java虚拟机是如何加载Java类的? 这个问题也就是面试常问到的Java类加载机制。在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样。 tonight ! 我们把它映射到实战里,看看如何用代码说明这个流程。 ready! go! 在这之前 ...
分类:
编程语言 时间:
2019-08-16 00:33:46
阅读次数:
68
在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时,编译器会将字符串添加到常量池中(string ...
分类:
其他好文 时间:
2019-08-13 20:13:00
阅读次数:
83
这是一篇修改class文件的文章。注释并不完全,要抓住这次练习的目的: boolean在虚拟机中是以何种方式解读的 好的,开始我的表演 1.安装asmtools.jar(本文尾部有步骤) 2.编写一个java文件,并编译,执行 2.1 Foo.java public class Foo { publ ...
分类:
编程语言 时间:
2019-08-13 00:47:53
阅读次数:
113
一:JMM基础与happens-before 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型 ...
分类:
编程语言 时间:
2019-08-11 15:24:55
阅读次数:
94