随笔分类 - Java
摘要:本文提供一份递归遍历目录获取所有文件及目录的源代码: 演示效果如下,所有的文件名及目录名都被打印出来了。 基于以上代码,按照自己的需求额外扩展实现(例如获取所有文件、或者所有目录,或者提供Iterator接口,在此不作实现)。
阅读全文
摘要:前言: 本文首先介绍强引用StrongReference、软引用SoftReference、弱引用WeakReference与虚引用PhantomReference之间的区别与联系; 并通过一个高速缓存的构建方案,来了解SoftReference的应用场景。 本文参考书籍Thinking in Ja
阅读全文
摘要:本文以jdk源码为线索学习几种数据类型实现机制。 【HashMap数据机制】 HashMap提供了key、value存储机制。HashMap是LinkedHashMap的基类,其内部维护一个Node数组用来存储数据: 为了解决hash冲突,每个节点存储链表或者红黑树。当链表长度小于阈值8时,使用链表
阅读全文
摘要:概念 Java中数组属于引用类型。数组使用场合较多,对于数组的操作具有一定重复性,例如:数组拷贝,转换字符串,转换成数组,排序等等。既然重复的操作与需求多,那么对于数组操作的支持就成了JDK中的一大需求。java.util.Arrays中提供了很多对数组操作的支持。 System.arraycopy
阅读全文
摘要:定义 Java中的泛型在JavaSE5中引入。所谓泛型,即参数化类型。就是说,类型是以参数的方式传入泛型类。例如: 那么,类型参数就是Integer。 缘由 为什么要引入泛型呢,得看在没有泛型的情况下会存在什么样的问题。看下面这个非常常见的例子: 点击运行,啊哦,ClassCastException
阅读全文
摘要:本文主要以简单的String/StringBuilder/StringBuffer操作来看这三个类的实现原理。什么简单操作呢?那就是StringBuilder与StringBuffer的append() && toString()两个方法。示例代码如下: 以上的demo中,涉及到了String的构造
阅读全文
摘要:Chapter1 对象导论 (1)编程即抽象 (2)每个对象都有接口 (3)每个对象都提供服务 设计过程中,应遵循"高内聚,低耦合"原则 (4)被隐藏的具体实现 类设计过程,应通过封装的手段,将实现细节隐藏(private),而将接口暴露(public) (5)复用具体实现 复用:同一个实现,应尽可
阅读全文
摘要:与ArrayList同为List,LinkedList却展现出不同的特性。作为java.util下的另一重要容器,我们下面来探究一下LinkedList的源码实现及特性分析。 上篇文章讲述到,ArrayList用数组来存储数据,伴随数据量的变大,ArrayList动态扩充数组容量。与之不同,Link
阅读全文
摘要:java.util.ArrayList是十分常用的容器之一,本文针对其常用方法,对其进行简单的研究。ArrayList常见方法如下,主要还是增删改查: 首先,看一下ArrayList中如何保存数据的: 所以,所有的数据都是保存在数组里的。当然,数组都有个大小: 若ArrayList使用无参构造函数实
阅读全文
摘要:前两天看java源码,看到ArrayList的add函数。 ArrayList中是用数组保存数据的,add函数如下: 这里我对这个System.arraycopy 比较感兴趣,因为这里是从一个数组拷贝到同一个数组,竟然不担心会出现拷贝错误的情况。 下意识以为 System.arraycopy实现方式
阅读全文
摘要:一、用途 程序中记录日志,打印到控制台、文件等方式,记录过程可根据日志级别做筛选,日志格式可以自定义。 大概结构如下所示: 简要说明各个模块: (1) LogManager:管理LoggerContext及Logger,可以添加、获取Logger。 (2) LoggerContext: 保存所有Lo
阅读全文
浙公网安备 33010602011771号