赞
踩
部分内容可能来自网络或者由GPT生成。
如有雷同,纯属巧合,仅供学习参考之用。
1public class CustomClassLoader extends ClassLoader { 2 3 @Override 4 public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { 5 // 自定义类加载逻辑,跳过默认的双亲委派 6 Class<?> clazz = findLoadedClass(name); 7 if (clazz == null) { 8 try { 9 clazz = findClass(name); 10 } catch (ClassNotFoundException e) { 11 // ignore 12 } 13 } 14 return (clazz != null) ? clazz : getParent().loadClass(name); 15 } 16}
- 子类优先加载(先尝试自己加载再委派给父类):子类加载器先尝试加载类,如果找不到,再委派给父类加载器。这打破了双亲委派机制的默认行为。
1@Override
2public Class<?> loadClass(String name) throws ClassNotFoundException {
3 // 自定义逻辑:先尝试自己加载,找不到再委派
4 Class<?> clazz = findLoadedClass(name);
5 if (clazz == null) {
6 try {
7 clazz = findClass(name);
8 } catch (ClassNotFoundException e) {
9 clazz = getParent().loadClass(name);
10 }
11 }
12 return clazz;
13}
Bootstrap ClassLoader
↑
System ClassLoader
↑
Common ClassLoader(公共类加载器)
↑
Catalina ClassLoader(Tomcat内部类加载器)
↑
Shared ClassLoader(共享类加载器,可选)
↑
Webapp ClassLoader(Web应用类加载器,每个Web应用独有一个)
参数 | 描述 |
---|---|
-Xms | 初始堆 |
-Xmx | 最大堆大小 |
-Xmn | 新生代的内空间.空间包含(eden+2个survivor),默认配比是8:1:1 |
-XX:SurvivorRatio | Eden区与Survivor区的大小比值 |
-XX:PermSize | 永久代的分配 |
-XX:MaxPermSize | 永久代最大值 |
-Xss: | 每个线程堆栈的大小 |
$ps -ef | grep java
$top -Hp 4245
$printf “%x\n” 5297
“14b1n”
$jstack 4245 | grep 14b1n
$jstack 4245
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。