![](https://img-blog.csdnimg.cn/20200227101259993.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
Java相关知识
小裸葱
这个作者很懒,什么都没留下…
展开
-
HashMap、HashTable、ConcurrentHashMap的区别与联系
本文主要讨论Map家族的区别和联系,个体详细内容单独介绍。区别:线程安全问题:HashTable、ConcurrentHashMap是线程安全的,HashMap是线程不安全的。性能方面:HashMap > ConcurrentHashMap > HashTableHashMap线程不安全的表现:put()方法:两个线程put的key,HashCode发生碰撞。在获取了相同的数组下标或父节点,写入时后一个会将前一个的值覆盖,从而造成数据的丢失。put()时,若++size>原创 2020-06-19 09:52:28 · 62 阅读 · 0 评论 -
常量池与Strinig.intern()
文章目录常量池1. Class文件常量池2. 运行时常量池3. 全局字符串常量池常量池加载过程String.intern()方法与常量池常量池为什么要使用常量池?从内存上:合并相同的字面量,减少不必要的内存空间;从时间上:对于字符串的比较,对常量池中的字符串使用“==”判断引用是否相等比equals快。1. Class文件常量池 编译器间生成的字面量与符号引用1,在类加载后移至运...原创 2020-06-03 17:30:32 · 67 阅读 · 0 评论 -
Java类加载机制
文章目录类加载的过程类加载方式1. 加载2. 验证3. 准备4. 解析5. 初始化类加载器类加载器的双亲委任模型类加载的过程类加载机制:虚拟机把Class文件加载到内存,并对数据进行验证、解析、准备和初始化,最终形成被虚拟机使用的Java类型。ps:Java的类加载过程都是在程序运行期间完成的类加载方式这里的类加载不是指类加载阶段,而是指整个类加载过程,即类加载阶段到初始化完成。...原创 2020-06-03 17:29:48 · 63 阅读 · 0 评论 -
JAVA内存区域分析
文章目录JAVA内存区域堆方法区(Non-Heap)JAVA内存区域内存区域线程生命周期作用程序计数器私有线程指向执行的字节码指令的行号虚拟机栈私有线程存放局部变量、操作数栈、动态链接、方法出口等信息本地方法栈私有线程类似虚拟机栈,为本地方法服务方法区共享虚拟机存放类信息、常量、静态变量、全局变量和即时编译器编译的代码...原创 2020-06-03 17:26:59 · 78 阅读 · 0 评论