E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Jvm学习
jvm学习
笔记三,Java内存模型与线程
为什么计算机能同时去做几件事?1.计算机的运算能力逐渐变强2.计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘的I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力“压榨”出来,否则就会造成很大的浪费,而让计算机同时处理几项任务则是最容易想到、也是证明非常有效的“压榨”手段。(并发的原理就是利用
我是小袋子
·
2020-09-15 06:26
JVM学习
(JMM内存模型知识)
JMM内存模型学习学习JMM内存模型,我们先从基础的入手,然后再从一步步的深入讲解来让大家对这些知识理解透彻。我尽量把我认识和知道的只是来分享给大家。以下部分语句转载自文章https://www.jianshu.com/p/8a58d83352701、线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共
mmmayang
·
2020-09-15 06:19
JVM虚拟机
java
内存结构
多线程
JVM学习
(Java内存区域)
JVM学习
(Java内存区域)随着Java学习的越来越深入,对框架了解过后,决定从Java底层入手,一步一步的更加了解Java,熟悉Java,争取能做到优化Java程序以及了解Java整体的一个架构,所以博主我读了
mmmayang
·
2020-09-15 06:19
JVM虚拟机
jvm
java
内存结构
JVM学习
之运行时数据区(方法区、堆、虚拟机栈、本地方法栈、程序计数器)
运行时数据区(程序运行时在jvm的一个状态;内存模型(JMM:分为metaspace和heap))重点为方法区、堆、虚拟机栈左边是线程共享的(方法区、堆),右边是线程私有的(虚拟机栈、本地方法栈、计数器)线程私有的生命周期都比较短MethodArea(方法区)方法区是各个线程共享的内存区域,在虚拟机启动时创建。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法区只有
weijx_
·
2020-09-15 05:57
JVM
JAVA
java
jvm
[
JVM学习
之路]三、运行时数据区的内部结构详解(一)(程序计数器、虚拟机栈和本地方法栈)
运行时数据区的内部结构(程序计数器、虚拟机栈和本地方法栈)一、运行时数据区结构图源-阿里JDK8以后,原来的方法区变成了元数据区+JIT编译产物在JVM运行的时候,有些区是随着进程而存在消亡,而有些是随着线程在图中红色的方法区和堆是随着JVM的生命而创建和消亡,也就是对应着JVM进程,是进程中所有的线程所共有的;而图中灰色区域则是与使用的线程进行一一对应,是每个线程所私有的。也就是说,每个线程独立
叶落雨飘
·
2020-09-15 04:09
学习笔记
JVM
jvm
java
面试
运行时数据区
JVM复习总结
JVM学习
笔记1.什么是jvm2.什么是jvm的垃圾回收机制,或者说,为什么要进行垃圾回收通俗来说,jvm是用来创建对象的,jvm占有一定的内存,每去创建对象都会去占有一定的内存,而内存空间是一定的,当
新仔“”
·
2020-09-14 10:41
笔记
jvm
JVM学习
笔记之-JAVA语言概述.
就编程语言来说,java无疑创造了一个无可复制的神话.俗话都说,编程没必要纠结那门语言,但实际开发确实是那门语言强大,适合开发需求,我们就会选择那门语言开发.话不多说,我们看看编程语言近几年的情况.图1-1(来自百度百科)图1-2(来自百度百科)图1-3(来自百度百科)个人认为,语言不再多,在于精通。精通一门语言,比你同时会10门语言的基础更重要。好吧,转入正题,是什么让java语言有如此的魔力呢
无问_
·
2020-09-14 05:31
过去的酱油文章
清华大佬力荐的
JVM学习
路线+实战笔记+阿里真题,嚼碎吃透吊打面试官
JVM知识点梳理JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以
Java_msb666
·
2020-09-14 05:11
架构
面试
JVM
面试
程序设计
编程语言
java
jvm
JVM学习
总结——JVM优化(jvm参数)
问题:最近接触一个项目,项目灰度测试时发现3次下单2次超时。这就比较恐怖了,业务方之间反馈出来了,通过排查日志发现一个组装参数的方法耗时大概300~500ms,现在的RPC接口肯定不能接受。排查方式:通过观察YoungGC发现一次300多ms,时间也正好吻合。机器配置2C4G每次FullGC后,内存都能回到某一个值可以排除内存泄漏的情况解决方式:对垃圾回收器进行参数调优,调优过程发现程序处理问题的
技术分子
·
2020-09-14 04:42
jvm
jvm
JVM学习
笔记day2
类的加载类的加载的最终产品是位于内存中的Class对象Class对象封装了类在方法区内的数据结构,并且将Java程序员提供了访问方法区内的数据结构的接口有两种类型的类加载器Java虚拟机自带的加载器根类加载器(Bootstrap)扩展类加载器(Extension)系统(应用)类加载器(System)用户自定义的类加载器java.lang.Classloader的子类用户可以定制类的加载方式类加载器
GingerZhow
·
2020-09-13 07:40
学习笔记
jvm
JVM学习
(一)简介
一、java程序编译到运行大概流程1、SourceCodeFiles为.java文件2、通过编译产生可执行的字节码。3、通过jvm得到机器可以执行的机器码4、操作系统运行机器码,并与硬件进行交互。为什么JVM能一次编译,处处运行?查了资料。大概的解释是,JVM将class文件翻译成当前机器可执行的命令,然后与当前操作系统进行交互。也就是说JVM负责了翻译class文件到可运行命令的操作。JVM使得
weixin_30588675
·
2020-09-12 20:46
JVM学习
笔记(六)垃圾收集器
7.4垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。7.4.1Serial收集器Serial收集器是最基本、发展历史悠久的收集器。曾是(JDK1.3.1)之前新生代收集唯一的选择。优点:简单高效,拥有很高的单线程收集效率缺点:收集过程需要暂停所有线程算法:复制算法适用范围:新生代应用:Client模式下默认的新生代收集器7.4.2ParNew收集器Serial收
wisdom-chen
·
2020-09-12 09:07
JVM
jvm
JVM学习
笔记(七)JVM参数
8.1JVM参数8.1.1标准参数-version-help-server-cp8.1.2-X参数非标准参数,可能会随着JDK版本而变动-Xint解释执行-Xcomp第一次使用就编译成本地代码-Xmixed混合模式,JVM自己解决8.1.3-XX参数使用频繁非标准化参数,相对不稳定,主要用于JVM调优额Debuga.Boolean类型格式:-XX:[+-]+或-表示启用或者禁用name属性比如:-
wisdom-chen
·
2020-09-12 09:07
JVM
jvm
JVM学习
笔记(八)常用命令和常用工具
8.2常用命令8.2.1jps查看java进程jps-l8.2.2jinfo实时查看和调整JVM参数1)查看某个java进程的name属性jinfo-flagMaxHeapSizePIDjinfo-flagUseG1GCPID2)修改参数只有被标记为manageable的flag才能被实时修改jinfo-flag[+|-]PIDjinfo-flag=PID3)查看曾经被赋值过的一些参数jinfo-
wisdom-chen
·
2020-09-12 09:07
JVM
jvm
JVM学习
笔记(五)垃圾回收算法
7.垃圾回收(GarbageCollect)7.1如何确定一个对象是垃圾?想要进行垃圾回收,要知道垃圾满足什么条件?7.1.1引用计数法对于某个对象而言,只要程序中持有该对象的引用,就说明这个对象不是垃圾,如果该对象没有任何指针对其引用,那它就是垃圾。弊端:如果AB互相持有引用,会导致永远不能被回收。7.1.2可达性分析通过GCRoot的对象,开始向下寻找,查看对象是否可达。能作为GCRoot:类
wisdom-chen
·
2020-09-12 09:07
JVM
jvm
JVM学习
笔记(四)堆内存
6.堆内存模型6.1概述和图解一块是非堆区,一块是堆区。堆区分为两大块,一个是old区,一个是Young区。Young区分为两大块,一个是Survivor区(S0+S1),一块是Eden区。Eden:S0:S1=8:1:1S0和S1一样大,也可以叫From和To。图解Q:一个对象的创建在那个区域?6.2对象创建区域一般情况下,对象创建会被分配给Eden区,一些特殊比较大的对象会分配到Old区。比如
wisdom-chen
·
2020-09-12 09:07
JVM
Java
JVM
JAVA程序员养成计划之
JVM学习
笔记(3)-JVM性能监控
本文对JVM的性能监控方法做整理。持续更新中……1.JDK命令行工具1.1.jps:虚拟机进程状况工具JVMProcessStatusTool,显示系统内所有的HotSpot虚拟机进程,用于查看当前在jvm中运行的程序,包括虚拟机执行主类的名称以及进程ID。1.2.jstat:虚拟机统计信息监视工具JVMStatisticsMonitoringTool,用于收集Hotspot虚拟机各方面的运行数据
tmeteorj
·
2020-09-11 16:36
JAVA学习
JVM学习
JAVA程序员养成计划之
JVM学习
笔记(0)-一些注意事项
本文主要是针对JVM的一些小知识点进行梳理,如有什么地方有误或者不明白,欢迎指正讨论。持续更新中……1.内存回收1.1.线程栈帧中局部变量表的内存回收复用含义:线程的局部变量表是可以被JVM给复用的,首先要说的是变量槽,即slot,也就是局部变量表中的各个存放数据类型的位置。所谓复用,即局部变量表中的一个变量在确认不会被使用后,其他变量可以存放在这个位置上,以此来节省空间。内存泄露情况:当变量不再
tmeteorj
·
2020-09-11 16:04
JVM学习
JAVA学习
JAVA程序员养成计划之
JVM学习
笔记(1)-运行时数据区
本文主要对JVM运行时数据区进行描述,属于JVM基础部分持续更新中……1.逻辑结构关于运行时数据区的逻辑结构,网上已经有很多的说明了,这里引用其中一张以作阐释:2.分区运行时数据区总共分为两个大部分,即由线程所共享的堆区、方法区,以及每个线程私有的虚拟机栈、程序计数器、本地方法栈。【堆区】堆区为JVM垃圾回收的主要部分,涉及到了新生代、老年代,其中新生代又有Eden区和两个Survivor区的划分
tmeteorj
·
2020-09-11 16:03
JVM学习
JAVA学习
java
jvm
JVM学习
-04:JVM之虚拟机栈详解
一.虚拟机栈概念1.概念由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。栈是运行时的单位,而堆是存储的单位。即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪儿。Java虚拟机栈是什么?Java虚拟
smile radiantly
·
2020-09-11 13:42
JVM
jvm
java
JVM学习
笔记之类装载器-ClassLoader
JVM学习
笔记之类装载器-ClassLoader本文字数:2300,阅读耗时7分钟JVM体系结构概览类装载器ClassLoader:负责加载class文件,class文件在文件开头有特定的文件标识,将class
凯哥Java
·
2020-09-11 08:54
JVM
JVM学习
总结(一)
目录1、什么是JVM?2、JVM能干什么?(转图)3、JVM的解释执行和编译执行区别?4、JVM的内存模型(又称运行时数据区,重点)线程共享区:方法区、堆线程独占区:栈、本地方法栈、程序计数器5、JVM四大对象引用类型(重点)6、内存溢出和内存泄漏的区别7、JVM类加载机制的过程。(重点)加载验证准备解析初始化8、JVM类加载器有哪些?(重点,双亲委派机制)1、什么是JVM?答:JVM全称是Jav
三分热度的人
·
2020-09-11 05:18
JAVA
jvm学习
日志
在jdk1.8中,方法区被替换成了内存中的元空间。程序计数器:主要有两个作用:1.字节码解释器通过改变程序计数器来依次读取指令,实现流程控制,如顺序、循环、选择、异常处理等;2.在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而线程切换回来的时候知道线程运行到了何处。(生命周期与线程相同,不会出现oom)虚拟机栈:生命周期与线程相同,描述的是java方法执行的内存模型,每次的方法调用的数
汪汪汪汪吁
·
2020-09-11 05:40
java
【
JVM学习
笔记】虚拟机工具及性能监测命令
JPSjavaprocessstatusjps-l查看包名+类名jps-m查看类和接收的参数jps-v查看类+虚拟机参数jstat类装载,内存,垃圾收集,jit编译的信息命令格式:jstat[options]VMID[interval][count][options]:操作参数,一般使用-gcutil查看gc情况VMID:本地虚拟机进程ID,即当前运行的java进程号[interval]:连续输出
曾梦想仗剑走天涯XX
·
2020-09-11 01:05
Java
JVM
JVM学习
笔记
-------------------------再也不敢问我jVM了------------------javacPersion.java--->编译java.classclass文件在jvm中运行运行时数据区是什么?把不同的数据放到jvm不同的区域怎么划分?为什么要这样划分heap堆:存放对象每一个线程有一个java虚拟机栈线程执行方法的过程应该可以用一个数据结构表示:栈---》先进后出一个进
Connie1451
·
2020-09-10 23:22
JVM
Cucumber-
JVM学习
总结
Cucumber介绍Cucumber是程序员用于测试其他软件的开源软件工具[1]。它运行以行为驱动开发(BDD)风格编写的自动验收测试。BDD方法的核心是其简单的语言解析器,称为Gherkin[2]。它允许用客户可以理解的逻辑语言来指定预期的软件行为。因此,Cucumber允许执行用面向业务的文本编写的功能文档。Cucumber用Gherkin语法[3],它是一种用自然语言来定义测试用例。它被设计
lhq333
·
2020-09-10 23:40
cucumber
JVM学习
笔记十一 之 编译期优化和运行期优化
一、概述语言要在虚拟机上执行,必须先翻译成机器代码,翻译的方式有两种,一种是编译期静态翻译为机器码,一种是编译器翻译为某种表示,运行期在翻译成机器码来执行。编译器可分为多种类型,1、编译器把java源文件编译成class文件的前端编译器,如javac和eclipse的jdt增量编译器;2、运行期把.class文件翻译成本地机器代码的JIT编译器,如HotSpotVM的C1、C2编译器;3、直接把j
yueyemaitian
·
2020-09-10 21:51
jvm
《深入理解Java虚拟机》----
JVM学习
笔记整理
基本概念JVM(JavaVirtualMachine)是运行Java字节码的虚拟机,其包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。JVM有针对不同系统的特定实现(Windows,Linux,macOS),将Java字节码(.class文件)编译成机器码,因此字节码和JVM共同造就了Java语言“一次编译,到处运行”的特点。运行过程Java源文件->编译器->字节码文件
汐裘
·
2020-09-10 20:56
面试基础知识
JVM
JVM学习
笔记5——虚拟机字节码指令与执行引擎
虚拟机字节码执行引擎字节码指令字节码指令分类运行时栈帧结构局部变量表操作数栈动态连接方法返回地址附加信息基于栈的字节码解释执行引擎基于栈的指令集与基于寄存器的指令集基于栈的解释器执行过程虚拟机字节码执行引擎字节码指令Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。由于Jav
BugWriter
·
2020-09-10 12:13
JVM
深入理解
JVM学习
笔记——第十章 早期(编译期)优化
注:本系列文章均摘录自《深入理解Java虚拟机:JVM高级特性与最佳实践》,作者周志明,我看的是第一版,现在第二版已经出了,第十章早期(编译期)优化1.Java语言的”编译期“是一段”不确定“的操作过程,因为它可能是指一个前端编译器吧*.java文件转变成*.class文件的过程;也可能是指虚拟机后端运行期编译器(JIT编译器,JustInTimeCompiler)把字节码转变成机器码的过程;还可
bsr1983
·
2020-09-10 12:40
JVM学习
(二) JIT即时编译器
JIT即时编译器JVM程序执行流程执行流程图编译器和解释器的协调工作流程什么是JIT热点代码热点检测方式方法调用计数器回边计数器JIT使用解释器与编译器并存的架构编译的时间开销编译的空间开销JIT的两种实现编译过程JIT优化公共子表达式的消除方法内联逃逸分析对象的栈上内存分配总结标量替换同步锁消除JVM程序执行流程了解JIT我们首先要先知道程序执行的流程执行流程图Java编译成字节码、动态编译和解
加班狂魔
·
2020-09-10 12:57
JAVA
JVM学习
记录二:JVM解释器与JIT即时编译器
解释器:响应快,逐行解释字节码,执行机器指令,但执行时间长,执行效率低即时编译器(JIT):反复执行的热点代码即时编译成本地机器指令,存入方法区缓存codeCache,响应慢,执行效率高JVM类型:SUNClassicVM:使用解释器可以外挂即时编译器(JIT)一旦使用JIT则由JIT接管,解释器就不能使用了ExactVM:能够知道内存中某个位置的数据具体是什么类型,具备现代高性能虚拟机的雏形,热
J TwT J
·
2020-09-10 12:01
JVM
JVM学习
笔记(六):Javac编译器、语法糖、泛型
前端编译与优化编译器概述Java中的编译器主要分为三种:前端编译器:把*.java文件转变为*.class文件的过程。代表有JDK的Javac即时编译器:(常称为JIT编译器,JustInTimeCompiler)运行期把字节码转变为本地机器的过程。代表有HotSpot虚拟机的C1,C2编译器提前编译器:(常称为AOT编译器,AheadOfTimeCompiler)直接把程序编译成目标机器指令相关
Miracle42
·
2020-09-10 10:24
JVM
后端
JVM学习
笔记(七):即时编译器、提前编译器、编译器优化技术、方法内联、逃逸分析
后端编译与优化如果把字节码看作是程序的中间表达形式,那么编译器无论何时、在何种状态下把Class文件转换为本地基础设施(硬件指令集、操作系统)相关的二进制机器码,它都可以视为整个编译过程的后端后端编译主要包括即时编译(JustInTime)和提前编译(AheadOfTime),下面分别来介绍一下这两种形式即时编译器目前主流的两款商用Java虚拟机(HotSpot、OpenJ9)里,Java程序最初
Miracle42
·
2020-09-10 09:55
后端
JVM
JVM学习
之:浅谈方法调用以及Override/Overload的原理
提到方法调用,我想大多数人的第一反应就是执行一个方法呗,其实在虚拟机的眼里方法调用只是确定他要调用哪个方法而已,和方法的执行还是有比较大的区别的.任何一个层序的运行都离不开方法的调用以及方法的执行,但是在
JVM
从此醉
·
2020-08-26 12:12
JVM学习
(5) 内存分配与回收策略
Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向上讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地在栈上分配),对象主要分配在新生代地Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配地规则并不是百分百固定地,其细节取决于当
Tu9oh0st
·
2020-08-26 07:55
jvm(一)--java内存区域划分
前言 本笔记作为
jvm学习
系列的第一篇,对jvm的内存区域的划分做一个简单介绍。 以前总想着用一篇大文章大面积的总结jvm的笔记,但是这样却使得后面的笔记难以下笔,并且对之前大篇的笔记也不好维护。
金发只是水一下
·
2020-08-25 17:07
java
JVM学习
:使用visualGC调优Eclipse启动过程
最近在学习JVM,了解了一些关于JVM的内存分配和垃圾回收的知识,其中有有一个实战是优化Eclipse的启动,从类加载时间、JIT编译时间、垃圾收集时间三个方面做了优化,简单、综合性强,可以加深对JVM的理解,所以这里对其进行验证。硬件和操作系统环境:java版本(HotSpot虚拟机):Eclipse相关信息:原始的启动配置:最大永久代空间是256M,初始堆40M,最大512M启动后的GC信息,
hustsselbj
·
2020-08-25 16:29
java高级
jvm学习
笔记
文章目录jvm虚拟机由三部分组成:类装载子系统运行时数据区程序计数器:记录代码执行的位置栈(线程栈)虚拟机栈:给java代码服务本地方法栈:给非java代码服务堆:存放对象的和数组方法区(元空间,也叫永久代):堆中存放代码和静态变量、常量、类信息、即时编译器编译代码等数据的地方**运行时常量池:方法区中存放常量的地方直接内存:不受虚拟机控制的内存,比如io的缓冲区执行引擎备注及参考资料jvm虚拟机
weixin_43060721
·
2020-08-25 08:31
java虚拟机
JVM学习
总结一——内存模型
以下是个人读书后整理的知识点,同时参考并引用了以下博客:
JVM学习
笔记J
weixin_34185560
·
2020-08-25 05:26
JVM学习
笔记之运行时数据区知识点
运行时数据区知识点运行时数据区中包含:java栈,方法区,本地方法区,堆,程序计数器下图所示1.程序计数器:它相当于当前线程所指行的字节码行号指示器如果线程在执行java方法,那么它所记录的是正在执行的虚拟机字节码指令地址当它执行本地(native)方法时,那么它所记录的值是undefined且它是运行时数据区中唯一不会出现OutOfMemoryError的区域2.java栈:它是用来描述java
qq_40973104
·
2020-08-25 04:00
Jvm
JVM学习
(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结...
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下:堆栈是栈JVM栈和本地方法栈划分Java中的堆,栈和c/c++中的堆,栈数据结构层面的堆,栈os层面的堆,栈JVM的堆,栈和os如何对应为啥方法的调用需要栈属于月经问题了,正好碰上有人问我这类比较基础的知识,无奈我自觉回答不是有效果,现在深入浅出的总结下:前一篇文章总结了:JVM的内存主要分为3个分区堆区(H
diaoyanqin5061
·
2020-08-25 03:56
JVM学习
(2) -- 运行时数据区
目录运行时数据区(Run-TimeDataAreas)官网概括图解常规理解方法区(MethodArea)堆(Heap)虚拟机栈(JavaVirtualMachineStacks)程序计数器(PCRegister)本地方法栈(NativeMethodStacks)结合字节码指令理解虚拟机栈和栈帧指向关系栈指向堆方法区指向堆堆指向方法区Java对象内存布局运行时数据区(Run-TimeDataArea
炸弹小黑裙
·
2020-08-25 02:51
JVM
深入
JVM学习
之VisualVM 工具分析GC
深入
JVM学习
之VisualVM工具分析GCVisualVM:多合一故障处理工具VisualVM是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,并且可以预见在未来一段时间内都是官方主力发展的虚拟机故障处理工具
一只很菜的程序员
·
2020-08-24 00:10
Java
虚拟机
JVM学习
笔记(八)类加载机制-类加载器
前言 类加载器虽然只用于实现类的加载动作,但它在java程序中起到的作用却远远不限于类加载阶段。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。两个类被同一虚拟机加载,即时这两个类来源于同一个Class文件,只要加载它们的类加载器不同,那这两个类就必定不想等。 这里所指的“相等“,包括代表类的Class对象的
淡淡的倔强
·
2020-08-23 19:18
JVM
JVM学习
一
JVMhttps://mp.weixin.qq.com/s/z5ZDzlIB1w2VhlVW_tLviwhttps://zhuanlan.zhihu.com/p/34426768一、JVM是什么?JVM全称为JavaVirtualMAchine-Java虚拟机。一次编译,多次运行。JVM是java上的一个虚构出来的计算机,是一个位于Java与操作系统之间的中间态。有自己完善的硬件结构,如处理器、堆
坐的我尾巴骨疼
·
2020-08-23 18:03
Java
面试
jvm
java
jvm学习
Shenandoah垃圾收集器
系统学习请点击
jvm学习
目录建议学习Shenandoah之前先学习G1垃圾收集器前言Shenandoah垃圾收集器是一个很有意思的垃圾收集器,它是第一款非Oracle公司开发的HotSpot垃圾收集器,
南波兔不写巴哥
·
2020-08-23 18:35
JVM
java
jvm
Shenandoah
垃圾收集器
虚拟机
JVM学习
并发可达性分析详解
系统性学习JVM请点击
JVM学习
目录并发可达性分析遇到的问题前面说完了可达性分析。基本对于垃圾回收如何判断对象是否存活便有了一个大概的认识。
南波兔不写巴哥
·
2020-08-23 18:03
JVM
JVM学习
笔记(四):类加载过程、类加载器、双亲委派
虚拟机类加载机制简介Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程就被称为虚拟机的类加载机制。特点:与编译时进行连接的语言不同,Java语言的类型加载、连接和初始化过程都在程序运行期间完成。这样做的会让类加载时稍微增加一些性能开销,但好处是提供了极高的扩展性和灵活性。例如提供了接口与实现的动态绑定(动
Miracle42
·
2020-08-23 16:20
JVM
后端
jvm学习
笔记6--HotSpot的算法细节实现
前面学习了怎么判别要回收的对象,以及垃圾回收的一些方式、标记-清除算法、标记-复制算法、标记-整理算法。现在看看我们每天使用的HotSpot虚拟机中算法的细节实现。根节点枚举前面已经学习到可作为GCRoots的一些变量或者属性,但是实际上在查找过程中要做到高效也是很困难的,要逐个检查以这里为起源的引用肯定要消耗不少时间。而且迄今为止,所有收集器在枚举根节点这步骤的时候都是需要暂停所有的用户线程的,
csa121
·
2020-08-23 16:37
java
jvm
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他