JVM
文章平均质量分 87
lppl010_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何提高反射效率?
https://segmentfault.com/q/1010000003004720一一. 善用API比如,尽量不要getMethods()后再遍历筛选,而直接用getMethod(methodName)来根据方法名获取方法二、缓存大法好~比如,需要多次动态创建一个类的实例的时候,有缓存的写法会比没有缓存要快很多:// 1. 没有缓存void createInstan...转载 2019-11-29 19:54:26 · 2063 阅读 · 0 评论 -
JVM在遇到OOM(OutOfMemoryError)时生成Dump文件
https://www.cnblogs.com/stone1989/p/6386312.htmlJVM在遇到OOM(OutOfMemoryError)时生成Dump文件方法一:命令:jmap -dump:format=b,file=heap.binfile:保存路径及文件名pid:进程编号(windows通过任务管理器查看,linux通过ps aux查看)dump文件可以通过MemoryAnaly...转载 2018-07-02 22:32:09 · 4582 阅读 · 0 评论 -
java对象结构
https://blog.youkuaiyun.com/zqz_zqz/article/details/70246212#commentBox先转载一篇文章作为开头,因为讲的非常详细,我就简单加工下放到这里:对象结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数...转载 2019-08-14 23:04:49 · 173 阅读 · 0 评论 -
java.lang.reflect.Field.get()方法示例
https://www.yiibai.com/javareflect/javareflect_field_get.htmljava.lang.reflect.Field.get(Object obj)方法返回指定对象上由此Field表示的字段的值。如果该对象具有原始类型,则该值将自动包装在对象中。声明以下是java.lang.reflect.Field.get(Object ob...转载 2019-08-14 23:03:38 · 5297 阅读 · 0 评论 -
Field.get(null)
https://blog.youkuaiyun.com/u010286334/article/details/729323071、field.get(null)public static void main(String[] args){Field field=MainTest.class.getDeclaredField("name"); //static...转载 2019-08-14 23:02:12 · 714 阅读 · 0 评论 -
Java中神奇的双刃剑-Unsafe
https://www.cnblogs.com/throwable/p/9139947.html前提参考资料:Java魔法类:sun.misc.Unsafe 在openjdk8下看Unsafe源码Unsafe介绍在Oracle的Jdk8无法获取到sun.misc包的源码,想看此包的源码可以直接下载openjdk,包的路径是:openjdk-8u40-src-b25-1...转载 2019-08-14 23:01:16 · 388 阅读 · 0 评论 -
线程上下文类加载器
https://www.cnblogs.com/549294286/p/3714692.htmlThread.currentThread().getContextClassLoader()的意义: 父Classloader可以使用当前线程Thread.currentthread().getContextLoader()中指定的classloader中加载的类。颠覆了父ClassLo...转载 2019-04-10 14:30:49 · 215 阅读 · 0 评论 -
Netty内存池整体设计解读
https://blog.youkuaiyun.com/kuangzhanshatian/article/details/80881904Netty内存池整体设计解读背景名词定义总体设计思路单个Chunk的内存分配算法分配内存释放内存Chunk移动小容量内存分配算法分配算法释放内存管理方式优化改进线程缓存流程解析Arena重要属性分配超大容量分配正常大小分配SubP...转载 2019-03-29 23:14:31 · 1015 阅读 · 0 评论 -
深入JVM关闭与关闭钩子
https://blog.youkuaiyun.com/dd864140130/article/details/491551791. 简述JVM关闭通常而言,对于JVM的关闭我们很少去关注,但是了解JVM的关闭能帮我们在JVM关闭时做一些合理的事情。首先JVM的关闭方式可以分为三种:正常关闭:当最后一个非守护线程结束或者调用了System.exit或者通过其他特定平台的方法关闭(发送SIGIN...转载 2019-03-17 11:06:06 · 363 阅读 · 0 评论 -
深入理解ClassLoader(五)—类的卸载
https://www.cnblogs.com/longshiyVip/p/5174038.html 原文地址:http://yhjhappy234.blog.163.com/blog/static/316328322011101413730764/?suggestedreading&wumii我们知道,当一个类被加载、连接和初始化之后,他的生命周期就开始了,当该类的class...转载 2018-08-27 13:13:46 · 4998 阅读 · 1 评论 -
用jvisualvm分析dump文件
https://blog.youkuaiyun.com/lkforce/article/details/60878295最近有一个java服务的堆内存溢出,然后僵死了,在重启服务之前用jmap命令生成了一份dump文件便于后面分析。生成dump文件的命令:jmap -dump:format=b,file=20170307.dump 16048file后面的是自定义的文件名,最后的数字是进程的pid。使用jvi...转载 2018-07-02 22:37:37 · 2201 阅读 · 0 评论 -
idea打印gc日志的2种方法
https://blog.youkuaiyun.com/bear_lam/article/details/796487011.对指定运行程序输出GC日志:点击edit configurations...在vm options处加入-XX:+PrintGCDetails测试:代码调用system.gc后输出以下内容:2.修改idea32/64.exe.vmoptions 文件在idea的安装目录下,有2个vmo...转载 2018-05-19 00:20:22 · 1744 阅读 · 0 评论 -
java中的sleep()和wait()的区别
https://www.cnblogs.com/hongten/p/hongten_java_sleep_wait.htmljava中的sleep()和wait()的区别对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到...转载 2018-07-02 21:59:56 · 144 阅读 · 1 评论 -
通过jvisualvm查看产生死锁线程
https://blog.youkuaiyun.com/xidiancoder/article/details/56049315产生死锁的原因:(1) 因为系统资源不足。 (2) 进程运行推进的顺序不合适。 (3) 资源分配不当等。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已...转载 2018-07-02 21:59:12 · 1349 阅读 · 0 评论 -
通过反编译深入理解Java String及intern
http://www.importnew.com/21024.html首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源- 导航条 -首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源通过反编译深入理解Java String及intern2016/08/08 | 分类: 基础技术 | 6 条评论 | 标签: INTERN, 字符串分享到:原文出处: liuxiaopeng一...转载 2018-07-02 15:30:38 · 180 阅读 · 0 评论 -
JDK8 元空间
https://www.cnblogs.com/Jtianlin/p/8656845.html1. 运行时常量池和静态变量都存储到了堆中,MetaSpace存储类的元数据,MetaSpace直接申请在本地内存中(Native memory),这样类的元数据分配只受本地内存大小的限制,OOM问题就不存在了。除此之外,还有其他很多好处:2. 其实,移除永久代的工作从JDK1.7就开始了。JDK1.7中...转载 2018-07-02 15:18:58 · 576 阅读 · 0 评论 -
使用JDK8测试Perm区内存溢出的问题
http://f.dataguru.cn/java-874580-1-1.html设置-XX:PermSize=1M -XX:MaxPermSize=1M,发现没有内存溢出效果遇到提示ignoring option PermSize=1M; support was removed in 8.0查询资料以后发现是因为JDK8已经移除了永生代,而对于存放类的元数据的内存大小的设置变为Metaspace...转载 2018-07-01 16:18:36 · 865 阅读 · 0 评论 -
cglib动态生成class文件以及方法区溢出
https://blog.youkuaiyun.com/likaiwalkman/article/details/50635114cglib被hibernate用来动态生成po的字节码。CGLIB的底层是java字节码操作框架ASM。今天简单看下cglib的用法。cglib的Enhancer说起来神奇,用起来一页纸不到就讲完了。它的原理就是用Enhancer生成一个原有类的子类,并且设置好callback到p...转载 2018-07-01 16:16:29 · 1139 阅读 · 0 评论 -
栈帧、局部变量表、操作数栈
https://blog.youkuaiyun.com/a616413086/article/details/512723091.定义 栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里...转载 2018-06-30 22:37:31 · 312 阅读 · 0 评论 -
jvm双亲委托模型的作用
上次面试中被问到:双亲委托模型解决了什么问题,哑口无言,哈哈哈,回来又翻了翻 《深入理解java虚拟机》一个java类,由类名和加载它的类加载器 共同决定,由于所有类都继承自 object 类,程序中不能出现由不同的类加载器加载的Object类,所以 object类 必须由根类加载器 加载,这样程序中的实例1 instanceOf Object 返回true实例2 instanceOf ...原创 2018-06-16 12:44:53 · 735 阅读 · 0 评论 -
加载一个类时,其内部类是否同时被加载?引申出单例模式的另一种实现方式
http://yongliang567.iteye.com/blog/904467加载一个类时,其内部类是否同时被加载?下面我们做一个实验来看一下。 Java代码 public class Outer { static { System.out.println("load outer class..."); } //静态内部类 ...转载 2018-05-20 18:06:44 · 401 阅读 · 0 评论 -
线程安全的单例模式
https://www.cnblogs.com/x_wukong/p/3962315.html转自:http://blog.sina.com.cn/s/blog_75247c770100yxpb.html 面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个: 1 //饥饿模式 2 public final cl...转载 2018-05-20 18:05:39 · 302 阅读 · 0 评论 -
说一说Java的Unsafe类
https://www.cnblogs.com/pkufork/p/java_unsafe.html最近在看Java并发包的源码,发现了神奇的Unsafe类,仔细研究了一下,在这里跟大家分享一下。Unsafe类是在sun.misc包下,不属于Java标准。但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty、Cassandra、Hadoop、Ka...转载 2018-05-19 21:52:01 · 297 阅读 · 0 评论
分享