摘要: 一、硬件与效率的一致性 计算机的存储设备与处理器的运算速度存在几个数量级的差距,现在计算机系统不得不在内存和处理器之间增加一层高速缓存(cache)来作为缓冲。将运算需要的数据复制到缓存中,让运算能够快速进行,当运算结束的时候再讲数据从缓存同步到内存中,这样处理器无须等待缓慢的内存读写。除了增加高速 阅读全文
posted @ 2018-08-05 12:33 ~直落银河九天~ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: java虚拟机性能监控常用命令 Sun JDK监控和故障处理命令有jps、jstat、jinfo、jmap、jhat、jstack 。 1.jps jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 常使用用命令如下: jps -l -m 显示系统 阅读全文
posted @ 2018-08-04 13:35 ~直落银河九天~ 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 一、为何需要学习GC? 很多人会问为何需要学习GC相关的知识,甚至会问为何学习JVM,最开始我也觉得学习JVM相关知识在工作并没有多大帮助,很多人包括自己学习的目的可能是为了应付面试。当然有的人说是因为兴趣,这个不排除这种可能,不过在中国绝大多数搞IT的仅仅是为了生存,并不是内心中喜欢编程,喜欢搞技 阅读全文
posted @ 2018-08-02 19:54 ~直落银河九天~ 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 一、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其存放在运行时数据区的方法区内,然后在java堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结 阅读全文
posted @ 2018-08-02 14:48 ~直落银河九天~ 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 一、java运行时数据区域 Java虚拟机在执行java程序的过程中将它所管理的内存划分为若干个不同的数据区域,每个区域都有各自的用途,以及创建和销毁的时间。具体的如下图所示: 总体上来说JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存细分为年轻代和老年代(老年代空间大小=堆空间大小-年轻代大 阅读全文
posted @ 2018-07-30 22:25 ~直落银河九天~ 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、ArrayList与Vector ArrayList与Vector很多地方大同小异,Vector现在已经基本不再使用。具体的管理如下:1.ArrayList与Vector都实现了List接口,底层都是基于动态数组实现。 2.ArrayList与Vector底层数组初始大小均为10。 3.Arra 阅读全文
posted @ 2018-07-30 21:40 ~直落银河九天~ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadLocal定义 ThreadLocal是一个可以提供线程局部变量的类,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路,通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解 阅读全文
posted @ 2018-07-30 21:39 ~直落银河九天~ 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 一、java内存模型 1.java内存模型 程序运行过程中的临时数据是存放在主存(物理内存)中,但是现代计算机CPU的运算能力和速度非常的高效,从内存中读取和写入数据的速度跟不上CPU的处理速度,在这种情况下,CPU高速缓存应运而生。基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是出现 阅读全文
posted @ 2018-07-25 20:18 ~直落银河九天~ 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、HashMap 定义 HashMap 是一个基于散列表(哈希表)实现的键值对集合,每个元素都是key-value对,jdk1.8后,底层数据结构涉及到了数组、链表以及红黑树。目的进一步的优化HashMap的性能和效率。允许key和value为NULL,同样非线程安全。 ①、继承AbstractM 阅读全文
posted @ 2018-07-21 13:43 ~直落银河九天~ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一、Lock的出现 Lock的主要作用实现线程之间的同步互斥,与synchronized关键字的效果是一样的,synchronized是Java语言内置的特性,那么为什么又出现了Lock呢?原因是synchronized不是完美的,那么synchronized的缺陷在哪里呢? ①、通过synchro 阅读全文
posted @ 2018-07-18 23:17 ~直落银河九天~ 阅读(253) 评论(0) 推荐(0) 编辑