随笔分类 - Java
摘要:本文转载自: "深入解析String intern" 引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统协调的,String
阅读全文
摘要:以下针对JDK 1.8版本中的 LinkedHashMap 进行分析。 对于 的源码解析,可阅读 "Java——HashMap源码解析" 概述 哈希表和链表基于 接口的实现,其具有可预测的迭代顺序。此实现与 的不同之处在于它维护了一个包括所有条目(Entry)的双向链表。相比
阅读全文
摘要:以下针对JDK 1.8版本中的 ArrayList 进行分析。 概述 基于 接口实现的大小可变的数组。其实现了所有可选的 操作,并且元素允许为任意类型,包括 元素。除了实现 接口,此类还提供了操作内部用于存储列表数组大小的方法(这个类除了没有实现同步
阅读全文
摘要:以下针对JDK 1.8版本中的 HashMap 进行分析。 概述 哈希表基于 接口的实现。此实现提供了所有可选的映射操作,并且允许键为 ,值也为 。HashMap 除了不支持同步操作以及支持 的键值外,其功能大致等同于 Hashtable。这个类不保证
阅读全文
摘要:静态域 如果将域定义为 static,每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定需要给每一个雇员赋予唯一的标识码,这里给 Employee 类添加一个实例域 id 和一个静态域 nextId: 现在,每一个雇
阅读全文
摘要:本文译自 "Java8 tutorial" ,并对其中内容进行了一些修改和补充。 接口的默认方法 在 Java 8 中,我们可以通过 关键字来为接口添加非抽象方法。 关键字修饰的方法称为默认方法,它允许我们添加新的功能到现有库的接口中,并能确保与采用旧版本接口编写的代码之间相互兼容。 对于以下例子:
阅读全文
摘要:为什么需要序列化 当我们创建对象时,只要需要,对象就会一直存在,但在程序终止的时候,无论如何它都不会继续存在。这么做有一定的意义,但是如果对象能够在程序不运行的情况下仍能存在并保存其信息,这样,在下次运行程序时,该对象将被重建并且拥有的信息与在程序上次运行时它所拥有的信息相同。为达到这目的,通常的做
阅读全文
摘要:原链接:传送门 前天在做系统的时候被Java中参数传递问题卡了一下,回头查阅了相关的资料,对参数传递问题有了新的了解和掌握,但是有个问题感觉还是很模糊,就是Java中到底是否只存在值传递,因为在查阅资料时,经常看到有人说Java只有值传递,但有人说既有值传递,也有引用传递,对于两个观点个人觉得应该是
阅读全文
摘要:原链接:传送门 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入
阅读全文
摘要:此时,d和harry.hireDay引用同一个对象,对d调用更改器方法可以自动改变私有的hireDay的值。修改为:
阅读全文