JVM
蓝天的IT生涯
这个作者很懒,什么都没留下…
展开
-
java 虚拟机安全
策略 Java安全体系结构的真正好处在于,它可以对代码授予不同层次的信任度来部分地访问系统。 Microsoft提供了ActiveX控件认证技术,它和Java的认证技术相类似,但是ActiveX控件并不在沙箱中运行。这样,使用了ActiveX,一系列移动代码要么是被完全信任的,要么是完全不被信任的。 版本1.2的安全体系结构的主要目标之一就是使建立(以签名转载 2013-04-07 09:38:06 · 691 阅读 · 0 评论 -
JVM 性能监控与常用工具学习总结
I.JVM性能监控的常用命令行工具:(1) jps(JVM Process Status):虚拟机进程状况监控工具可以列出正在运行的虚拟机进程信息,并显示虚拟机执行主类(Main Class,main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID(LVMID,Local Virual Machine Identifier)。功能比较单一,但是由这条命名查询出来的LVMID原创 2013-07-28 14:31:42 · 1508 阅读 · 1 评论 -
自动内存管理机制与内存溢出异常
二、自动内存管理机制与内存溢出异常更新九月 06, 2012一、Java内存区域与内存溢出异常程序计数器较小的内存空间,记录着当前线程执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能。唯一一个没有规定那个OutOfMemoryError的内存区域Java虚拟机栈线程私有每个方法在执行的时候都会创建一个栈帧用于存转载 2013-07-29 09:15:27 · 757 阅读 · 0 评论 -
Btrace
在VisualVM中使用BTrace· VisualVM介绍VisualVM 提供在 Java虚拟机 (Java Virutal Machine, JVM)上运行的 Java应用程序的详细信息。在 VisualVM的图形用户界面中,可以方便、快捷地查看多个 Java应用程序的相关信息· BTrace介绍BTrace是一个Java的动态跟踪工具,B转载 2014-02-27 10:09:32 · 2168 阅读 · 0 评论 -
引用的几种概念
赞一下!转了:场景学习理解了一下:SoftReference:实现非持久化缓存,允许在内存不足时,回收对象,缓存失效、内存复用。PhantomReference必须要和ReferenceQueue组合使用,当虚引用的对象被回收器触及时,虚引用就会被放入队列,可以用虚引用作为一种通知机制。即编程人员可在引用被回收之前做点什么,感觉这个场景作用就像是Hook的作用。WeaKRefere转载 2014-03-15 21:50:04 · 728 阅读 · 0 评论 -
使用堆外内存
使用堆外内存有时候对内存进行大对象的读写,会引起JVM长时间的停顿,有时候则是希望最大程度地提高JVM的效率,我们需要自己来管理内存(看起来很像是Java像C++祖宗的妥协吧)。据我所知,很多缓存框架都会使用它,比如我以前使用过的EhCache(给它包装了个酷一点的名字,叫BigMemory),以及现在项目中的Memcached。在nio以前,是没有光明正大的做法的,有一个wo转载 2014-04-02 18:29:07 · 1118 阅读 · 0 评论 -
从java线程到内存空间
1、实现线程的三种方式 使用内核线程实现 内核线程(KernelThread, KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。程序一般不会直接去使用内核线程,而是去使用内核线程的一种高级接口——轻量级进程(LightWeight Process,LWP),轻量级进程就转载 2014-04-03 13:41:53 · 1997 阅读 · 2 评论 -
面对GC的java编程
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题。以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象,就交给GC来做吧!甚至有人说,如果在编程过程中频繁考虑内存问题,是一种退化,这些事情应该交给编译器,交给虚拟机来解决。这话其实也没有太大问题,的确,大部分场景下关心内存、GC的问题,显得有点“转载 2014-05-07 13:22:53 · 739 阅读 · 0 评论 -
Java垃圾回收:GC在什么时候对什么做了什么
GC在什么时候对什么做了什么? 要回答这个问题,先了解下GC的发展史、jvm运行时数据区的划分、jvm内存分配策略、jvm垃圾收集算法等知识。 先说下jvm运行时数据的划分,粗暴的分可以分为堆区(Heap)和栈区(Stack),但jvm的分法实际上比这复杂得多,大概分为下面几块: 1、程序计数器(Program Conuter Re转载 2014-05-07 15:05:27 · 1072 阅读 · 0 评论 -
Java虚拟机垃圾收集器分析 并行和并发
Java虚拟机垃圾收集器分析1 、活动对象l 追踪 root 对象算法: 深度追踪 root 对象,将 heap 中所有被引用到的 root 做标志,所有未被标志的对象视为非活动对象,所占用的空间视为非活动内存。2 、常用算法l Copy 算法1 方法:将内存分为两个区域( from space 和 to space )。所有的对象分配内存都分配到转载 2014-09-12 10:18:11 · 3943 阅读 · 0 评论 -
DisableExplicitGC和Direct ByteBuffer
如果在JVM 的配置中添加了DisableExplicitGC这个配置,但是同时应用中有用到了Direct ByteBuffer(例如用到了NIO框架mina),此时会由于内存问题导致OOM,之前有所了解,但是没有仔细看过,最近同事排查了一个这种问题,然后决定扫盲一下,期间重点参照撒迦(不得不佩服他在JVM上的权威)的这篇Topic(http://hllvm.group.iteye.com/gr转载 2014-09-13 23:11:28 · 1660 阅读 · 0 评论 -
Java远程调试 java -Xdebug各参数说明
首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的 调试环境,并支持设置断点,支持线程线级的调试。 JAVA的调试方法如下: 1。首先支持JVM,并设置参数,使之工作在DEBUG模式下,加入参数:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,转载 2014-10-20 13:18:25 · 10080 阅读 · 0 评论 -
深入理解JVM
深入理解JVM日期:2011年07月28日 分类:技术, 编程相关, 网站运营相关带着问题去学习,jvm分析1234567[root@localhost ~]# jstat -gcutil 3461 2000S0 S1 E O转载 2013-07-22 20:36:09 · 1187 阅读 · 0 评论 -
JVM内存管理学习总结(一)
I.JVM进程的生命周期JVM实例的生命周期和java程序的生命周期保持一致,即一个新的程序启动则产生一个新的JVM进程实例,程序结束则JVM进程实例伴随着消失。那么程序启动和程序终止就是JVM实例生命周期的两个边界,两个边界点可以这么理解:一个拥有程序入口(main函数)的class在执行main方法时,相应的JVM就被创建了(即JVM生命周期的起点),当由此main函数启动的所原创 2013-07-19 18:44:26 · 1571 阅读 · 0 评论 -
cron 用法
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sb转载 2013-04-27 11:21:30 · 775 阅读 · 0 评论 -
深入理解Java虚拟机读书笔记之:第6章 Java class文件
Java class文件是对Java程序二进制文件格式的精确定义。每一个Java class文件都对一个Java类或者Java接口作出了全面描述。一个class文件中只能包含一个类或者接口。 尽管class文件与Java语言结构相关,但它并不一定必须与Java语言相关。如下图,可以使用其他语言来编写程序,然后将其编译为class文件,或者把Java程序编译为另一种不同的二进制文件格式转载 2013-05-02 10:57:36 · 709 阅读 · 0 评论 -
JVM垃圾收集算法
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep): 此算法执行分两阶转载 2013-06-08 13:09:17 · 551 阅读 · 0 评论 -
JVM参数
你知道在tomcat设置JVM参数吗,这里和大家分享一下,默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。设置JVM内存的方法,对于单独的.class,可以用下面的方法对Test运行时的JVM内存进行设置。tomcat设置JVM参数一、JVM内存的设置的原理默认的java虚拟机的大小比较小,在对大转载 2013-06-05 09:31:18 · 604 阅读 · 0 评论 -
JAVA虚拟机的生命周期
一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。 Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()转载 2013-06-05 15:13:15 · 618 阅读 · 0 评论 -
一 JVM内存模型
一 JVM内存模型1.1 Java栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。1.2 堆转载 2013-06-06 14:18:15 · 576 阅读 · 0 评论 -
垃圾回收机制
对于JAVA编程和很多类似C、C++语言有一个巨大区别就是内存不需要自己去free或者delete,而是由JVM垃圾回收机制去完成的。对于这个过程很多人一直比较茫然或者觉得很智能,使得在写程序的过程不太考虑它的感受,其实知道一些内在的原理,帮助我们编写更加优秀的代码是非常有必要的。本文从以下几个方面进行阐述:1、finalize()方法2、System.gc()方法及一些实用方法3转载 2013-06-08 13:29:45 · 859 阅读 · 0 评论 -
JVM性能调优
最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过转载 2013-07-06 23:11:34 · 565 阅读 · 0 评论 -
类加载过程学习总结笔记
1. 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。2. 与那些在编译时需要进行连接工作的语言不通,在java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时稍微增加一些性能开销,但是却能为java应用提供高度的灵活性,java中天生可以动态扩原创 2013-06-23 16:15:19 · 1053 阅读 · 0 评论 -
JVM的简单介绍
首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引擎实例则对应了属于用户运行程序的线程;也就是JVM实例是进程级别,而执行引擎是线程级别的。JVM是什么?—JVM的生命周期JVM实例的诞生:当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有publicstaticvoidmain(String[]args)函转载 2013-07-18 19:20:47 · 783 阅读 · 0 评论 -
JVM内存管理学习总结
1. Java程序从源码编译成字节码和从字节码编译成本地机器码的这两个过程,合并起来其实就是等同于一个传统的编译器所执行的编译过程。2. Java语言和虚拟机提供了原生的、完善的多线程支持,使得它天生就适合开发多线程并发的应用程序。3. Java API类库中的JavaSEAPI子集和java虚拟机这两部分统称为JRE(java RunTime Environ原创 2013-07-19 19:05:39 · 800 阅读 · 0 评论 -
Java虚拟机学习 - 体系结构 内存模型
一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。转载 2014-12-11 13:54:51 · 691 阅读 · 0 评论