![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
综合
文章平均质量分 84
LittleCoding
这个作者很懒,什么都没留下…
展开
-
mvn jetty:run debug in eclipse
在环境变量里面MAVEN_OPTS的值设置-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n Then in Eclipse 3 click Run >Debug Configurations >create New Remote Java Appl转载 2016-12-06 18:36:58 · 444 阅读 · 0 评论 -
深入理解Java虚拟机:虚拟机字节码执行引擎
概述 在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能有解释执行和编译执行两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎。但从外观上,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元原创 2017-03-05 20:47:45 · 759 阅读 · 0 评论 -
深入理解Java虚拟机:类加载器
类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每一个这样的实例用来表示一个 Java 类。实际的情况可能更加复杂,比如原创 2017-02-19 20:13:46 · 620 阅读 · 0 评论 -
深入理解Java虚拟机:虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载过程 从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(原创 2017-02-19 19:31:47 · 755 阅读 · 0 评论 -
深入理解Java虚拟机:HotSpot虚拟机对象揭秘
什么是HotSpot? 提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Stro原创 2016-12-26 22:29:16 · 1145 阅读 · 0 评论 -
深入理解Java虚拟机:垃圾收集
概述 GC即垃圾回收,是指jvm用于释放那些不再使用的对象所占用的内存。 垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。两种常用的方法是引用计数和对象引用遍历。JVM的GC触发原理 JVM的GC主要是对堆内存的回收,一般把新生代的GC称为minor GC ,把老年代的GC成为 full GC,所谓full gc会先出发一次minor原创 2017-01-08 20:51:24 · 432 阅读 · 0 评论 -
深入理解Java虚拟机:实战OutOfMemoryError
堆溢出 堆用于存储对象实例,只要不断地创建对象,并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。 下面代码中,堆的大小限制为20M,不可扩展(将堆的最小值-Xms参数与最大值-Xmx最大值参数设置为一样,避免自动扩展)通过参数-XX:+HeapDumpOnOutOfMemoryError,可以让原创 2017-01-02 20:24:43 · 393 阅读 · 0 评论 -
深入理解Java虚拟机:运行时数据区域
运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则以来用户线程的启动和结束而建立和销毁。一、程序计数器(寄存器) 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码行号指示原创 2016-12-19 23:34:59 · 1089 阅读 · 0 评论 -
深入理解Java虚拟机:虚拟机是什么?
Java虚拟机是什么 Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 Java虚拟机的主要任务是装载class文件并执行原创 2016-12-27 19:36:41 · 746 阅读 · 0 评论 -
深入理解Java虚拟机:Java发展史
Java发展史 由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的詹姆斯·高斯林(James Gosling)等人于1990年代初开发,它最初被命名为Oak。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 在2006年11月13日原创 2016-12-19 21:29:15 · 1292 阅读 · 0 评论 -
深入理解Java虚拟机:Class文件检验器
什么是Class文件检验器? Class文件检验器保证装载的class文件内容有正确的内部结构,并且这些class文件相互间协调一致。如果class文件检验器在class文件中发现了问题,它将抛出异常。好的Java编译器不应该产生畸形的class文件,但是Java虚拟机并不知道某个特定的class文件是如何被创建的。因为class文件实质上是一个字节序列,所以虚拟机无法分辨特定的class文件原创 2016-12-27 19:53:37 · 789 阅读 · 0 评论 -
博客收录
● Java主线程等待所有子线程执行完毕再执行解决办法集http://blog.csdn.net/star890124/article/details/48243221● Java并发:获取线程执行结果(Callable、Future、FutureTask)http://www.cnblogs.com/studyLog-share/p/5287559.html原创 2017-08-14 13:53:01 · 374 阅读 · 0 评论