随笔分类 -  JVM转载 +进阶

摘要:这篇文章详细描述了Java虚拟机的内在结构。下面这张图来自《The Java Virtual Machine Specification Java SE 7 Edition》,它展示了一个典型的JVM的主要的内部结构。 接下来的2个部分,将详细介绍这幅图中所有组成结构。 第一部分涵盖了每个线程都会生 阅读全文
posted @ 2017-06-09 02:30 不会就问咯 阅读(340) 评论(0) 推荐(1) 编辑
摘要:参数设置 在Java虚拟机的参数中,有3种表示方法用“ps -ef |grep "java"命令,可以得到当前Java进程的所有启动参数和配置参数: 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现 阅读全文
posted @ 2017-06-09 02:29 不会就问咯 阅读(4010) 评论(0) 推荐(0) 编辑
摘要:Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。 一、Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆。按照官方的说法:“ 阅读全文
posted @ 2017-06-09 02:28 不会就问咯 阅读(194) 评论(0) 推荐(0) 编辑
摘要:这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。您可以选择自己的需要选择不同的操作系统和对应的JDK的版本,但还是推荐您使用Sun公司发布的JDK。 Tomcat配置JVM参数 Tomcat本身不能直 阅读全文
posted @ 2017-06-09 02:28 不会就问咯 阅读(722) 评论(0) 推荐(0) 编辑
摘要:在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高的人。比如,你剑法再厉害,一剑刺过来,别 阅读全文
posted @ 2017-06-09 02:27 不会就问咯 阅读(295) 评论(0) 推荐(0) 编辑
摘要:16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析 阅读全文
posted @ 2017-06-09 02:27 不会就问咯 阅读(252) 评论(0) 推荐(0) 编辑
摘要:俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 堆栈是栈 JVM栈和本地方法栈划分 Java中的堆,栈和c/c++中的堆,栈 数据结构层面的堆,栈 os层面的堆,栈 JVM的堆,栈和os如何对应 为啥方法的调用需要栈 属于月经问题了,正好碰上有人问我这类比 阅读全文
posted @ 2017-06-09 02:26 不会就问咯 阅读(1955) 评论(0) 推荐(0) 编辑
摘要:深入Java虚拟机,ClassLoader是其中重要的一个环节。看书+查资料+动手,整理出如下要点: 另附ClassLoader.loadClass与Class.forName的区别,主要在于是否初始化: from: https://yq.aliyun.com/articles/27110?spm= 阅读全文
posted @ 2017-06-09 02:24 不会就问咯 阅读(367) 评论(0) 推荐(0) 编辑
摘要:原文:http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html 格式和部分内容稍作修改。 在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来 阅读全文
posted @ 2017-06-09 02:24 不会就问咯 阅读(763) 评论(0) 推荐(0) 编辑
摘要:使用BCEL动态改变Class内容 之前对Class文件中的常量池,Method的字节码指令进行了说明。JVM Class详解之一JVM Class详解之二 Method字节码指令现在我们开始实际动手,使用BCEL改变字节码指令,对Class文件进行功能扩充。 先介绍下BCEL全程Apache By 阅读全文
posted @ 2017-06-09 02:18 不会就问咯 阅读(981) 评论(0) 推荐(0) 编辑
摘要:首先看Class中包含哪些信息简单的说所有Java文件中有的信息class文件都有,编译器帮我们将java文件转化成了JVM能看懂的class格式而已 Class 概述 Class文件是一组以8位字节为基础的二进制流,各个数据项目按照严格顺序紧凑排列在Class文件中。所有的16位,32位,64位长 阅读全文
posted @ 2017-06-09 02:17 不会就问咯 阅读(235) 评论(0) 推荐(0) 编辑
摘要:一些不得不说的概念 JVM JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Ja 阅读全文
posted @ 2017-06-09 02:16 不会就问咯 阅读(278) 评论(0) 推荐(0) 编辑
摘要:前言 现在市场上最常见的虚拟化软件有VMWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等,这些软件统称之为VMM(Virtual Machine Monitor),使用不同的虚拟化实现。而这 阅读全文
posted @ 2017-06-09 02:15 不会就问咯 阅读(2202) 评论(0) 推荐(0) 编辑
摘要:首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。 对JVM内存的系统级的调优主要 阅读全文
posted @ 2017-06-09 02:14 不会就问咯 阅读(220) 评论(0) 推荐(0) 编辑
摘要:JVM内存组成结构 JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和 阅读全文
posted @ 2017-06-09 02:13 不会就问咯 阅读(154) 评论(0) 推荐(0) 编辑
摘要:前言 在Java语言开发过程中,out of memory错误是很常见的一种错误。对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生。在Java 8中内存结构有进行了改变,Metaspace替代了PermGen。 内存结构简介 JVM的内存结构如下图所示:(图片来 阅读全文
posted @ 2017-06-09 02:12 不会就问咯 阅读(191) 评论(0) 推荐(0) 编辑
摘要:Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析 阅读全文
posted @ 2017-06-09 02:12 不会就问咯 阅读(167) 评论(0) 推荐(0) 编辑
摘要:本文主要内容: 堆的回顾 串行收集器 并行收集器 CMS收集器 零、堆的回顾: 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块比较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。当回收时,将Eden 阅读全文
posted @ 2017-06-09 02:11 不会就问咯 阅读(203) 评论(0) 推荐(0) 编辑
摘要:HotSpot是较新的Java虚拟机技术,用来代替JIT(Just in Time)技术,可以大大提高Java运行的性能。Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢。而该技术将常用的部分代码编译为本地(原生,native)代码,这样显著提高了性能。用于服务器版和标准版的HotS 阅读全文
posted @ 2017-06-09 02:10 不会就问咯 阅读(390) 评论(0) 推荐(0) 编辑
摘要:本文主要内容: GC的概念 GC算法 引用计数法(无法解决循环引用的问题,不被Java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集 Stop-The-World 一、GC的概念: GC:Garbage Collection 垃圾收集 阅读全文
posted @ 2017-06-09 02:10 不会就问咯 阅读(300) 评论(0) 推荐(0) 编辑