随笔分类 -  Java

摘要:ArrayList是我们经常用到的一个类,下面总结一下它内部的实现细节和使用时要注意的地方。 基本概念 ArrayList在数据结构的层面上讲,是一个用数组实现的list,从应用层面上讲,就是一个容量会自己改变的数组,具有一系列方便的add、set、get、remove等方法,线程不安全。先上张类图 阅读全文
posted @ 2017-08-02 11:20 付大石 阅读(1630) 评论(0) 推荐(0) 编辑
摘要:随着JDK的发展,一些设计缺陷或者性能不足的类库难免会被淘汰,最常见的就是Vector、Stack、HashTable和Enumeration了。 Vector(@since 1.0) 首先看看Vector的UML类图,可以看出,他是一个与ArrayList有着相同继承体系的类,大致功能也和Arra 阅读全文
posted @ 2017-07-20 21:33 付大石 阅读(1464) 评论(0) 推荐(1) 编辑
摘要:内部类的分类 内部类分为普通内部类,局部内部类,匿名内部类,嵌套类,接口内部类。比较陌生的就是接口内部类了,顾名思义就是在接口中定义一个内部类,这个内部类默认是public static的,用处不大。 内部类的创建需要外部类的实例的引用 我们都知道,内部类可以肆无忌惮的访问外部类的成员,这是怎么办到 阅读全文
posted @ 2017-07-14 17:25 付大石 阅读(244) 评论(0) 推荐(0) 编辑
摘要:整理自知乎;整理自知乎;整理自知乎 静态代理与动态代理 整理自知乎;整理自知乎;整理自知乎 静态代理与动态代理 代理模式是一种设计模式,典型的分为静态代理和动态代理。 先讲静态代理 首先给个场景,现有个FontProvider接口,用于获取字体 public interface FontProvid 阅读全文
posted @ 2017-07-04 16:45 付大石 阅读(1673) 评论(0) 推荐(0) 编辑
摘要:所谓静态代码块,是指用static关键字修饰的代码块,特点是代码块会在类的构造代码块、构造函数之前运行, 且只会执行一次。而构造代码块,则就是单纯的由花括号构成的代码块,特点是代码块会在类的构造函数之前运行, 且每次实例化对象都会被调用。本篇blog从虚拟机的角度描述静态代码块和构造代码块,加深理解 阅读全文
posted @ 2017-04-23 09:43 付大石 阅读(761) 评论(0) 推荐(0) 编辑
摘要:当final修饰一个数据域时,意义是声明该数据域是最终的,不可修改的。常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的。 另外还可以构造线程安全(thread safe)的immutable类,比如String,其数据域都是final的。这些使用场景都建 阅读全文
posted @ 2017-03-26 22:20 付大石 阅读(5859) 评论(1) 推荐(0) 编辑
摘要:1.stop()方法 中断Java线程,首当其冲的当然是“方便的”stop()方法啦!直接调用,线程就会中止运行。 但是这个方法却在API中被标明为废弃,这是为什么? 这是正是因为它的“方便”导致的,想象某一个数据处理线程,数据处理到一半, 然后调用stop()方法,线程自然会被中断,但是他还有一半 阅读全文
posted @ 2017-03-17 19:48 付大石 阅读(306) 评论(0) 推荐(0) 编辑
摘要:以前跟别人讨论finally关键字,我总是简单的说:“fianly代码块中的代码一定会执行,一般用来清除IO资源等非内存资源(内存资源由GC机制回收)”。 今天翻书发现了几种不会执行的情况,现在总结下。 1.finally的含义 finally的真正含义是指从try代码块出来才一定会执行相应的fin 阅读全文
posted @ 2017-03-03 19:39 付大石 阅读(15585) 评论(2) 推荐(2) 编辑

点击右上角即可分享
微信分享提示