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
《深入理解Java虚拟机》
JVM系列知识
redcreen/archive/2011/05/04/2036387.htmljvm系列知识汇总:https://mp.weixin.qq.com/s/M2IYpIjo02CvgMptvlUKZw《
深入理解
key_next
·
2018-09-09 20:29
java
一名合格的程序员必读的经典书籍
《
深入理解java虚拟机
》:讲解了java虚拟机工作原理,内存分布,GC等等,这本书也是一定要精读并且深入读的,在面试中java垃圾回收器以及回
Java小柴
·
2018-09-09 09:38
学术分析
《
深入理解java虚拟机
》---内存模型与线程(12)
一、概述随着现在硬件资源的提升,不希望处理器大部分时间都是处于等待其他资源的状态,可以让计算机同时处理几项任务。对于java语言中也是一样,需要做一些并发应用来满足市场的需求,所以连接并发的内幕是一个高级程序员不可缺少的课程。二、硬件的效率与一致性其实硬件由于处理器和内存之间读取的速度差距很大,严重影响了处理器的工作效率,为了解决这个问题,我们又在他们中间增加了好几层的高速缓存,但是这样在处理多个
hy_coming
·
2018-09-08 22:00
JVM
深入理解Java虚拟机
之----volatile关键字
volatile关键字被volatile修饰的变量具备两种特性:1、保证该变量对所有线程的可见性;2、禁止指令重排序优化。1、保证该变量对所有线程的可见性可见性是指,当一个线程修改了这个变量的值,volatile保证了新值能立即同步到主内存,同时其他线程每次使用前都会从主内存读取,从而新值对于其他线程来说是可以立即得知的。但普通变量做不到这点,普通变量的值在线程间传递均需要通过主内存来完成。在Ja
haihui_yang
·
2018-09-08 22:59
深入理解Java
虚拟机
JVM学习笔记(一)
最近在看《
深入理解Java虚拟机
》,第一章说是自己编写个JDK,看的云里雾里就跳掉了,两天马马虎虎才看完了第二章,下面是自己写的笔记。
i-unique
·
2018-09-08 11:55
日志
Java学习
JVM学习笔记5-虚拟机类加载机制
摘自《
深入理解Java虚拟机
》第二版虚拟机类加载机制Java从代码到最终执行,一般需要两个过程:编译运行编译:把Java文件通过javac命令变异成字节码,也就是.class文件。
RunningHong
·
2018-09-07 22:01
java
学习笔记
JVM
《
深入理解java虚拟机
》读书笔记(三)---- 垃圾回收算法及垃圾收集器介绍
一、垃圾回收算法1、标记--清除算法标记--清除(Mark-Sweep)算法,分为标记和清除两个阶段,首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,这是最基础的收集算法,后续很多算法都是基于这种思想进行设计的。标记--清除算法主要的不足有两点:一个是效率的问题,标记和清除的操作效率都比较低;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在
peerless_fu
·
2018-09-06 22:51
学习笔记
【JAVA】类文件结构
JAVA类文件结构声明:本博客只是把读《
深入理解JAVA虚拟机
》中“JAVA类文件结构”章节的过程记录下来,很多文字描述与图都是书中原文的内容。
Awille
·
2018-09-06 11:20
JVM学习笔记4-垃圾回收之垃圾回收算法
摘自《
深入理解Java虚拟机
》第二版1垃圾回收算法1.1标记-清除算法算法分为两个阶段,标记和清除,首先标记出所有需要回收的对象,在标记完成后统一收回所有被标记的对象。
RunningHong
·
2018-09-04 15:04
学习笔记
JVM
Java编译期优化思维导图
本文参考自来自周志明《
深入理解Java虚拟机
(第2版)》,拓展内容建议读者可以阅读下这本书。
JinhaoPlus
·
2018-09-02 00:00
java
编译器
javac
《
深入理解java虚拟机
》---类文件结构(6)
了解类文件结构主要是为下面一章类加载机制做铺垫的,从小我们上计算机课的时候老师就一直跟我们强调,电脑只认识0和1,所以不管是什么样的语言编写最终都是需要编译成0和1的结构,也就是我们所说的二级制文件,而在我们刚开始学习java的时候,就知道java言语是跨平台的,记得当时的口号是一次编写,到处运行,事实也是这样,主要原因是虚拟机供应商们研制了很多运行在不同平台上的虚拟机,这些虚拟机都可以载入和运行
hy_coming
·
2018-09-01 12:10
JVM
复制算法的两块Survivor空间
概述:在《
深入理解Java虚拟机
》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。
kavito
·
2018-08-30 17:40
java
Java虚拟机内存管理(四)—垃圾回收
——《
深入理解Java虚拟机
:JVM高级特性与最佳时实践(第二版)》周志明Java虚拟机作为运行Java程序抽象出来的计算机,具有内存管理的能力,像内存分配、垃圾回收等这些相关的内存管理问题,Java虚拟机都会帮我们解决
Wizey
·
2018-08-30 09:43
JVM学习笔记1-运行时数据区域
本文摘自《
深入理解Java虚拟机
》第二版1运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。如:方法区、虚拟机栈、本地方法栈、堆、程序计数器。
RunningHong
·
2018-08-28 17:05
学习笔记
JVM
【《
深入理解Java虚拟机
》】JVM的秘密—Part2
【《
深入理解Java虚拟机
》Part2】3.5【虚拟机字节码执行引擎】【3.6方法调用】【分派】【3.6基于栈的字节码解释执行引擎】【3.7】类加载及执行子系统的案例与实战【4】高效并发【4.1】Java
He110_Wr0ld
·
2018-08-27 18:38
Java虚拟机
JVM
Java面试
【《
深入理解Java虚拟机
》】JVM的秘密—Part2
【《
深入理解Java虚拟机
》Part2】3.5【虚拟机字节码执行引擎】【3.6方法调用】【分派】【3.6基于栈的字节码解释执行引擎】【3.7】类加载及执行子系统的案例与实战【4】高效并发【4.1】Java
He110_Wr0ld
·
2018-08-27 18:38
Java虚拟机
JVM
Java面试
[Java 执行那些事] —— 类加载机制( 上)
——周志明《
深入理解Java虚拟机
》IntroductiontoClassLoading类加载(ClassLoading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接、初始化后,最终形成可以被虚拟机直接使用的
大圣代
·
2018-08-27 00:04
深入理解JAVA
JVM
读《
深入理解Java虚拟机
》- Java对象创建过程
本文较为浅显的说明一下new一个Java对象的过程是怎么样的,对象头到底存了啥,已经对象的访问定位方式。里面会涉及到其他知识,等总结后再把链接贴上来。Objectobj=newObject();1、虚拟机检测到new关键字时,先检查这个new的参数(也就是类名)在常量池中有没有一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析、初始化过了,如果没有,需要先执行类的加载(类的加载过程
史莱克同学
·
2018-08-26 16:58
《
深入理解Java虚拟机
》第6章 类文件结构
简单来说,Java代码-Java编译器-字节码(.class)-虚拟机执行,大概是这样一个过程。6.3Class类文件的结构class文件是一组以8位字节为基础单位的二进制流。class文件采用C语言结构体的伪结构来存储伪结构只有两种数据类型:无符号数和表。无符号数可以描述数字、索引引用、数量值、或者按UTF-8编码构成字符串值。表是由多个无符号数或其他表作为数据项构成的复合数据类型。每个clas
$forInterest
·
2018-08-25 10:39
JVM
JVM字节码执行引擎思维导图
本文参考自来自周志明《
深入理解Java虚拟机
(第2版)》,拓展内容建议读者可以阅读下这本书。
JinhaoPlus
·
2018-08-25 00:00
jvm
字节码执行引擎
【《
深入理解Java虚拟机
》】JVM的秘密—Part1
0.【Java内存区域】Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。对象访问1.【GC(垃圾回收)】【堆区GC】【方法区GC】【垃圾收集算法】【垃圾收集器】【内存分配与回收策略】2.【JVM性能监控与故障处理工具】3.【JVM加载执行系列】3.1类文件结构3.2【虚拟机类加载机制】3.3【类加载过程】3.4【类加载器】0.【Java内存区域】Java虚拟机
He110_Wr0ld
·
2018-08-24 09:37
Java虚拟机
JVM
Java面试
从jvm角度看懂类初始化、方法重载、重写。
我们我觉得出来使用和卸载阶段外,初始化阶段是最贴近我们平时学的,也是笔试做题过程中最容易遇到的,假如你想了解每一个阶段的话,可以看看
深入理解Java虚拟机
这本书。下面开始讲解初始化过程。
帅地
·
2018-08-23 21:30
java
jvm
Java虚拟机详解----JVM内存结构
二、JVM基本结构:JVM基本结构图:《
深入理解Java虚拟机
(第二版)》中的描述是下面这个样子的:Java中的内存分配:Java程序在运行时,需要在内存中的分配空间
爱吃烤鱼的coder
·
2018-08-23 14:52
从jvm角度看懂类初始化、方法重载、重写。
我们我觉得出来使用和卸载阶段外,初始化阶段是最贴近我们平时学的,也是笔试做题过程中最容易遇到的,假如你想了解每一个阶段的话,可以看看
深入理解Java虚拟机
这本书。下面开始讲解初始化过程。
帅地
·
2018-08-23 00:00
java
jvm
JDK1.8 CLASS文件结构(参考
深入理解JAVA虚拟机
)
本部分分析CLASS文件中各部分意义JAVA代码packagecom.memory.javaclass;publicclassTestClass{privateintm;publicintinc(){returnm+1;}publicstaticvoidmain(String[]args){}}生成class文件用16位编辑器打开后00000000h:CAFEBABE00000034001A0A0
刺青LOVELESS
·
2018-08-22 18:17
JAVA
深入理解Java虚拟机
笔记——Java内存模型与并发编程
当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束后,再将告诉缓存中的数据刷新到主存中。如果一个变量在多个CPU中都存在缓存,那么就存在缓存一致性问题2种解决方法通过在总线加LOCk锁的方式阻塞了其他CPU对其他部件访问,总线锁住期间,CPU无法访问内存,导致效率低下通过缓存一致性协议MESI协
姑娘加油
·
2018-08-22 15:20
深入理解Java虚拟机
深入理解Java虚拟机
-Java内存模型阅读笔记
内存模型简介这里说的内存模型与堆栈内存模型不是同一回事,是定义一种变量在线程工作内存和主内存之间的工作规范。在书中描述一种如下图所示的内存模型。内存操作定义变量在工作内存和主内存之间的交互操作,由图中的8种操作完成,书中定义如下。内存操作执行约束同时还定义了以下规则来约束上面8种操作的执行,如下所示。1、不允许read和load、store和write操作之一单独出现,以上两个操作必须按顺序执行,
不撸游戏改撸代码
·
2018-08-21 17:11
jvm
深入理解java虚拟机
-day5
通过这几天的看书学习才真正发现,坚持看书真的是一件非常非常难的事。所谓"天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能"(哈哈,应情应景),虽然我们为了取得进步没有受过这么多苦难,但是坚持弄懂枯燥无聊的书本知识也是对心性的一种历练,也许今后在回头看我们一路成长的旅程,我们会更加佩服那个坚持做一件事的自己。鼓励完毕,今天我们将学习虚拟机字节码
上天借屁力
·
2018-08-21 15:41
深入理解java虚拟机
深入理解Java虚拟机
【HotSpot虚拟机对象探秘】
对象的创建的过程当虚拟机遇到一条new指令时,开始进行对象的创建:将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用。若没有,说明这个类还没有被定义,会抛出ClassNotFoundException.若有,则继续下一步。检查这个符号引用代表的类是否已被加载、解析、和初始化过如果没有,那必须先执行类加载的过程。在类加载通过后,接下来虚拟机将为新生对象分配内存。根据方法区中该类的信息确定所
张今天
·
2018-08-21 10:57
——J
a
v
a
来,了解一下Java内存模型(JMM)
网上有很多关于Java内存模型的文章,在《
深入理解Java虚拟机
》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。
爱编码的coder
·
2018-08-21 00:00
移动web开发
java-web
html5
java
javascript
深入了解JVM——运行期优化
本文为《
深入理解Java虚拟机
》第十一章内容的学习笔记,部分内容经过二次加工。若对相关知识感兴趣,推荐购书深入阅读。若认为文章涉嫌侵权,请联系作者及时删除。
在咖啡里溺水的鱼
·
2018-08-20 21:39
Java
JVM
JDK1.8 大对象直接进入老年代(参考
深入理解JAVA虚拟机
)
jvm参数-verbose:gc-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDetails-XX:SurvivorRatio=8-XX:PretenureSizeThreshold=3145728代码packagecom.memory.gc;publicclassPretenureSizeThreshold{privatestaticfinalint_1MB=1024*102
ciqingloveless
·
2018-08-20 20:47
JAVA
JDK1.8 GC日志查看(参考
深入理解JAVA虚拟机
)
1、vm运行参数-verbose:gc-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDateStamps-XX:+PrintGCDetails-XX:SurvivorRatio=8-XX:+PrintHeapAtGCpackagecom.memory.gc;publicclassTestAllocation{privatestaticfinalint_1MB=1024*1024
刺青LOVELESS
·
2018-08-20 19:22
JAVA
JVM类加载思维导图
本文参考自来自周志明《
深入理解Java虚拟机
(第2版)》,拓展内容建议读者可以阅读下这本书。
weixin_34148456
·
2018-08-20 06:23
深入了解JVM——编译器优化
本文为《
深入理解Java虚拟机
》第十章内容的学习笔记,部分内容经过二次加工。若对相关知识感兴趣,推荐购书深入阅读。若认为文章涉嫌侵权,请联系作者及时删除。
在咖啡里溺水的鱼
·
2018-08-20 00:00
Java
JVM
JVM类加载思维导图
本文参考自来自周志明《
深入理解Java虚拟机
(第2版)》,拓展内容建议读者可以阅读下这本书。
JinhaoPlus
·
2018-08-20 00:00
jdk
classloader
类加载机制
java
Java 内存区域-运行时数据区域
在《
深入理解Java虚拟机
》中描述C、C++对内存的管理:对于从事C、C++的程序开发人员来说,在内存管理区域,他们即是拥有最高权力的”皇帝”,又是从事
言技
·
2018-08-19 20:08
Java虚拟机
运行时数据区
Java内存
深入理解Java虚拟机
笔记——第二章Java内存区域与内存分配策略
第二章Java内存区域与内存溢出异常2.2运行时数据区域主要有以下几种:程序计数器:当前线程所执行的字节码的行号指示器。线程私有Java虚拟机栈:线程私有,生命周期与线程相同。是描述Java方法执行的内存模型本地方法栈:为虚拟机使用的本地Native方法服务Java堆:是虚拟机管理的最大内存,被所有线程共享,存放对象实例。方法去:各个线程共享,用于存储已被虚拟机加载的类信息,常量,静态变量,及时编
chenxy132
·
2018-08-18 20:02
JVM
JVM垃圾回收——新生代,老年代,永久代,Minor GC,Full GC
参考资料:《
深入理解Java虚拟机
》——周志明https://blog.csdn.net/u010796790/article/details/52213708https://blog.csdn.net
ChenjcarryOn
·
2018-08-18 12:48
JVM学习笔记
本地方法栈与Native方法
刚开始看《
深入理解Java虚拟机
》,在里面看到一句话,不是很理解:本地方法栈与虚拟机栈所发挥的作用时非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的的
为神敬酒者
·
2018-08-18 10:38
深入理解Java虚拟机
一、
深入理解JAVA虚拟机
之内存初探
一、java内存区域划分1、程序计数器程序计数器是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。每个线程有自己独立的程序计数器,所以该内存区域是线程私有的。如果线程正在执行的是Java方法,那么这个计数器的值就是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为空(undefined)。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutO
天之冰
·
2018-08-17 18:09
jvm
深入理解Java虚拟机
【jvm内存模型以及各个分区】
1.JVM内存模型Java虚拟机内存的各个区域包括:程序计数器Java虚拟机栈本地方法栈Java堆方法区2.程序计数器什么是程序计数器呢?程序计数器是一块较小的内存空间,它可以是当前程序所执行的字节码的行号指示器。注意:如果线程正在执行的是java的方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值则为空(Undefined)。程序计数器的作用
张今天
·
2018-08-17 17:09
——J
a
v
a
jvm内存模型《
深入理解java虚拟机
》
最近学习了周志明老师的《
深入理解Java虚拟机
》,收获颇多,留下一些学习笔记,供以后复习用。 JVM定义了若干个程序执行期间使用的数据区域。
Swen_2116
·
2018-08-17 09:15
JVM
深入理解java虚拟机
-day3
工欲善其事,必先利其器。想要深入的了解虚拟机,那我们就必须先学会使用工具对其进行性能监控和故障处理。在充分了解了我们的"利器"之后,那我们就能开始对虚拟机进行性能调优了。首先,我们先来了解一下有哪些"利器"可以为我所用。一、虚拟机性能监控与故障处理工具。1、jps(jdk自带):虚拟机进程状况工具。功能说明:jps可以列出正在进行的虚拟机进程,并显示虚拟金执行主类名称以及这些进程的本地虚拟机的唯一
上天借屁力
·
2018-08-15 17:24
深入理解java虚拟机
深入理解JVM——类的加载过程(5)
本文主要参考:《
深入理解Java虚拟机
》—周志明0.概述虚拟机把描述类的数据从class文件(注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),
Antelope24
·
2018-08-15 15:03
JVM
Tomcat类加载架构
主要参考资料《
深入理解Java虚拟机
》1、Web服务器需要解决的问题一个功能健全的Web
qq_42564846
·
2018-08-15 09:22
完全图解JVM Class文件结构
本文参考自来自周志明《
深入理解Java虚拟机
(第2版)》,拓展内容建议读者可以阅读下这本书。根据这个简单的例子来说明以下的例子作为最简单
JinhaoPlus
·
2018-08-14 00:00
字节码执行引擎
class
jvm
java
《
深入理解Java虚拟机
》学习笔记
本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那就点个小心心,文末赞赏一杯豆奶吧,嘻嘻。让我们共同成长吧……第一部分走进Java第1章走进Java1.1概述Java语言口号是:一次编写,到处运行!Java的优点:结构严谨、面向对象;摆脱平台的束缚,一次编写到处运行;提供了相对安全的内存管理和访问机制;实现了热点代码检测和运行时编译及
我是一禅呐
·
2018-08-13 20:22
jvm之内存结构详解
首先看一下《
深入理解Java虚拟机
(第二版)》给出的JVM内存结构图:1.JVM结构分析程序计数器:当执行一条指令时,首先需要根据程序计数器(PC)中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为
亦心_yan
·
2018-08-13 17:54
java
jvm
深入理解java虚拟机
(二)——判断对象是否可回收
上一篇文章简单介绍了Java内存运行时区域的各个部分。主要可以分为两部分:线程私有区域和数据共享区域。线程私有区域就不需要过多考虑内存回收问题,因为方法结束或线程结束时,内存也就随之回收了。所以内存回收是对共享区域内存的回收。首先介绍对堆内存的回收。如何判断对象“死去”?在堆中存放着Java中几乎所有的对象实例,垃圾收集器在对对象进行回收前,首先要判断对象是否存活,如何判断呢,有两种方式。1.引用
AiProgramming
·
2018-08-13 00:54
JVM
上一页
47
48
49
50
51
52
53
54
下一页
按字母分类:
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
其他