package com.cdai.jvm;
public class RuntimeConstantPool {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println("Before intern, s1 == s2: " + (s1 == s2));
s1 = s1.intern();
s2 = s2.intern();
System.out.println("After intern, s1 == s2: " + (s1 == s2));
}
}
package com.cdai.jvm.overflow;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class MethodAreaOverflow {
static interface OOMInterface {
}
static class OOMObject implements OOMInterface {
}
static class OOMObject2 implements OOMInterface {
}
public static void main(String[] args) {
final OOMObject object = new OOMObject();
while (true) {
OOMInterface proxy = (OOMInterface) Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
OOMObject.class.getInterfaces(),
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("Interceptor1 is working");
return method.invoke(object, args);
}
}
);
System.out.println(proxy.getClass());
System.out.println("Proxy1: " + proxy);
OOMInterface proxy2 = (OOMInterface) Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
OOMObject.class.getInterfaces(),
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("Interceptor2 is working");
return method.invoke(object, args);
}
}
);
System.out.println(proxy2.getClass());
System.out.println("Proxy2: " + proxy2);
}
}
}
package com.cdai.jvm.overflow;
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
public class MethodAreaOverflow2 {
static class OOMObject {
}
public static void main(String[] args) {
while (true) {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(OOMObject.class);
enhancer.setUseCache(false);
enhancer.setCallback(new MethodInterceptor() {
@Override
public Object intercept(Object obj, Method method,
Object[] args, MethodProxy proxy) throws Throwable {
return method.invoke(obj, args);
}
});
OOMObject proxy = (OOMObject) enhancer.create();
System.out.println(proxy.getClass());
}
}
}
package com.cdai.jvm.overflow;
public class HeapOverflow {
private static final int MB = 1024 * 1024;
@SuppressWarnings("unused")
public static void main(String[] args) {
byte[] bigMemory = new byte[1024 * MB];
}
}
package com.cdai.jvm.overflow;
public class StackOverflow {
private static int stackDepth = 1;
public static void stackOverflow() {
stackDepth++;
stackOverflow();
}
public static void main(String[] args) {
try {
stackOverflow();
}
catch (Exception e) {
System.err.println("Stack depth: " + stackDepth);
e.printStackTrace();
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有