探究Java的奥秘
文章平均质量分 94
一代版本一代神,代代都有Java人。
进击的小宇宙
用十倍苦心,做突出一个。
展开
-
Java函数式编程
本文介绍Java 8新特性之一——函数式编程。原创 2019-10-02 18:22:07 · 455 阅读 · 0 评论 -
Queue+FileChannel实现非递归高效率目录拷贝
Queue+FileChannel实现非递归高效率目录拷贝一、 摘要本文介绍非递归目录遍历的实现、FileChannel的使用,从而实现非递归的、安全的目录拷贝。二、 非递归目录遍历 - Queue对于文件夹拷贝,我们常用的目录遍历方式是递归,在一个方法体中调用File.listFiles(),然后对每一个子file再调用该方法体,这样实现起来看似简单,实际上有很大的隐患。当我们的目录...原创 2019-01-07 15:19:38 · 271 阅读 · 0 评论 -
当心Arrays.asList()挖的巨坑
一、 前言先交代该问题出现的背景,博主最近在业务中,需要把List以逗号为分隔符,转为字符串存到本地文件中,同样也需要读取这个字符串转回List,于是自然而然想到的是: String pkgsString = "aaa,bbb,ccc,ddd,eee"; String[] pkgs = pkgsString.split(","); List<原创 2018-11-15 15:23:34 · 734 阅读 · 0 评论 -
ArrayList和LinkedList的效率对比
一、 前言首先我要批判一下很多关于这两个数据结构的对比测试文章,其作者在根本没搞清楚这俩内部实现原理和数据结构的情况下,用错误的方法测得结果,碰巧符合理论,因此认为符合,从而误导读者。之所以这么说,还请读者细读本文,之后便明白了。二、 数据结构ArrayListArrayList在内存中是连续的、单向的、有序的。ArrayList中维护了一个按照下标顺序的一维数组,数组中每个item指...原创 2018-10-24 11:09:10 · 3259 阅读 · 6 评论 -
Java四种引用方式
一、 四种引用类型1. 强引用Object obj;我们像这样直接声明的一个引用都是强引用。如果一个对象只被强引用方式引用,只有当这个对象的所有引用都失效(主动或者被动置空),这个对象才可以被GC回收(置空的对象并非立即被回收,当GC轮询到该对象发现其为空时才会主动回收它,不过我们可以调用System.gc()主动通知GC轮询)。2. 软引用Object obj = new Obj...原创 2018-10-22 17:39:26 · 308 阅读 · 0 评论 -
Java单例模式中双检锁的线程安全问题
一、 实现一个双检锁双检锁,顾名思义,两次检查一次锁:public class DoubleCheckLock { private static DoubleCheckLock instance; private DoubleCheckLock() { // TODO } public static DoubleCheckLock g...原创 2018-09-14 15:06:20 · 9448 阅读 · 11 评论 -
Java中的for(;;)和while(true)
一、 摘要在Java代码中,对于死循环有两种常见的方式: - for(;;) - while(true)那么二者到底有什么区别呢?二、 实践1. 首先编写一个java文件,内容如下:public class Demo { public void demo1() { for (;;) {} } public void demo...原创 2018-09-12 11:43:58 · 5085 阅读 · 1 评论 -
Java学习笔记
本文记录一些学习过程中觉得重要的笔记,不定期更新扩充。如有错误,欢迎指正。1. 尽量使用fori循环而不是foreach或者迭代器iterator (1)foreach的底层也是由iterator实现的 (2)iterator效率很低,因为每一次遍历都要hasNext() (3)iterator不是线程安全的,会抛出并发修改异常ConcurrentModificationExceptio原创 2017-08-27 22:25:53 · 332 阅读 · 0 评论