![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
黄杏波
临渊羡鱼,不如退而结网
展开
-
HashMap源码剖析
本文来自:我的博客,原文地址:https://blog.csdn.net/silentljh/article/details/80444216,转载请注明。 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构,我们总会在不经意间用到它,很大程度上方便了我们日常开发。 注:以下分析全部基于JDK1.7,不同版本之间会有较大的改动,读者需要注意。 HashMap概述 HashMap是一种基于哈希表实现的Map,它通过键的hashCode来快速的存取元素 HashMa原创 2020-07-30 08:43:39 · 139 阅读 · 0 评论 -
一文了解虚拟机内存模型
一、虚拟机 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。 同一个java代码在windows上生成的机器码可能是0101.......,在linux上生成的可能是1100......,那么这是怎么实现的呢? 不知道同学们还记不记得,在下载jdk的时候,我们在oracle官网,基于不同的操作系统或者位数版本要下载不同的jdk版本,也...原创 2020-05-19 09:11:02 · 184 阅读 · 0 评论 -
多线程中,全局变量用static修饰导致变量被共享
多线程中,有时候需要调用多线程的时候需要传参,如果全局变量用static修饰,会导致变量被共享,这些变量值被用到的时候不一定会是最新的。 public class SqlQueryThread implements Callable { private static Logger logger = LoggerFactory.getLogger(SqlQueryThread.cla...原创 2020-03-30 13:42:31 · 3413 阅读 · 0 评论 -
深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成...转载 2018-09-27 16:13:39 · 102 阅读 · 0 评论 -
深入理解JVM——基本原理
前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图: java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操...转载 2018-09-27 16:19:17 · 1158 阅读 · 0 评论 -
Java 垃圾回收机制
什么是自动垃圾回收? 自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用对象),则没有被任何指针给指向,因此占用的内存也可以被回收掉。 在用 C 之类的编程语言时,程序员需要自己手动分配和释放内存。而 Java 不一样,它有垃圾回收器,释放内存由回收器负责。本文接下...转载 2019-06-12 09:09:18 · 114 阅读 · 0 评论