随笔分类 -  Java

摘要:Java SE 8 在 Java 语言层面上新增了 lambda expression 的功能,使得 Java 具备了函数式语言的能力 - 可以将函数作为方法参数传递,即 code as data。 JDK 8 ( Oracle 对 Java SE 8 的实现 ) 新增了 java.util.str 阅读全文
posted @ 2018-08-16 15:30 赫尔修斯 阅读(661) 评论(0) 推荐(0)
摘要:JDK 9 新增了不少特性,官方文档:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-527735CF-44E1-4144-919B-E7D7CC9CDD4D。 Java SE 10 改变:https://docs.oracl 阅读全文
posted @ 2018-07-20 13:27 赫尔修斯 阅读(147) 评论(0) 推荐(0)
摘要:JDK 8, Oracle's implementation of Java SE 8. JDK 8 是 Oracle 对 Java SE 8 规范的实现。 本文分析 JDK 8 引入的新特性。 官方文档:http://www.oracle.com/technetwork/java/javase/8 阅读全文
posted @ 2018-07-18 10:11 赫尔修斯 阅读(160) 评论(0) 推荐(0)
摘要:Eclipse 导入 Gradle project 时总是报错:Can't load library: native-platform.dll。 解决方案: 进入 Windows -> Preferences,如下设置即可解决问题。 阅读全文
posted @ 2018-06-01 15:04 赫尔修斯 阅读(614) 评论(0) 推荐(0)
摘要:这篇笔记是关于 Doug Lea 的 The java.util.concurrent Synchronizer Framework 。 原文地址:http://gee.cs.oswego.edu/dl/papers/aqs.pdf。 1. JDK 1.5 引入 java.util.concurre 阅读全文
posted @ 2018-03-25 15:42 赫尔修斯 阅读(214) 评论(0) 推荐(0)
摘要:我们知道 JDK 8 新增了 Lambda Expression 这一特性。 JDK 8 为什么要新增这个特性呢? 这个特性给 JDK 8 带来了什么好处? 它可以做什么?不可以做什么? 在这篇文章,我打算简单聊聊这些话题。 1. Lambda Expression 是什么? Lambda Expr 阅读全文
posted @ 2018-03-16 15:39 赫尔修斯 阅读(663) 评论(0) 推荐(0)
摘要:Java 泛型 Java Generics 是 JDK 1.5 引入的新特性,它提供了编译时的类型安全检测机制,避免了代码中进行显示的类型转换(cast),是对类型系统的一种增强。 Java Generics 引入了类型参数(type parameter),将集合元素的类型作为了参数。 Java 泛 阅读全文
posted @ 2018-01-09 10:54 赫尔修斯 阅读(340) 评论(0) 推荐(0)
摘要:最近看了 Brian Goetz 写的一篇有关 DCL 的文章:Double-checked locking: Clever, but broken。(2001 年发表于 JavaWorld 上) 这篇文章讲述了 DCL 设计的初衷,但是因为 JVM 的不同实现(没有严格遵循 JMM 规范)导致 D 阅读全文
posted @ 2018-01-03 21:33 赫尔修斯 阅读(917) 评论(0) 推荐(0)
摘要:资料来源于网络,仅供参考学习。 1、A Java program ends when all its threads finish (more specifically, when all its non-daemon threads finish). If the initial thread ( 阅读全文
posted @ 2017-12-29 12:09 赫尔修斯 阅读(217) 评论(0) 推荐(0)
摘要:图片来源于网络,仅供参考学习。 阅读全文
posted @ 2017-12-29 11:40 赫尔修斯 阅读(133) 评论(0) 推荐(0)
摘要:Stack Overflow 上的一个问题:Java: What is the difference between <init> and <clinit>? Stack Overflow 上的一个问题:Java: What is the difference between <init> and 阅读全文
posted @ 2017-12-29 11:28 赫尔修斯 阅读(265) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-12-29 10:38 赫尔修斯 阅读(115) 评论(0) 推荐(0)
摘要:概要 本文分三个部分对Thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示例和作用 1.1 示例 上面代码展示了两个类:Parent(父线程类),Child(子线程类)。 P 阅读全文
posted @ 2017-11-28 11:51 赫尔修斯 阅读(121457) 评论(21) 推荐(43)
摘要:在《深入理解 Java 虚拟机》(第二版,周志明著)中,作者介绍了 JVM 必须初始化类(或接口)的五种情况,但是是针对 JDK 7 而言的。 那么,在 JDK 8 中,这几种情况有没有变化呢?(我猜测应该会有扩展) 接下来我们探讨一下 JDK 8 中 JVM 类的初始化这一部分内容。 官方文档为 阅读全文
posted @ 2017-10-10 09:35 赫尔修斯 阅读(826) 评论(0) 推荐(0)
摘要:官方文档对 HashMap 的定义: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable UML Class Diagram: HashMap 实现了 Map 阅读全文
posted @ 2017-04-15 10:50 赫尔修斯 阅读(250) 评论(0) 推荐(0)
摘要:本文除了SOLID五个原则,还加了迪米特法则、组合/聚合复用原则。 即SOLID + LoD + CARP。 1. 单一职责原则(SRP,Single Responsibility Principle) 一个类应该只有一个职责。(一个类应该只有一个引起其变化的原因) 2. 开闭原则(OCP,Open 阅读全文
posted @ 2017-03-06 20:40 赫尔修斯 阅读(158) 评论(0) 推荐(0)
摘要:遇到了一个问题如下: Caused by the combination of generics and autoboxing. 这是由于泛型和自动装箱联合使用引起的。 可以查看以下两个回答: 1.http://stackoverflow.com/questions/11747020/error-t 阅读全文
posted @ 2017-02-25 10:27 赫尔修斯 阅读(149) 评论(0) 推荐(0)
摘要:JDK 8 Class HashSet<E> Doc: public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable 1、实现了java.util.Set接口,内部由java.uti 阅读全文
posted @ 2016-12-18 10:55 赫尔修斯 阅读(209) 评论(0) 推荐(0)
摘要:equals() 是 java.lang.Object 的一个实例方法,被所有的子类所继承(可被复写)。 以下是 JDK 8 中 java.lang.Object.equals() 源码: 这个方法很简单,当自身和自身比较时,才返回 true。 不同的子类可能会重写这个方法,提供不同的实现。 下面是 阅读全文
posted @ 2016-01-05 14:00 赫尔修斯 阅读(473) 评论(0) 推荐(0)