背景:最近开始忙着找工作了,把需要储备的知识再整理总结一遍!关于JVM的总结,是转自下面的连接.结合<深入理解java虚拟机>,看起来有更清晰的认识. 转载自:http://blog.csdn.net/seu_calvin/article/details/51404589 0. 前言 Java虚拟机(Java virtualmachine)实现了Java语言最重要的特征:即平台无关性. 平台无关性原理:编译后的 Java程序(.class文件)由 JVM执行.JVM屏蔽了与具体平台相关的信息,…
0. 前言 Java虚拟机(Java virtualmachine)实现了Java语言最重要的特征:即平台无关性. 平台无关性原理:编译后的 Java程序(.class文件)由 JVM执行.JVM屏蔽了与具体平台相关的信息,使程序可以在多种平台上不加修改地运行.Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行.因此实现Java平台无关性. 本文主要介绍JVM中的架构知识,转载请注明出处:http://blog.csdn.net/seu_calvin/article/detai…
虚拟机 JRE由Java API和JVM组成,JVM通过类加载器(Class Loader)加类Java应用,并通过Java API进行执行. 虚拟机(VM: Virtual Machine)是通过软件模拟物理机器执行程序的执行器.最初Java语言被设计为基于虚拟机器在而非物理机器,重而实现WORA(一次编写,到处运行)的目的,尽管这个目标几乎被世人所遗忘.所以,JVM可以在所有的硬件环境上执行Java字节码而无须调整Java的执行模式. JVM的基本特性: 基于栈(Stack-based)的虚…
身为一个java程序员如果只会使用而不知原理称其为初级java程序员,知晓原理而升中级.融会贯通则为高级 作为有一个有技术追求的人,应当利用业余时间及零碎时间了解原理 近期在看深入理解java虚拟机 第二版(基于jdk1.7)所以想写一些观后心得,整理一些比较重点的内容,也加强自己对重点内容的记忆! 以下默认虚拟机为hotsport虚拟机 一.jvm内存模型 ① 程序计数器: 程序计数器为每个线程私有 作用可以理解为在虚拟机解析字节码时记录当前字节码的行号 占用的内存较小 是唯一一个不会发生内存…
jvm 是Java Virtual Machine(Java虚拟机)的缩写,java 虚拟机作为一种跨平台的软件是作用于操作系统之上的,那么认识并了解它的底层运行逻辑对于java开发人员来说很有必要! 让我们来看看它一次编译,到处运行的牛叉之处! 废话不多说,先看看jvm的架构图(无论何时脑子里要有这样一张图): 总概 从这副架构图可以看出jvm由类装载器.运行时数据区.执行引擎.本地方法接口还有垃圾回收器构成;其中垃圾回收器作用在整个jvm内存中(主要作用在堆和方法区),所以图中没有具体体现,…
1.1.1.1. -Xmn参数 参数-Xmn1m可以用于设置新生代的大小.设置一个较大的新生代会影响老生代的大小,因为这两者的总和是一定的,这个系统参数对于系统性能以及GC行为有很大的影响,新生代一般设置为整个堆空间的1/3到1/4左右最合适. 参数-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例,公式如下: -XX:SurvivorRatio=eden/from =eden/to 解释:from和to之间的两块区间内存是相等的.可以参考 java虚拟机…
作者:请叫我红领巾,转载请注明出处http://www.cnblogs.com/xxzhuang/p/7453746.html,简书地址:http://www.jianshu.com/p/b963b3c0ad53 一.写在前面 首先,本篇文章并没有涉及原理,而是在笔者撸了<深入理解Java虚拟机>好几遍的基础上讲解自己的经验,从一个新手到现在明白JVM是个什么玩意,怎么去理解和明白,讲解这样一个经验而已.这篇文章并对JVM并没有挖掘得很深,在下目前暂时也没有这个能力,只是以通熟易懂的方式,让读…
Java内存区域 对比与C和C++,Java程序员不需要时时刻刻在意对象的创建和删除过程造成的内存溢出.内存泄露等问题,Java虚拟机很好地帮助我们解决了内存管理的问题,但深入理解Java内存区域,有助于帮我们理解Java虚拟机到底是如何解决内存问题,如果出现了内存泄露或内存溢出等方面的问题,我们也可以找到问题的解决方案. Java内存区域划分 Java虚拟机在执行Java程序的过程中,会把它管理的内存划分成若干个数据区域.有的区域随着虚拟机进程启动而存在,有的区域则是依赖用户线程的启动和结束而…
Java虚拟机规范官方文档    …
异常处理 使用Java异常处理机制: 把可能会发生错误的代码放进try语句块中. 当程序检测到出现了一个错误时会抛出一个异常对象. 异常处理代码会捕获并处理这个错误. catch语句块中的代码用于处理错误. 当异常发生时,程序控制流程由try语句块跳转到catch语句块. 不管是否有异常发生,finally语句块中的语句始终保证被执行. 如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序. 异常分类: Throwable类有两个直接子类: Exception:出现的问题是可以被捕获的:…