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虚拟机》
Java进阶必读书单及博客
java基础Java核心技术卷I:开发基础(原书第12版)Java核心技术卷II:高级特性(原书第12版)JVM《
深入理解Java虚拟机
(第3版)》并发《Java并发编程实战》《Java并发编程的艺术》
TheFeasterfromAfar
·
2023-07-18 02:18
java
mysql
数据库
java 内存模型 volatile 语义
本文参考《
深入理解JAVA虚拟机
》(周志明)**第二版**,p362,对文中内容提炼加以总结而成。-java内存模型的产生,是为了解决各个硬件和操作系统对内存访问的差异。
·
2023-06-24 08:39
七、
深入理解java虚拟机
-类加载机制
一、概述类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。类型的加载、连接、初始化过程都是在程序运行期间完成的。二、类加载的时机类的生命周期加载、验证、准备、初始化、卸载这5个顺序是确定的。加载:java虚拟机规范并没有强制约束。初始化:主动引用触发类进行初始化。1>遇到new、getstatic、putst
·
2023-06-24 07:20
深入理解java虚拟机
title:
深入理解java虚拟机
date:2020-01-2315:48:23tags:[java虚拟机]typora-copy-images-to:.
美好的世界V
·
2023-06-22 09:15
深入理解Java虚拟机
jvm-内存溢出OOM-创建线程过多OutOfMemoryError: unable to create new native thread
创建线程过多示例虚拟机参数结果原因分析示例/***创建线程导致内存溢出异常*VMArgs:-Xss2M*java.lang.OutOfMemoryError:unabletocreatenewnativethread*/publicclassDemo4{privatevoiddontStop(){while(true){}}publicvoidstackLeakByThread(){while(t
小蜗牛的路
·
2023-06-21 00:49
jvm
java
开发语言
深入理解Java虚拟机
jvm-栈溢出-栈帧过多java.lang.StackOverflowError
栈溢出示例虚拟机参数结果原因分析示例/***栈溢出*栈帧过多,栈内存过小*每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧[1](StackFrame)用于存储局部变量表、操作数栈、动态连接、方法出口等信息*java.lang.StackOverflowError*输出:stacklength:2110*/publicclassDemo2{privateintstackLength=1;p
小蜗牛的路
·
2023-06-21 00:19
jvm
java
开发语言
深入理解Java虚拟机
jvm-栈溢出-对象引用过多java.lang.StackOverflowError
对象引用过多示例结果原因分析示例/***栈溢出*栈内存过小,对象引用过多*java.lang.StackOverflowError*输出:stacklength:344*/publicclassDemo3{privatestaticintstackLength=0;publicstaticvoidtest(){longunused1,unused2,unused3,unused4,unused5,
小蜗牛的路
·
2023-06-21 00:19
jvm
java
开发语言
深入理解Java虚拟机
jvm-对象的访问定位
对象的访问定位句柄直接指针优劣句柄直接指针创建对象自然是为了后续使用该对象,我们的Java程序会通过栈上的reference数据来操作堆上的具体对象。由于reference类型在《Java虚拟机规范》里面只规定了它是一个指向对象的引用,并没有定义这个引用应该通过什么方式去定位、访问到堆中对象的具体位置,所以对象访问方式也是由虚拟机实现而定的,主流的访问方式主要有使用句柄和直接指针两种。句柄如果使用
小蜗牛的路
·
2023-06-21 00:18
jvm
java
开发语言
JVM虚拟机栈的栈帧结构中动态链接的理解
《
深入理解Java虚拟机
》书中原文写到:每个栈帧都包含一个指向运行时常量池中该栈帧所属方法的引用,持有这个引用是为了支持方法调用过程中的动态链接(DynamicLinking)。
程序员aDing
·
2023-06-17 11:07
JVM
jvm
java
开发语言
新奥新智面试(部分)
标准答案(from《
深入理解Java虚拟机
》第3版):如果执行的是实例方法(没有被static修饰的方法),那局部变量表中第0位索引的变量槽默认是用于传递方法所属对象实例的引用,在方法中可以通过关键字“
qq_23204557
·
2023-06-17 07:32
jvm
面试
linux
Mac
深入理解Java虚拟机
jvm-运行时数据区域(基于OpenJDK12)
运行时数据区域运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包
小蜗牛的路
·
2023-06-16 23:17
jvm
java
开发语言
深入理解Java虚拟机
jvm-对象的创建
Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号
小蜗牛的路
·
2023-06-16 23:17
jvm
java
开发语言
深入理解Java虚拟机
jvm-对象的内存布局
对象的内存布局对象头(Header)实例数据(InstanceData)对齐填充(Padding)在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(InstanceData)和对齐填充(Padding)。对象头(Header)HotSpot虚拟机对象的对象头部分包括两类信息。第一类是用于存储对象自身的运行时数据,如哈希码(HashCode)、G
小蜗牛的路
·
2023-06-16 23:47
jvm
java
开发语言
JVM 经典垃圾收集器 —— CMS 收集器和 G1 收集器
本文部分摘自《
深入理解Java虚拟机
第三版》CMS收集器1.概述CMS(ConcurrentMarkSweep)收集器是一种以获取最短回收停顿时间为目标的收集器。
低吟不作语
·
2023-06-16 19:44
Java
虚拟机
java
jvm
java虚拟机
Java 内存溢出(一)原因、复现、排查
这篇文章整理自《
深入理解java虚拟机
》。一、内存溢出原因内存溢出就是内存不够,引起内存溢出的原因有很多种,常见的有以下几种:内存中加载的数据量过
ACGkaka_
·
2023-06-16 02:48
Java
java
jvm
开发语言
JVM运行时数据区域
前言:周志明老师的《
深入理解Java虚拟机
》真的是一本特别好的书,看了有一小半,我决定从头开始做读书笔记,看完每一章都会按自己的总结和理解做下笔记,直到这本书读完。
ChaosAlaska
·
2023-06-14 00:37
你还在看《
深入理解Java虚拟机
》的运行时数据模型吗?
学习JVM必看的书籍无疑是《
深入理解Java虚拟机
》这本书了,在书中,关于运行时数据区域模型是这样描述的:在这里我们只针对HotSpotVM来说,它是OracleJDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的
Java高级架构狮
·
2023-06-10 22:12
【Java】
深入理解Java虚拟机
| 垃圾收集器GC
《
深入理解Java虚拟机
》的阅读笔记——第三章垃圾收集器与内存分配策略。参考了JavaGuide网站的相关内容:https://javaguide.cn/Q:哪些内存需要回收?什么时候回收?如何回收?
猴猴小扣
·
2023-06-09 17:36
Java
java
jvm
算法
面试专题:JAVA虚拟机(1)
推荐书籍《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第二版》、《实战Java虚拟机》。用一张图展示关于jvm涉及的模块及他们的关联关系。
桑丘紫言
·
2023-06-09 04:44
java面试
java
jvm
开发语言
深入理解java虚拟机
-4高效并发
文章目录Java内存模型与线程概述硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对于volatile型变量的特殊规则针对long和double型变量的特殊规则原子性、可见性与有序性1.原子性(Atomicity)2.可见性(Visibility)3.有序性(Ordering)先行发生原则Java与线程线程的实现1.内核线程实现2.用户线程实现3.混合实现4.Java线程的实现Ja
水岸齐天
·
2023-06-09 00:41
java
数据库
开发语言
一、初识JVM垃圾收集器
作品标明出处:本文是对《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第3版)》阅读后的整理,有兴趣的同学可购买正版进行学习!
Coder4Java
·
2023-06-08 13:11
JVM
java
开发语言
后端
Java字节码文件结构
《
深入理解Java虚拟机
》读书笔记,java字节码文件的这块定义的数据结构比较多,书讲解的很详细。
xinwa
·
2023-06-07 19:38
「深入理解 Java 虚拟机」阅读完结
深入理解Java虚拟机
读书笔记1开篇以内存管理相关的知识引出后面着重说明的垃圾回收功能,这块概念的
jkwen
·
2023-06-07 16:27
学习java的相关推荐书籍!
学习java虚拟机必读《
深入理解Java虚拟机
:JVM高级
小菜一碟i
·
2023-06-07 06:24
Happens-Before原则深入解读
关于Java内存模型中所规定的可见性定义本文不再叙述,感兴趣的读者可参考的书籍有《
深入理解Java虚拟机
》和《Java并发编程的艺术》。1Happens-Before(先行发生)原则的定义
转转技术团队
·
2023-06-07 03:11
java
jvm
面试
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-7
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-7类文件结构概述无关性的基石虚拟机类加载机制概述类加载的时机类文件结构代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步概述我们写的程序需要被编译器翻译成由
weixin_42583701
·
2023-06-07 02:47
jvm
java
开发语言
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-12
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-12Java内存模型与线程Java内存模型对于volatile型变量的特殊规则Java内存模型与线程Java内存模型对于volatile型变量的特殊规则关键字
weixin_42583701
·
2023-06-07 02:17
jvm
java
开发语言
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-6
深入理解Java虚拟机
:JVM高级特性与最佳实践-总结-6内存分配与回收策略动态对象年龄判定空间分配担保垃圾收集器与内存分配策略小结内存分配与回收策略动态对象年龄判定为了能更好地适应不同程序的内存状况,
weixin_42583701
·
2023-06-07 02:16
jvm
java
开发语言
JVM基础知识整理!
最近初读《
深入理解java虚拟机
》对很多点豁然开朗,建议大家如果时间充裕可以找来看一看,比博客什么的更加深入。
uestcxbc
·
2023-06-01 17:42
JVM(1)之JVM的组成详解(字符串常量池+双亲委派机制+JIT即时编译......)
以下总结自:《
深入理解java虚拟机
》+宋红康老师视频字节码文件介绍:深入理解JVM之Java字节码(.class)文件详解_Windy_729的博客-CSDN博客_字节码文件JVM的组成?
hanna22
·
2023-04-19 23:50
jvm
java
JVM系列——JAVA内存区域与内存溢出异常
最近更新的两篇String分析的文章,其实都是学习JAVA虚拟机时候遇到的一些问题总结,刚把《
深入理解JAVA虚拟机
》第二章看完,这篇文章将会介绍一下JAVA内存区域中常见的一些问题。
阿斯巴甜不太甜
·
2023-04-19 10:17
《
深入理解Java虚拟机
》(三)--Java内存模型与线程(3)
Java与线程并发并不一定要依赖多线程(比如PHP中很常见的多进程并发),但是Java里面谈论到并发,大多与线程脱不开关系。1/1线程的实现主流操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了一个线程,Thread类与大部分API有明显的差异,它的所有关键方法都是声明
蓝色_fea0
·
2023-04-19 03:46
阿里P8写出的2020最新版《
深入理解Java虚拟机
3》轻松学会JVM底层
前言Java是目前用户最多、使用范围最广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三E方Java框架(如Spring、MyBatis等)构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关Java虚拟机的资料却显得异常贫乏。随着Java技术的不断发展
码农成神之路
·
2023-04-19 02:16
编程语言
大数据
人工智能
java
jvm
JVM——垃圾回收
《
深入理解Java虚拟机
》学习笔记垃圾回收,即回收不需要再使用的对象。c中的垃圾回收主要是由程序员自己调用api进行回收,java中则是由虚拟机代劳。什么样的对象可以被判定为垃圾?什么时候回收?
双核孤城
·
2023-04-18 18:54
# 深入理解 Java 虚拟机 (一)
深入理解Java虚拟机
(一)文章目录
深入理解Java虚拟机
(一)Java内存区域与内存溢出异常运行时数据区域程序计数器Java虚拟机栈本地方法栈堆堆内存划分垃圾回收简介垃圾回收过程方法区运行时常量池直接内存
爱码代码的喵
·
2023-04-18 14:17
读书笔记
java
jvm
开发语言
8 虚拟机字节码执行引擎
本篇及相关的几篇文章是《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)》(周志明,机械工业出版社)这本书的读书笔记,文章中多使用思维导图列出一些章节中的知识点。
zhangweiheb
·
2023-04-15 18:26
深入 Java 虚拟机(一)Java虚拟机概述
想
深入理解Java虚拟机
的同学建议先学习下计算机组成原理会事半功倍哟。Java虚拟机是什么?
闲相思
·
2023-04-15 14:33
java虚拟机 简单理解---学习《
深入理解java虚拟机
》
一、自动内存管理内存的划分与内存溢出异常运行时数据区域:java虚拟机栈与方法区区别虚拟机栈存放的是局部变量、方法出口、操作数栈、动态链接等信息是一个方法内部独有的方法区存放的是常量、静态变量、类型信息这些可以供线程共享的数据程序计数器:每条线程都有一个独立的程序计数器,各个线程之间互不影响独立存储。这类内存区域线程私有。目的是为了线程切换后能够恢复到正确的执行位置。java虚拟机栈:也是线程私有
隔江远岸
·
2023-04-15 11:10
java学习
java
jvm
面试
《
深入理解Java虚拟机
》读书笔记
本文内容总结于《
深入理解Java虚拟机
》,分为以下几个部分:一、JVM的组成二、垃圾回收策略三、类加载那,我们就赶紧开始吧一、JVM的组成:JVM.png程序计数器:一块较小的内存区域,当前线程锁执行的字节码的行号指示器
软萌白甜Hedy
·
2023-04-15 07:44
认识JVM
“种一棵树最好的时间是十年前,其次是现在”目录JVM内存区域划分栈程序计数器堆元数据区JVM类加载机制加载验证准备解析初始化双亲委派模型JVM垃圾回收机制GC实际工作过程找到垃圾清理垃圾推荐一本书:《
深入理解
银河罐头
·
2023-04-15 04:28
JavaEE初阶
jvm
java
开发语言
对架构演变的思考
《
深入理解Java虚拟机
》的作者周志明在新书《凤凰架构》中讲到了这样一个观点很有意思,就是把架构演变的过程比喻为从生到死再到重生的变化:软件架构风格从大型机(Mainframe),到原始分布式(Distributed
JobsTribe
·
2023-04-15 03:04
书中自有黄金屋
架构
凤凰架构
阅读
架构演变
深入理解Java虚拟机
-第四章 虚拟机性能监控与故障处理工具
第四章虚拟机性能监控与故障处理工具4.1概述经常使用适当的虚拟机监控和分析工具可以加快我们分析数据、定位解决问题的速度。这里所说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(headdump/hprof文件)等4.2JDK的命令行工具Sun公司(现在应该是Oracle了)其实为Java开发者提供了许多的免费便利工具,虽然他们在软件的使
狂野程序员
·
2023-04-14 09:11
java
jvm
jdk
jmap
jstat
白话说Java虚拟机原理系列【第八章】:线程的实现详解
文章目录线程的实现使用内核线程实现使用用户线程实现使用用户线程加内核线程混合实现Java线程的实现前导说明:本文基于《
深入理解Java虚拟机
》第二版和个人理解完成,以大白话的形式期望能用大家都看懂的描述讲清楚虚拟机内幕
上树的蜗牛儿
·
2023-04-14 06:09
Java虚拟机原理
java
jvm
linux
线程
2 Java内存区域与内存溢出异常
本篇及相关的几篇文章是《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)》(周志明,机械工业出版社)这本书的读书笔记,文章中多使用思维导图列出一些章节中的知识点。
zhangweiheb
·
2023-04-14 04:20
《
深入理解Java虚拟机
》-----第5章 jvm调优案例分析与实战
案例分析高性能硬件上的程序部署策略例如,一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU、16GB物理内存,操作系统为64位CentOS5.4,Resin作为Web服务器。整个服务器暂时没有部署别的应用,所有硬件资源都可以提供给这访问量并不算太大的网站使用。管理员为了尽量利用硬件资源选用了64位的JDK1.5,并通过-Xmx和-Xms参数将Java堆固定在12GB。
weixin_33670713
·
2023-04-13 21:55
开发工具
java
操作系统
JVM 基础
《
深入理解Java虚拟机
》读书笔记1:Java技术体系、Java内存区域和内存溢出异常
01_小小鱼_01
·
2023-04-13 09:13
深入理解java虚拟机
(一)--自动内存管理机制
一、java虚拟机运行时数据取1、程序计数器(ProgramCounterRegister)程序计数器是一块较小的内存,他可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于java虚拟机的多线程是通过线程轮流切换并分配处理
做一只快乐的码农1990
·
2023-04-12 05:57
jvm内存模型-深入理解jvm
最近学习了周志明老师的《
深入理解Java虚拟机
》,收获颇多,留下一些学习笔记,供以后复习用。 JVM定义了若干个程序执行期间使用的数据区域。
Swen_9826
·
2023-04-11 04:58
【 大厂面试】JVM架构体系及加载机制
理解JVM的体系架构和类加载机制是大厂必考,也是java开发必会,详细学习推荐周志明老师的《
深入理解Java虚拟机
》一书。(需要电子版的朋友可以关注我的微信公众号:一条IT,回复“JVM”获取
一条coding
·
2023-04-10 11:24
技术专家修炼
JVM
堆栈
方法区
类加载器
垃圾回收
周志明虚拟机最新版,大厂面试必备宝典
《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第3版)》印刷40余次,销量超过300000+册,根据JDK13全面升级,新增内容近50%,原创计算机图书丰碑,从Java技术体系、自动内存管理、虚拟机执行子系统
hzbooks
·
2023-04-10 11:51
编程语言
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
其他