面试问题: 请谈谈你对JVM的理解?java8版有什么了解? 谈谈JVM中你对ClassLoader类加载器的认识? 什么是OOM?写代码使得分别出现StackOverflowError和OutOfMemoryError JVM的常用参数调优你了解吗? 内存快照抓取和MAT分析hprof文件干过吗? ...
分类:
其他好文 时间:
2019-04-06 09:30:33
阅读次数:
94
这个问题的核心是classloader 上图中 启动类加载器,扩展类加载器,应用程序类加载器是 jvm 自带的类加载器. comm catalina shared webapp 是tomcat 扩展的加载器,他们分别加载 /common/*、/server/*、/shared/* WebAppCla ...
分类:
移动开发 时间:
2019-04-03 22:16:33
阅读次数:
413
勿在流沙筑高台,出来混迟早要还的。 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 上一篇分析了ClassLoader的类加载相关的核心源码,也简单介绍了ClassLoader的设计思想,读源码相对来说是比较枯燥的,还是这个是必须要走的过程,学习源码中的一些思想,一些精 ...
分类:
编程语言 时间:
2019-03-29 00:57:06
阅读次数:
161
jvm规范:定义了 Class文件类型 运行时数据 帧栈 虚拟机的启动 虚拟机的指令集 vm指令集:类型转换,出栈入栈操作,运算,流程控制,函数调用。 jvm需要对java Library提供以下支持: --反射java.lang.reflect --ClassLoader --初始化class和i ...
分类:
编程语言 时间:
2019-03-24 09:51:57
阅读次数:
180
双亲委派模型工作过程是:如果一个类加载器收到类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器完成。每个类加载器都是如此,只有当父加载器在自己的搜索范围内找不到指定的类时(即ClassNotFoundException),子加载器才会尝试自己去加载。 从源码(jdk1.8) ...
分类:
其他好文 时间:
2019-03-22 16:53:05
阅读次数:
132
1、说到谈谈类加载器,不得不说就是类加载器的双亲委派机制。 不同的classloader加载类的方式和加载路径都不一样,各自管理自己的范围 这个过程就是在每种classload中找出是否已经加载过将要加载的类。逐个检查,找到已加载过的就返回。这个过程,明显是用递归去实现。 为什么要使用双亲委派机制去 ...
分类:
其他好文 时间:
2019-03-15 17:13:08
阅读次数:
164
jvm 性能调优工具之 jmap 概述 命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。 jmap 用法 参数: option: 选项参数。 pid: 需要打印配置信 ...
分类:
其他好文 时间:
2019-03-14 18:07:34
阅读次数:
187
获取classpath下的资源文件 先调用当前线程的context加载器的getResourceAsStream方法去获取 没找到,在调用当前传入类的类加载器的getResourceAsStream方法获取 递归获取加载某个类的类加载器链条信息 ...
分类:
其他好文 时间:
2019-03-08 23:40:13
阅读次数:
227
1.Android4.4.4,使用xposedbriggeapi-54.jar,试了很久都不行,后来改用api-82,成功hook2.findAndHookMethod(),需要传要hook方法的参数类型,如果参数类型为类或者接口,需要用Classclazz=loadPackageParam.classLoader.loadClass(),load以后,就可以传clazz.class;3.
分类:
其他好文 时间:
2019-03-06 15:07:34
阅读次数:
119
类加载器是把编译后的class文件加载到内存,加载器可以分为启动类加载器和其他类加载器,而其他类加载器有可以分为扩展类加载器和应用程序类加载器 启动类加载器(BootStrap ClassLoader):加载java_home/lib或者指定目录下的类库文件,由封C++语言编写实现。 扩展类加载器( ...
分类:
其他好文 时间:
2019-03-05 11:18:05
阅读次数:
178