![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入JAVA虚拟机
文章平均质量分 95
MatrixYg
暂无
展开
-
从JDK源码角度分析Java线程
前言 ~~~ 在2018年的夏天,我开始了Java学习之路。当时我才学完C++,面向对象,数据结构。还没学到操作系统和网络,所以当我学到Java的并发之后,发现了线程这个概念。并且学会了怎么使用线程,我当时以为这是Java独有的,直到学完操作系统才知道,原来线程是操作系统级别的概念,那么一个疑惑就出现了,Java线程和操作系统线程,有什么关系呢?PS:创作不易,求个关注!!基础知识 ~~~ 原创 2022-03-18 21:47:08 · 801 阅读 · 0 评论 -
【JAVA线程内存模型】
JMMJAVA Memory Model 简称JMM,时JAVA内存模型。这个和虚拟机内存模型里面的栈,堆其实没有太大的联系。该模型指的是JAVA 运行的时候,每个线程的内存访问机制。主内存和工作内存这是一张不是很清晰的图片,选自《深入JAVA虚拟机》一书。首先是主内存,所有的变量都是存在于主内存里面,JAVA的每个线程使用的是自己的工作内存,工作内存中存放的是主内存变量的拷贝,也就是说J...原创 2020-01-01 14:44:50 · 188 阅读 · 0 评论 -
【JAVA虚拟机的内存分配】
内存分配内存的自动管理的核心要点就是内存分配和内存自动回收。前几篇说了内存是怎么自动回收的,该篇说一下内存的分配堆栈式内存现在的虚拟机都是基于堆栈来管理内存的,内存分配主要是在堆上发生。所以研究这一阶段时,需要知道怎么设置一下虚拟机堆的大小。虚拟机时通过虚拟机参数动态的来设定所有的参数大小。在IDEA中:找到这里,编辑程序的配置:简单说一下这几个参数的意思:(1)-Xms:这个规定了...原创 2019-12-30 23:17:19 · 202 阅读 · 0 评论 -
【垃圾回收算法以及垃圾回收器】
垃圾回收算法前边简单的说明了一下如何判定对象是不是需要回收,该篇讨论一下常用的垃圾回收算法。但是只是讨论原理,并没有具体的代码实现,也就是说只是停留在理论层面,原因大概是首先这些算法其实并不难实现,其次这些算法只是一些基本的算法思想,每个虚拟机会在这些算法的思想上拓展自己的垃圾回收算法标记清除该算法其实分为两个过程,标记垃圾,然后清楚垃圾。标记:标记过程其实就是前边说的两种标记算法。简单的...原创 2019-12-30 19:21:31 · 192 阅读 · 0 评论 -
【对象的生死判定】
垃圾回收JAVA有一个很大的好处就是,不用自己管理内存,虚拟机帮助开发者完成了这些操作。所以这是好是坏呢?不敢苟同。对象生死垃圾的定义:垃圾回收肯定是要知道怎么定义垃圾。简单点说就是,已经被用过了,并且不会再用了,而且还在内存里面的对象,就是垃圾。因为他占着资源。如何判断垃圾:现在常用的两种方法,引用计数法和可达性分析。引用计数:这个其实是一个很不错的方法,思想也很简单,如果一个对象被引...原创 2019-12-29 21:39:51 · 229 阅读 · 0 评论 -
【JAVA类加载的全过程】
1.其实这一部分的内容在解析static那几个关键字已经有所提及,但是类加载在作为一个很重要的点,我们单独拿出来再看看。我们知道,在执行JAVA程序的时候,首先是编译,把源码编译成字节码文件。然后是执行,其实这个执行的过程就是一个类加载的过程。执行一个类,就是JVM把这个类的字节码加载到内存中操作,那么我们来分析一下这个过程2.首先是类加载。(1)JVM把字节码文件加载到方法区,同时在堆的...原创 2019-02-12 22:32:14 · 954 阅读 · 1 评论 -
【JAVA 虚拟机的内存模型】
1.这个话题其实被很多人写过了,但是也会被很多人继续写下去,我就是其中一个。2.JVM的内存划分其实并不是一样的,因为每个虚拟机,每个版本都会有一定的改动。本文讨论的是HotSpot虚拟机的内存模型(JAVA虚拟机的一个版本)。以上就是JVM的内存结构。一个一个来说。首先提两个概念:线程私有和线程共享。这个指的是在多线程的环境下,如果一个线程的某些资源只能是自己访问,其他线程不...原创 2019-12-09 21:49:27 · 174 阅读 · 0 评论 -
【JAVA中的对象】
对象基础创建方式JAVA是一门面对对象的语言,几乎是处处皆对象。在JAVA语言中,创建对象可以有多种方式,可以直接new,可以反射,可以反序列化等等。对象的创建第一步:类加载(1)拿new为例,当虚拟机执行new时,就会去查找这个对象的类有没有被加载过,具体点就是虚拟机回到常量池中定位一下该类有没有具体的符号引用,如果没有那么就去加载这个类。第二步:内存分配(2)当类加载完成以后,就...原创 2019-12-29 20:59:23 · 176 阅读 · 0 评论