jvm
文章平均质量分 88
pantherCode
弱者看中道德和情感,强者重视利益和力量,我喜欢这个美丽又肮脏的世界!
展开
-
jvm优化检测多线程竞争
1。启动在命令行输入jvisualvm。如果jdk安装正确的话(6.x以上版本),就会看到如下的一个窗口:看起来相当简洁,不像是很强大的样子。2。运行一个Java程序IncTestN,jvisualvm会自动找到它3.右键点击它,”打开”可以看到它有很多标签页,可以让我们监测程序的各种数据。默认没有这么多,我其实安装了一些转载 2015-08-09 22:46:59 · 711 阅读 · 0 评论 -
数组在jvm中的存储
Java数组在内存中是如何存放的阅读目录一维数组二维数组数组对象及其引用存放在内存中的哪里?Java中有两种类型的数组:基本数据类型数组;对象数组;当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的,因为数组也是一个对象;一维数组int[] arr = new int[3];在以上代转载 2017-03-17 10:14:14 · 9019 阅读 · 0 评论 -
jvm类加载器
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始化:为类的静态变量赋予正确的初始转载 2016-07-25 10:34:25 · 349 阅读 · 1 评论 -
JNI字段描述符
“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。如果以一转载 2016-11-23 14:11:31 · 316 阅读 · 0 评论 -
深入理解jvm--自动内存管理机制
程序计数器1.在IDE上编译的Java代码运行时都会被转译成字节码。程序计数器的就是给编译好的字节码添加行号,这样这些字节码就以程序计数器的编号来作为调度时候的标识了。2.在程序运行时,诸如循环,跳转,异常处理这些功能都必须依赖于字节码来完。我的理解:字节码是二进制文件,所以识别起来很难,代表一个功能的字节码数量巨大。如果在编译的时候就将其在程序计数器上进行编号,则后期调用的时候就可以原创 2016-10-23 19:33:48 · 415 阅读 · 0 评论 -
jvm堆栈方法区数据存放和操作流程
栈: 1 基础数据类型 byte short int long float double char boolean 2 方法的形式参数,方法调用完后从栈空间回收 3 引用对象的地址,引用完后,栈空间地址立即被回收,堆空间等待GC a) 栈内的数据线程之间独立 b) 具体细分为: b.1) 基本类型变量区 b.2) 执行环境上下文 b.3) 操作指令区转载 2016-04-26 12:50:39 · 7198 阅读 · 3 评论 -
OOM 之 mina java.lang.OutOfMemoryError
前段时间在测试过程中发现了mina框架的问题:当mina一次传输的文件超过一定值(如55m)或者连续传输文件的次数过于频繁,就会内存溢出:org.apache.mina.filter.codec.ProtocolEncoderException:java.lang.OutOfMemoryError: Java heap spaceatorg.apache.mina.filter.codec转载 2015-08-13 14:04:17 · 764 阅读 · 0 评论 -
java处理高并发高负载的网站的优化方法
一:高并发高负载类网站关注点之数据库没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作。我推荐的是M-M-转载 2015-08-09 22:52:02 · 1098 阅读 · 0 评论 -
jvm优化
Java程序中,每个线程都有自己的Stack Space(堆栈)。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。Stack Space用来做方法的递归调用时压入Stack Frame(栈帧)。所以当递归调用太深的时候,就有可能耗尽Stack Space,爆出StackOverflow转载 2015-08-09 22:44:53 · 418 阅读 · 0 评论 -
java class文件详解
Java Class文件结构信息:ClassFile {u4 magic; //模数u2 minor_version;原创 2017-08-23 14:52:29 · 587 阅读 · 0 评论