
JVM
文章平均质量分 88
ywl470812087
个人简介:深耕物联网行业,ERP,优快云博客专家。 任职华为网联网智慧照明、空调资深工程师,并且上线投产使用,研发企业亿量级吞吐中间件。 擅长 Java语言、C语言等。
展开
-
浅谈HotSpot逃逸分析
JIT即时编译(Just-in-time Compilation,JIT)是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。在HotSpot实现中有多种选择:C1、C2和C1+C2,分别对应client、server和分层编译。1、C1编译速度快,优化方式比较保守;2、C2编译速度慢,优化方式比较激进;3、C1+C2在开始阶段采用C1编译,当代码运行到一定热度之后...转载 2020-03-22 22:19:43 · 94006 阅读 · 0 评论 -
深入理解java虚拟机 (一) 第二版
前言:Java是目前用户最多、使用范围最广的软件开发技术之一。Java 的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts 等)构成。在国内,有关Java API Java语言语法及第三方框”架的技术资料和书籍非常丰富, 相比之下,有关Java虚拟机的资料却显得异常贫乏。.这种状况在很...原创 2020-03-22 10:45:20 · 114507 阅读 · 0 评论 -
深入理解java虚拟机 (二) 第二版
如何阅读本书本书-共分为五个部分:走近Java、自动内存管理机制、虛拟机执行子系统、程序编译与代码优化、高效并发。各部分基本上是互相独立的,没有必然的前后依赖关系,读者可以从任何- -个感兴趣的专题开始阅读,但是每个部分中的各个章节间有先后顺序。本书并没有假设读者在Java领域具备很专业的技术水平,因此在保证逻辑准确的前提下,尽量用通俗的语言和案例讲述虚拟机中与开发的关系最为密切的内容。当然,...原创 2020-03-22 10:59:47 · 114951 阅读 · 0 评论 -
深入理解java虚拟机 (三) 第二版
参考资料本书名为“深人理解Java虚拟机”,但要想深人理解虚拟机,仅凭- -本书肯定是远远不够的,读者可以通过以下信息找到更多关于Java虚拟机方面的资料。我在写作此书的时候,也从下面这些参考资料中获得了很大的帮助。.(1)书籍口《The Java Virtual Machine Specification, Java SE 7 Edition》日要学习虚拟机,无论如何都必须掌握“Java...原创 2020-03-22 11:14:24 · 106835 阅读 · 0 评论 -
《深入理解java虚拟机》第1章 走近Java
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是-一个 不断追求完美的过程。1.1 概述Java不仅仅是一- ]编程语言,还是一一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌人式系统、移动终端、企业服务器、大型机等各种场合,如图1-1所示。时至今日,Java 技术体系已经吸引了900多万软件开发者,这...原创 2020-03-22 11:46:11 · 112842 阅读 · 0 评论 -
《深入理解java虚拟机》第1章 走近Java
1.4 Java虚拟机发展史上一节我们从整个Java技术的角度观察了Java 技术的发展,许多Java程序员都会潜意识地把它与Sun公司的HotSpot虚拟机等同看待,也许还有一些程序员会注意到BEA.JRockit和IBM J9,但对JVM的认识不仅仅只有这些。从1996年初Sun公司发布的JDK1.0中所包含的SunClassicVM到今天,曾经涌现、湮灭过许多或经典或优秀或有特色的虚拟机...原创 2020-03-22 11:48:53 · 111882 阅读 · 0 评论 -
《深入理解java虚拟机》第1章 走近Java
1.5 展望Java技术的未来在2005年,Java 语言诞生10周年的SunOne技术大会上,Java语言之父James Gosling做了一场题为“Java技术下一个十年”的演讲。笔者不具备James Gosling 博士那样高屋建瓴的视角,这里仅从Java平台中几个新生的但已经开始展现出蓬勃之势的技术发展点来看- -下后续1 ~ 2个JDK版本内的- -些很有希望的技术重点。1....原创 2020-03-22 21:10:15 · 131188 阅读 · 0 评论 -
《深入理解java虚拟机》第1章 走近Java
1.6实战:自己编译JDK想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译- -套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛会高一点,但肯定会比阅读各种书籍、文章更加贴近本质。另外,JDK中的很多底层方法都是本地化(Native) 的,需要跟踪这些方法的运作或对JDK进行Hack的时候,都需要自己编译套JDK。现在网络上有不少开源的JDK实现可以供我们选...原创 2020-04-09 21:44:44 · 112150 阅读 · 0 评论 -
《深入理解java虚拟机》第2章 Java内存区域与内存溢出异常
Java与C++之间有- -堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。2.1 概述对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民"一既拥有每一 个对象的“所有权”,又担负着每-一个对象生命开始到终结的维护责任。对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要...原创 2020-04-11 12:14:03 · 96402 阅读 · 0 评论 -
深入理解 Java 内存模型(一)——基础
基础并发编程的模型分类在并发编程中我们需要处理两个问题:线程与线程之间如何通信以及线程与线程之间如何同步问题(这里的线程指指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式的编程中,线程之间的通信机制有两种共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中公共状态来隐式进行通信。在消息传递的并发的模型里,线程之间没...原创 2019-10-19 09:07:00 · 104229 阅读 · 0 评论 -
Java堆介绍
对于Java应用程序来说,Java堆(Java Heap)是虚拟机所管理的内存中最大的一块。Java堆是被所 有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,Java 世界里“几乎”所有的对象实例都在这里分配内存。在《Java虚拟机规范》中对Java堆的描述是:“所有 的对象实例以及数组都应当在堆上分配[1]”,而这里笔者写的“几乎”是指从实现角度来看,随着Ja...原创 2020-04-19 21:43:26 · 96789 阅读 · 2 评论 -
jps命令使用
jps(Java Virtual Machine Process Status Tool)是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps 也是一样,它的作用是显示当前系统的java进程情况及...转载 2019-05-12 14:32:39 · 123815 阅读 · 0 评论 -
Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复...原创 2017-11-21 14:21:49 · 141800 阅读 · 0 评论 -
深入理解Java虚拟机——类加载机制
一 概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、 转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、 连接和初始化过程都是在程序运行期间完成的。二 类加载的时机2.1 类的生命周期图片来源于《...原创 2019-03-21 09:54:37 · 112221 阅读 · 0 评论 -
十年架构师详解JVM运行原理
做Java开发的几乎都知JVM这个名词,但是由于JVM对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的java开发来说,JVM是Java的基石!1.JVM简析作为一名Java使用者,掌握JVM的体系...转载 2018-09-14 22:37:53 · 120021 阅读 · 0 评论