一次偶然,博主在浏览docs.oracle.com/javase的时候发现了《Hotspot虚拟机垃圾收集调优指南》这篇文档。内心百感交集,之前在看完了周志明的《深入理解Java虚拟机 JVM高级特性与最佳实践(第二版)》也有比较长篇的学习记录博客发表。不过那也是基于JDK7进行编写的。后续的8、9 ...
分类:
其他好文 时间:
2018-09-11 18:42:06
阅读次数:
185
HashTable是什么 HashTable跟HashMap一样,同样是链表散列的数据结构,从源码中我们可以看出,Hashtable 继承于Dictionary类,实现了Map, Cloneable,Serializable接口 Hashtable成员变量 Hashtable构造方法 Hashtab ...
分类:
编程语言 时间:
2018-09-05 21:49:14
阅读次数:
173
Java 有两种代理方式,一种是静态代理,另一种是动态代理。对于静态代理,其实就是通过依赖注入,对对象进行封装,不让外部知道实现的细节。很多 API 就是通过这种形式来封装的。 代理模式结构图(图片来自《大话设计模式》) 下面看下两者在概念上的解释: 静态代理 静态代理类:由程序员创建或者由第三方工 ...
分类:
编程语言 时间:
2018-09-03 02:43:56
阅读次数:
158
java内存区域和内存溢出异常 划分内存: java 虚拟机在执行 java 程序时将内存划分为 5 个部分。线程私有的有成员计数器、虚拟机栈、本地方法栈,线程共享的有方法区、堆。 程序计数器储存字节码行号,此区域未规定任何内存溢出异常。虚拟机栈储存栈帧,用于java 方法的运行。本地方法栈用于 n ...
分类:
编程语言 时间:
2018-09-02 02:13:29
阅读次数:
161
前言: 传统的 IO 流还是有很多缺陷的,尤其它的阻塞性加上磁盘读写本来就慢,会导致 CPU 使用效率大大降低。 所以,jdk 1.4 发布了 NIO 包,NIO 的文件读写设计颠覆了传统 IO 的设计,采用通道+缓存区使得新式的 IO 操作直接面向缓存区,并且是非阻塞的,对于效率的提升真不是一点两 ...
分类:
编程语言 时间:
2018-08-27 18:07:51
阅读次数:
133
Arraylist集合 添加方法 1、add(E e) 向集合中添加元素 2、add(int index ,E e) 向集合的指定索引处添加元素 3、addAll(Collection< ? extends E> c) 添加集合 4、addAll(int index, Collection<? ex ...
分类:
编程语言 时间:
2018-08-26 18:33:24
阅读次数:
152
ArrayList有三个构造方法 ArrayList有三个常量 1、private transient Object[] elementData (数组); 2、private int size (元素个数) 1、ArrayList(int initialCapacity); 构造一个初始容量的集合 ...
分类:
编程语言 时间:
2018-08-26 16:39:34
阅读次数:
186
ArrayList简介 ArrayLIst是动态数组,用MSDN的说法就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,可以灵活的设置数组的大小,要注意ArrayLIst并不是线程安全的。因此一般建议在单线程中使用Arraylist数组 ArrayLi ...
分类:
编程语言 时间:
2018-08-25 14:17:34
阅读次数:
188
前面说过了类的加载机制,里面讲到了类的初始化中时用到了一部分内存管理的知识,这里让我们来看下Java虚拟机是如何管理内存的。 先让我们来看张图 有些文章中对线程隔离区还称之为线程独占区,其实是一个意思了。下面让我们来详细介绍下这五部分; 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所 ...
分类:
编程语言 时间:
2018-08-24 13:32:17
阅读次数:
245
作者:dannyhoo6688 链接:https://blog.csdn.net/huyuyang6688/article/details/81490570 本文是学习了《深入理解Java虚拟机》之后的总结,主要内容都来自于书中,也有作者的一些理解。一是为了梳理知识点,归纳总结,二是为了分享交流,如 ...
分类:
其他好文 时间:
2018-08-21 18:24:43
阅读次数:
274