From 767555f87f5b2c83b718702f7155296d6b8020f1 Mon Sep 17 00:00:00 2001 From: ZhouZhiming Date: Tue, 10 Dec 2019 17:25:17 +0800 Subject: [PATCH] init init --- lib/cglib-2.2.2.jar | Bin 0 -> 287192 bytes .../fenixsoft/jvm/chapter10/AutoBoxing.java | 22 +++ .../fenixsoft/jvm/chapter10/NameChecker.java | 180 ++++++++++++++++++ .../fenixsoft/jvm/chapter12/VolatileTest.java | 38 ++++ .../fenixsoft/jvm/chapter13/AtomicTest.java | 40 ++++ .../jvm/chapter13/VectorTestCase_1.java | 44 +++++ .../jvm/chapter13/VectorTestCase_2.java | 48 +++++ .../jvm/chapter2/DirectMemoryOOM.java | 24 +++ src/org/fenixsoft/jvm/chapter2/HeapOOM.java | 24 +++ .../jvm/chapter2/JavaMethodAreaOOM.java | 32 ++++ .../jvm/chapter2/JavaVMStackOOM.java | 31 +++ .../jvm/chapter2/JavaVMStackSOF_1.java | 26 +++ .../jvm/chapter2/JavaVMStackSOF_2.java | 26 +++ .../jvm/chapter2/JavaVMStackSOF_3.java | 66 +++++++ .../chapter2/RuntimeConstantPoolOOM_1.java | 22 +++ .../chapter2/RuntimeConstantPoolOOM_2.java | 12 ++ .../jvm/chapter3/FinalizeEscapeGC.java | 50 +++++ .../jvm/chapter3/ReferenceCountingGC.java | 31 +++ .../jvm/chapter3/TestSerialGCAllocation.java | 78 ++++++++ .../fenixsoft/jvm/chapter4/BTraceTest.java | 48 +++++ .../jvm/chapter4/JConsoleTestCase.java | 29 +++ .../fenixsoft/jvm/chapter4/JHSDBTestCase.java | 24 +++ .../chapter4/ThreadDeadLockTestCase_1.java | 52 +++++ .../chapter4/ThreadDeadLockTestCase_2.java | 36 ++++ .../EclipseStartTime_1.0.0.201011281102.jar | Bin 0 -> 4012 bytes .../jvm/chapter7/ClassLoaderTest.java | 42 ++++ .../fenixsoft/jvm/chapter7/ConstClass.java | 14 ++ .../jvm/chapter7/DeadLoopTestCase.java | 34 ++++ .../jvm/chapter7/FieldResolution.java | 31 +++ .../jvm/chapter7/NotInitialization_1.java | 12 ++ .../jvm/chapter7/NotInitialization_2.java | 13 ++ .../jvm/chapter7/NotInitialization_3.java | 11 ++ src/org/fenixsoft/jvm/chapter7/SubClass.java | 11 ++ .../fenixsoft/jvm/chapter7/SuperClass.java | 14 ++ src/org/fenixsoft/jvm/chapter8/Dispatch.java | 39 ++++ .../jvm/chapter8/DynamicDispatch.java | 35 ++++ .../jvm/chapter8/FieldHasNoPolymorphic.java | 39 ++++ .../jvm/chapter8/GrandFatherTestCase_1.java | 41 ++++ .../jvm/chapter8/GrandFatherTestCase_2.java | 43 +++++ .../jvm/chapter8/InvokeDynamicTest.java | 37 ++++ .../jvm/chapter8/MethodHandleTest.java | 33 ++++ src/org/fenixsoft/jvm/chapter8/Overload.java | 41 ++++ .../jvm/chapter8/StaticDispatch.java | 37 ++++ .../jvm/chapter8/StaticResolution.java | 19 ++ src/org/fenixsoft/jvm/chapter9/ByteUtils.java | 44 +++++ .../fenixsoft/jvm/chapter9/ClassModifier.java | 74 +++++++ .../jvm/chapter9/DynamicProxyTest.java | 43 +++++ .../fenixsoft/jvm/chapter9/HackSystem.java | 54 ++++++ .../jvm/chapter9/HotSwapClassLoader.java | 20 ++ .../jvm/chapter9/JavaclassExecuter.java | 34 ++++ 50 files changed, 1798 insertions(+) create mode 100644 lib/cglib-2.2.2.jar create mode 100644 src/org/fenixsoft/jvm/chapter10/AutoBoxing.java create mode 100644 src/org/fenixsoft/jvm/chapter10/NameChecker.java create mode 100644 src/org/fenixsoft/jvm/chapter12/VolatileTest.java create mode 100644 src/org/fenixsoft/jvm/chapter13/AtomicTest.java create mode 100644 src/org/fenixsoft/jvm/chapter13/VectorTestCase_1.java create mode 100644 src/org/fenixsoft/jvm/chapter13/VectorTestCase_2.java create mode 100644 src/org/fenixsoft/jvm/chapter2/DirectMemoryOOM.java create mode 100644 src/org/fenixsoft/jvm/chapter2/HeapOOM.java create mode 100644 src/org/fenixsoft/jvm/chapter2/JavaMethodAreaOOM.java create mode 100644 src/org/fenixsoft/jvm/chapter2/JavaVMStackOOM.java create mode 100644 src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_1.java create mode 100644 src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_2.java create mode 100644 src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_3.java create mode 100644 src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_1.java create mode 100644 src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_2.java create mode 100644 src/org/fenixsoft/jvm/chapter3/FinalizeEscapeGC.java create mode 100644 src/org/fenixsoft/jvm/chapter3/ReferenceCountingGC.java create mode 100644 src/org/fenixsoft/jvm/chapter3/TestSerialGCAllocation.java create mode 100644 src/org/fenixsoft/jvm/chapter4/BTraceTest.java create mode 100644 src/org/fenixsoft/jvm/chapter4/JConsoleTestCase.java create mode 100644 src/org/fenixsoft/jvm/chapter4/JHSDBTestCase.java create mode 100644 src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_1.java create mode 100644 src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_2.java create mode 100644 src/org/fenixsoft/jvm/chapter5/EclipseStartTime_1.0.0.201011281102.jar create mode 100644 src/org/fenixsoft/jvm/chapter7/ClassLoaderTest.java create mode 100644 src/org/fenixsoft/jvm/chapter7/ConstClass.java create mode 100644 src/org/fenixsoft/jvm/chapter7/DeadLoopTestCase.java create mode 100644 src/org/fenixsoft/jvm/chapter7/FieldResolution.java create mode 100644 src/org/fenixsoft/jvm/chapter7/NotInitialization_1.java create mode 100644 src/org/fenixsoft/jvm/chapter7/NotInitialization_2.java create mode 100644 src/org/fenixsoft/jvm/chapter7/NotInitialization_3.java create mode 100644 src/org/fenixsoft/jvm/chapter7/SubClass.java create mode 100644 src/org/fenixsoft/jvm/chapter7/SuperClass.java create mode 100644 src/org/fenixsoft/jvm/chapter8/Dispatch.java create mode 100644 src/org/fenixsoft/jvm/chapter8/DynamicDispatch.java create mode 100644 src/org/fenixsoft/jvm/chapter8/FieldHasNoPolymorphic.java create mode 100644 src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_1.java create mode 100644 src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_2.java create mode 100644 src/org/fenixsoft/jvm/chapter8/InvokeDynamicTest.java create mode 100644 src/org/fenixsoft/jvm/chapter8/MethodHandleTest.java create mode 100644 src/org/fenixsoft/jvm/chapter8/Overload.java create mode 100644 src/org/fenixsoft/jvm/chapter8/StaticDispatch.java create mode 100644 src/org/fenixsoft/jvm/chapter8/StaticResolution.java create mode 100644 src/org/fenixsoft/jvm/chapter9/ByteUtils.java create mode 100644 src/org/fenixsoft/jvm/chapter9/ClassModifier.java create mode 100644 src/org/fenixsoft/jvm/chapter9/DynamicProxyTest.java create mode 100644 src/org/fenixsoft/jvm/chapter9/HackSystem.java create mode 100644 src/org/fenixsoft/jvm/chapter9/HotSwapClassLoader.java create mode 100644 src/org/fenixsoft/jvm/chapter9/JavaclassExecuter.java diff --git a/lib/cglib-2.2.2.jar b/lib/cglib-2.2.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..564b9f8834e3dea5fdcaa0ffa35856431b6dbd0d GIT binary patch literal 287192 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

7oljEOr@ZHB|C~yJMggd2?@yY9~Ji;tk(f;Q= z2J2_ty{;-_=Oioe95ZKyDE>J%=S5mNTDS@_IRR+uM@NG!hYYJG?NTCnofSM-TV{uM zL40tRfa8W#@Wp{ktd35(?P5=A_wDu=pXnHfInYd!P^hhh4urLriZAm3c4j0E`9re{y)BFDq#Uas-0w{jgmvS=$%r)e??Y!&P-h#;jVv*v9St zR6NkL>4?V2lXJ4^qM1C8$JnQ6!xbv;WUnM!BS4p?+IK|b5?~CJR~iy^1&nQBo<2PP z`#JUlU*|c5Y^a!$yj0} zjYL4oB(x%I!oDt9Ic}MZtK#s2Zt7XeKi(a)KIWxW-T}x16Zec^KZ&cOW~B z<6#3x54|c67SwK9xmY?R{DJ53n`T0{?@LcS7N)XJ?gnPS6a-Q1jUH@9W7BRPFZQMl z;N1J=xdbu!$GPvJ(}j|m9Ok;fwAqCaYANk24IP=oI6Z>i1DoK`Z)lc=m3h z*8gn*nEzt|K2^Qu6w%)qWsHsE0`M5a;EZUJiOG$3k=}g0e|4>m_M&OPjx={n72P&?w;{{>8Boy??V>J*rx6W z1Wp0+N&Sr-U5t{pTLRE%Re`FGuq7P3@KfcSp-}-hu#D8$Xonrthht-S1;KlIZn zAbJs5?z~jwkbJG%qZl@UbD*{%0%Tms!->IWowR`wYObTRSr4}3Sxum!cc#X8669Y% zCU1Fhu&d`SB!Ax84y+1{g$MiZvr)ga^$0rApe|mU-5I&+ub@v@B?|JWRpLO@e^%`o z`?>tY4ITvA{VQ7=suaY%Cv+anff;0A5z1+xR?GIvP?Y#nCA;on{ii~`VhE`Yq9Q4V zz+Quvi8$k>a2SNuIuQ|$CfM6biOOx*YFYrBZoeypCqg1MHMLb*AA;3k$ULfKrL6lt z#wt>w{*#^(4)p1Dpw@aU;%2Jay4CNyodCJXqK;jy{uUlX%%7fC_~Xl0PDM#4!~uyvN@s+D_DuqQK5WtqF4bI2BQ*U*;r%)nP26K3V~ z7xmC~)pQ;I#@Zf`;Zs3v5;jB5*6$w+z=)WSAx(qCGw-~85792)s?j#GT62UL`jqj?|yi4~zMu+g-@r@NoK<2a`!7eWDqQdrs+@)pXH8<6j=HYifz<@%ZSnq-y8rDTXb~tQ!{VPx(ehWHyHo#=h8TrLR z?MT(!1*-esnymQtP(4PUp3L%7uIPU=rhh4Nshr7wqNw@mgBclQp4dr=bJe7UFbBU5 zSjY|*N)=F2yk5qpugk9n8>XDf3lWZs{(9_(x@3yNy(5WoPoV{Au>0wLz6SI@Pv>#x zfA{$S=^_2p;v&rvg4Bp=%^0MI)tbn&nCM`F8`7<>v*>TE8~D{ZZu$u`P)qt{r|bR} z0?)gMM7EvMm!Y|e*nl}hD^lE6+(Rw-uCToq_?})J2yaPL40P~>JiF`K0&lISRRst zYIa!dC0KKUM67rSV+?!Z+7c>4Ug+aT0Nzb^)3GM%51?lpGP=^SFFNqM1S3c2 zYaCKfMHCs4Gs2$LPP!H41%hnq3MV|i)9`!+#OZwlURBbfaQ!k)yr;&Y24{{Qgz|B};Eu~qo=_uuU})UkuNkvAa&m`&je zcf}xt6rm_(FxhanBZ(&T+?QdCC~Tq5p&kQeO;80M!CrZW7Dabki^4i4DIadv=A3g5 zxE_GtpWn90e!$QV=WV+|aWj$1QN}2leDdBKaS`r zz@}g6TkLdQFV!~F;=tE9^eiD&Z<5`_I_DLUC^LLv+s=d(nW#zE=N<+)ye>7Jbl4rz zxkayvJ5VT)FxS`KM~!}u!WSu1IQza8M5b_$NKd4O(RK1^Nk&>quYzuLVHV9 zN4`K-8LakA>a5)axtIUi<(_3JY)v!@x$NM5fVLo3q2{(zb05R&yL1=RI@n0j-!nCY z_(__X-`fMb2h-l?aJOa?a*ph&Re964KNlYr6qX8XvkogMM&EEPH8l#na6st9UT^@B zLRgn9ZK>GKj#?Y8jNn2*0@N6SAhFRKN%fQQE?k0p&aVHI4IzZ7(OIiLo(8LfCo9Rk z+!1uJT)d6e⪙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 Gxc>vfVeke3 literal 0 HcmV?d00001 diff --git a/src/org/fenixsoft/jvm/chapter10/AutoBoxing.java b/src/org/fenixsoft/jvm/chapter10/AutoBoxing.java new file mode 100644 index 0000000..21968f2 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter10/AutoBoxing.java @@ -0,0 +1,22 @@ +package org.fenixsoft.jvm.chapter10; + +/** + * @author zzm + */ +public class AutoBoxing { + public static void main(String[] args) { + Integer a = 1; + Integer b = 2; + Integer c = 3; + Integer d = 3; + Integer e = 321; + Integer f = 321; + Long g = 3L; + System.out.println(c == d); + System.out.println(e == f); + System.out.println(c == (a + b)); + System.out.println(c.equals(a + b)); + System.out.println(g == (a + b)); + System.out.println(g.equals(a + b)); + } +} diff --git a/src/org/fenixsoft/jvm/chapter10/NameChecker.java b/src/org/fenixsoft/jvm/chapter10/NameChecker.java new file mode 100644 index 0000000..9b1cfdd --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter10/NameChecker.java @@ -0,0 +1,180 @@ +package org.fenixsoft.jvm.chapter10; + +import javax.annotation.processing.Messager; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.*; +import javax.lang.model.util.ElementScanner6; +import java.util.EnumSet; + +import static javax.lang.model.element.ElementKind.*; +import static javax.lang.model.element.ElementKind.INTERFACE; +import static javax.lang.model.element.Modifier.*; +import static javax.tools.Diagnostic.Kind.WARNING; + +/** + * 程序名称规范的编译器插件:
+ * 如果程序命名不合规范,将会输出一个编译器的WARNING信息 + */ +public class NameChecker { + private final Messager messager; + + NameCheckScanner nameCheckScanner = new NameCheckScanner(); + + NameChecker(ProcessingEnvironment processsingEnv) { + this.messager = processsingEnv.getMessager(); + } + + /** + * 对Java程序命名进行检查,根据《Java语言规范》第三版第6.8节的要求,Java程序命名应当符合下列格式: + * + *

+ */ + public void checkNames(Element element) { + nameCheckScanner.scan(element); + } + + /** + * 名称检查器实现类,继承了JDK 6中新提供的ElementScanner6
+ * 将会以Visitor模式访问抽象语法树中的元素 + */ + private class NameCheckScanner extends ElementScanner6 { + + /** + * 此方法用于检查Java类 + */ + @Override + public Void visitType(TypeElement e, Void p) { + scan(e.getTypeParameters(), p); + checkCamelCase(e, true); + super.visitType(e, p); + return null; + } + + /** + * 检查方法命名是否合法 + */ + @Override + public Void visitExecutable(ExecutableElement e, Void p) { + if (e.getKind() == METHOD) { + Name name = e.getSimpleName(); + if (name.contentEquals(e.getEnclosingElement().getSimpleName())) + messager.printMessage(WARNING, "一个普通方法 “" + name + "”不应当与类名重复,避免与构造函数产生混淆", e); + checkCamelCase(e, false); + } + super.visitExecutable(e, p); + return null; + } + + /** + * 检查变量命名是否合法 + */ + @Override + public Void visitVariable(VariableElement e, Void p) { + // 如果这个Variable是枚举或常量,则按大写命名检查,否则按照驼式命名法规则检查 + if (e.getKind() == ENUM_CONSTANT || e.getConstantValue() != null || heuristicallyConstant(e)) + checkAllCaps(e); + else + checkCamelCase(e, false); + return null; + } + + /** + * 判断一个变量是否是常量 + */ + private boolean heuristicallyConstant(VariableElement e) { + if (e.getEnclosingElement().getKind() == INTERFACE) + return true; + else if (e.getKind() == FIELD && e.getModifiers().containsAll(EnumSet.of(PUBLIC, STATIC, FINAL))) + return true; + else { + return false; + } + } + + /** + * 检查传入的Element是否符合驼式命名法,如果不符合,则输出警告信息 + */ + private void checkCamelCase(Element e, boolean initialCaps) { + String name = e.getSimpleName().toString(); + boolean previousUpper = false; + boolean conventional = true; + int firstCodePoint = name.codePointAt(0); + + if (Character.isUpperCase(firstCodePoint)) { + previousUpper = true; + if (!initialCaps) { + messager.printMessage(WARNING, "名称“" + name + "”应当以小写字母开头", e); + return; + } + } else if (Character.isLowerCase(firstCodePoint)) { + if (initialCaps) { + messager.printMessage(WARNING, "名称“" + name + "”应当以大写字母开头", e); + return; + } + } else + conventional = false; + + if (conventional) { + int cp = firstCodePoint; + for (int i = Character.charCount(cp); i < name.length(); i += Character.charCount(cp)) { + cp = name.codePointAt(i); + if (Character.isUpperCase(cp)) { + if (previousUpper) { + conventional = false; + break; + } + previousUpper = true; + } else + previousUpper = false; + } + } + + if (!conventional) + messager.printMessage(WARNING, "名称“" + name + "”应当符合驼式命名法(Camel Case Names)", e); + } + + /** + * 大写命名检查,要求第一个字母必须是大写的英文字母,其余部分可以是下划线或大写字母 + */ + private void checkAllCaps(Element e) { + String name = e.getSimpleName().toString(); + + boolean conventional = true; + int firstCodePoint = name.codePointAt(0); + + if (!Character.isUpperCase(firstCodePoint)) + conventional = false; + else { + boolean previousUnderscore = false; + int cp = firstCodePoint; + for (int i = Character.charCount(cp); i < name.length(); i += Character.charCount(cp)) { + cp = name.codePointAt(i); + if (cp == (int) '_') { + if (previousUnderscore) { + conventional = false; + break; + } + previousUnderscore = true; + } else { + previousUnderscore = false; + if (!Character.isUpperCase(cp) && !Character.isDigit(cp)) { + conventional = false; + break; + } + } + } + } + + if (!conventional) + messager.printMessage(WARNING, "常量“" + name + "”应当全部以大写字母或下划线命名,并且以字母开头", e); + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter12/VolatileTest.java b/src/org/fenixsoft/jvm/chapter12/VolatileTest.java new file mode 100644 index 0000000..b216471 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter12/VolatileTest.java @@ -0,0 +1,38 @@ +package org.fenixsoft.jvm.chapter12; + +/** + * volatile变量自增运算测试 + * + * @author zzm + */ +public class VolatileTest { + + public static volatile int race = 0; + + public static void increase() { + race++; + } + + private static final int THREADS_COUNT = 20; + + public static void main(String[] args) { + Thread[] threads = new Thread[THREADS_COUNT]; + for (int i = 0; i < THREADS_COUNT; i++) { + threads[i] = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < 10000; i++) { + increase(); + } + } + }); + threads[i].start(); + } + + // 等待所有累加线程都结束 + while (Thread.activeCount() > 1) + Thread.yield(); + + System.out.println(race); + } +} diff --git a/src/org/fenixsoft/jvm/chapter13/AtomicTest.java b/src/org/fenixsoft/jvm/chapter13/AtomicTest.java new file mode 100644 index 0000000..0b53f7a --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter13/AtomicTest.java @@ -0,0 +1,40 @@ +package org.fenixsoft.jvm.chapter13; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Atomic变量自增运算测试 + * + * @author zzm + */ +public class AtomicTest { + + public static AtomicInteger race = new AtomicInteger(0); + + public static void increase() { + race.incrementAndGet(); + } + + private static final int THREADS_COUNT = 20; + + public static void main(String[] args) throws Exception { + Thread[] threads = new Thread[THREADS_COUNT]; + for (int i = 0; i < THREADS_COUNT; i++) { + threads[i] = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < 10000; i++) { + increase(); + } + } + }); + threads[i].start(); + } + + while (Thread.activeCount() > 1) + Thread.yield(); + + System.out.println(race); + } +} + diff --git a/src/org/fenixsoft/jvm/chapter13/VectorTestCase_1.java b/src/org/fenixsoft/jvm/chapter13/VectorTestCase_1.java new file mode 100644 index 0000000..37b92a1 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter13/VectorTestCase_1.java @@ -0,0 +1,44 @@ +package org.fenixsoft.jvm.chapter13; + +import java.util.Vector; + +/** + * @author zzm + */ +public class VectorTestCase_1 { + + private static Vector vector = new Vector(); + + public static void main(String[] args) { + while (true) { + for (int i = 0; i < 10; i++) { + vector.add(i); + } + + Thread removeThread = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < vector.size(); i++) { + vector.remove(i); + } + } + }); + + Thread printThread = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < vector.size(); i++) { + System.out.println((vector.get(i))); + } + } + }); + + removeThread.start(); + printThread.start(); + + //不要同时产生过多的线程,否则会导致操作系统假死 + while (Thread.activeCount() > 20) ; + } + } + +} diff --git a/src/org/fenixsoft/jvm/chapter13/VectorTestCase_2.java b/src/org/fenixsoft/jvm/chapter13/VectorTestCase_2.java new file mode 100644 index 0000000..cbbcc72 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter13/VectorTestCase_2.java @@ -0,0 +1,48 @@ +package org.fenixsoft.jvm.chapter13; + +import java.util.Vector; + +/** + * @author zzm + */ +public class VectorTestCase_2 { + + private static Vector vector = new Vector(); + + public static void main(String[] args) { + while (true) { + for (int i = 0; i < 10; i++) { + vector.add(i); + } + + Thread removeThread = new Thread(new Runnable() { + @Override + public void run() { + synchronized (vector) { + for (int i = 0; i < vector.size(); i++) { + vector.remove(i); + } + } + } + }); + + Thread printThread = new Thread(new Runnable() { + @Override + public void run() { + synchronized (vector) { + for (int i = 0; i < vector.size(); i++) { + System.out.println((vector.get(i))); + } + } + } + }); + + removeThread.start(); + printThread.start(); + + //不要同时产生过多的线程,否则会导致操作系统假死 + while (Thread.activeCount() > 20) ; + } + } + +} diff --git a/src/org/fenixsoft/jvm/chapter2/DirectMemoryOOM.java b/src/org/fenixsoft/jvm/chapter2/DirectMemoryOOM.java new file mode 100644 index 0000000..b6698d5 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/DirectMemoryOOM.java @@ -0,0 +1,24 @@ +package org.fenixsoft.jvm.chapter2; + +import sun.misc.Unsafe; + +import java.lang.reflect.Field; + +/** + * VM Args:-Xmx20M -XX:MaxDirectMemorySize=10M + * + * @author zzm + */ +public class DirectMemoryOOM { + + private static final int _1MB = 1024 * 1024; + + public static void main(String[] args) throws Exception { + Field unsafeField = Unsafe.class.getDeclaredFields()[0]; + unsafeField.setAccessible(true); + Unsafe unsafe = (Unsafe) unsafeField.get(null); + while (true) { + unsafe.allocateMemory(_1MB); + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/HeapOOM.java b/src/org/fenixsoft/jvm/chapter2/HeapOOM.java new file mode 100644 index 0000000..0a814b7 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/HeapOOM.java @@ -0,0 +1,24 @@ +package org.fenixsoft.jvm.chapter2; + +import java.util.ArrayList; +import java.util.List; + +/** + * VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError + * + * @author zzm + */ +public class HeapOOM { + + static class OOMObject { + } + + public static void main(String[] args) { + List list = new ArrayList(); + + while (true) { + list.add(new OOMObject()); + } + } +} + diff --git a/src/org/fenixsoft/jvm/chapter2/JavaMethodAreaOOM.java b/src/org/fenixsoft/jvm/chapter2/JavaMethodAreaOOM.java new file mode 100644 index 0000000..2cbea4e --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/JavaMethodAreaOOM.java @@ -0,0 +1,32 @@ +package org.fenixsoft.jvm.chapter2; + +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + +import java.lang.reflect.Method; + +/** + * VM Args: -XX:PermSize=10M -XX:MaxPermSize=10M + * + * @author zzm + */ +public class JavaMethodAreaOOM { + + public static void main(String[] args) { + while (true) { + Enhancer enhancer = new Enhancer(); + enhancer.setSuperclass(OOMObject.class); + enhancer.setUseCache(false); + enhancer.setCallback(new MethodInterceptor() { + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { + return proxy.invokeSuper(obj, args); + } + }); + enhancer.create(); + } + } + + static class OOMObject { + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/JavaVMStackOOM.java b/src/org/fenixsoft/jvm/chapter2/JavaVMStackOOM.java new file mode 100644 index 0000000..9c680b6 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/JavaVMStackOOM.java @@ -0,0 +1,31 @@ +package org.fenixsoft.jvm.chapter2; + +/** + * VM Args:-Xss2M (这时候不妨设大些,请在32位系统下运行) + * + * @author zzm + */ +public class JavaVMStackOOM { + + private void dontStop() { + while (true) { + } + } + + public void stackLeakByThread() { + while (true) { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + dontStop(); + } + }); + thread.start(); + } + } + + public static void main(String[] args) throws Throwable { + JavaVMStackOOM oom = new JavaVMStackOOM(); + oom.stackLeakByThread(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_1.java b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_1.java new file mode 100644 index 0000000..b3843a1 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_1.java @@ -0,0 +1,26 @@ +package org.fenixsoft.jvm.chapter2; + +/** + * VM Args:-Xss128k + * + * @author zzm + */ +public class JavaVMStackSOF_1 { + + private int stackLength = 1; + + public void stackLeak() { + stackLength++; + stackLeak(); + } + + public static void main(String[] args) { + JavaVMStackSOF_1 oom = new JavaVMStackSOF_1(); + try { + oom.stackLeak(); + } catch (Throwable e) { + System.out.println("stack length:" + oom.stackLength); + throw e; + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_2.java b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_2.java new file mode 100644 index 0000000..86d5710 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_2.java @@ -0,0 +1,26 @@ +package org.fenixsoft.jvm.chapter2; + +/** + * VM Args:-Xss128k + * + * @author zzm + */ +public class JavaVMStackSOF_2 { + + private int stackLength = 1; + + public void stackLeak() { + stackLength++; + stackLeak(); + } + + public static void main(String[] args) { + JavaVMStackSOF_2 oom = new JavaVMStackSOF_2(); + try { + oom.stackLeak(); + } catch (Throwable e) { + System.out.println("stack length:" + oom.stackLength); + throw e; + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_3.java b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_3.java new file mode 100644 index 0000000..8e16652 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/JavaVMStackSOF_3.java @@ -0,0 +1,66 @@ +package org.fenixsoft.jvm.chapter2; + +/** + * VM: JDK 1.0.2, Sun Classic VM + * + * @author zzm + */ +public class JavaVMStackSOF_3 { + private static int stackLength = 0; + + public static void test() { + long unused1, unused2, unused3, unused4, unused5, + unused6, unused7, unused8, unused9, unused10, + unused11, unused12, unused13, unused14, unused15, + unused16, unused17, unused18, unused19, unused20, + unused21, unused22, unused23, unused24, unused25, + unused26, unused27, unused28, unused29, unused30, + unused31, unused32, unused33, unused34, unused35, + unused36, unused37, unused38, unused39, unused40, + unused41, unused42, unused43, unused44, unused45, + unused46, unused47, unused48, unused49, unused50, + unused51, unused52, unused53, unused54, unused55, + unused56, unused57, unused58, unused59, unused60, + unused61, unused62, unused63, unused64, unused65, + unused66, unused67, unused68, unused69, unused70, + unused71, unused72, unused73, unused74, unused75, + unused76, unused77, unused78, unused79, unused80, + unused81, unused82, unused83, unused84, unused85, + unused86, unused87, unused88, unused89, unused90, + unused91, unused92, unused93, unused94, unused95, + unused96, unused97, unused98, unused99, unused100; + + stackLength ++; + test(); + + unused1 = unused2 = unused3 = unused4 = unused5 = + unused6 = unused7 = unused8 = unused9 = unused10 = + unused11 = unused12 = unused13 = unused14 = unused15 = + unused16 = unused17 = unused18 = unused19 = unused20 = + unused21 = unused22 = unused23 = unused24 = unused25 = + unused26 = unused27 = unused28 = unused29 = unused30 = + unused31 = unused32 = unused33 = unused34 = unused35 = + unused36 = unused37 = unused38 = unused39 = unused40 = + unused41 = unused42 = unused43 = unused44 = unused45 = + unused46 = unused47 = unused48 = unused49 = unused50 = + unused51 = unused52 = unused53 = unused54 = unused55 = + unused56 = unused57 = unused58 = unused59 = unused60 = + unused61 = unused62 = unused63 = unused64 = unused65 = + unused66 = unused67 = unused68 = unused69 = unused70 = + unused71 = unused72 = unused73 = unused74 = unused75 = + unused76 = unused77 = unused78 = unused79 = unused80 = + unused81 = unused82 = unused83 = unused84 = unused85 = + unused86 = unused87 = unused88 = unused89 = unused90 = + unused91 = unused92 = unused93 = unused94 = unused95 = + unused96 = unused97 = unused98 = unused99 = unused100 = 0; + } + + public static void main(String[] args) { + try { + test(); + }catch (Error e){ + System.out.println("stack length:" + stackLength); + throw e; + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_1.java b/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_1.java new file mode 100644 index 0000000..e41e14d --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_1.java @@ -0,0 +1,22 @@ +package org.fenixsoft.jvm.chapter2; + +import java.util.HashSet; +import java.util.Set; + +/** + * VM Args:-XX:PermSize=6M -XX:MaxPermSize=6M + * + * @author zzm + */ +public class RuntimeConstantPoolOOM_1 { + + public static void main(String[] args) { + // 使用Set保持着常量池引用,避免Full GC回收常量池行为 + Set set = new HashSet(); + // 在short范围内足以让6MB的PermSize产生OOM了 + short i = 0; + while (true) { + set.add(String.valueOf(i++).intern()); + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_2.java b/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_2.java new file mode 100644 index 0000000..c96bb21 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter2/RuntimeConstantPoolOOM_2.java @@ -0,0 +1,12 @@ +package org.fenixsoft.jvm.chapter2; + +public class RuntimeConstantPoolOOM_2 { + + public static void main(String[] args) { + String str1 = new StringBuilder("计算机").append("软件").toString(); + System.out.println(str1.intern() == str1); + + String str2 = new StringBuilder("ja").append("va").toString(); + System.out.println(str2.intern() == str2); + } +} diff --git a/src/org/fenixsoft/jvm/chapter3/FinalizeEscapeGC.java b/src/org/fenixsoft/jvm/chapter3/FinalizeEscapeGC.java new file mode 100644 index 0000000..946bd9c --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter3/FinalizeEscapeGC.java @@ -0,0 +1,50 @@ +package org.fenixsoft.jvm.chapter3; + +/** + * 此代码演示了两点: + * 1.对象可以在被GC时自我拯救。 + * 2.这种自救的机会只有一次,因为一个对象的finalize()方法最多只会被系统自动调用一次 + * + * @author zzm + */ +public class FinalizeEscapeGC { + + public static FinalizeEscapeGC SAVE_HOOK = null; + + public void isAlive() { + System.out.println("yes, i am still alive :)"); + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + System.out.println("finalize method executed!"); + FinalizeEscapeGC.SAVE_HOOK = this; + } + + public static void main(String[] args) throws Throwable { + SAVE_HOOK = new FinalizeEscapeGC(); + + //对象第一次成功拯救自己 + SAVE_HOOK = null; + System.gc(); + // 因为Finalizer方法优先级很低,暂停0.5秒,以等待它 + Thread.sleep(500); + if (SAVE_HOOK != null) { + SAVE_HOOK.isAlive(); + } else { + System.out.println("no, i am dead :("); + } + + // 下面这段代码与上面的完全相同,但是这次自救却失败了 + SAVE_HOOK = null; + System.gc(); + // 因为Finalizer方法优先级很低,暂停0.5秒,以等待它 + Thread.sleep(500); + if (SAVE_HOOK != null) { + SAVE_HOOK.isAlive(); + } else { + System.out.println("no, i am dead :("); + } + } +} diff --git a/src/org/fenixsoft/jvm/chapter3/ReferenceCountingGC.java b/src/org/fenixsoft/jvm/chapter3/ReferenceCountingGC.java new file mode 100644 index 0000000..173bb21 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter3/ReferenceCountingGC.java @@ -0,0 +1,31 @@ +package org.fenixsoft.jvm.chapter3; + +/** + * testGC()方法执行后,objA和objB会不会被GC呢? + * + * @author zzm + */ +public class ReferenceCountingGC { + + public Object instance = null; + + private static final int _1MB = 1024 * 1024; + + /** + * 这个成员属性的唯一意义就是占点内存,以便在能在GC日志中看清楚是否有回收过 + */ + private byte[] bigSize = new byte[2 * _1MB]; + + public static void testGC() { + ReferenceCountingGC objA = new ReferenceCountingGC(); + ReferenceCountingGC objB = new ReferenceCountingGC(); + objA.instance = objB; + objB.instance = objA; + + objA = null; + objB = null; + + // 假设在这行发生GC,objA和objB是否能被回收? + System.gc(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter3/TestSerialGCAllocation.java b/src/org/fenixsoft/jvm/chapter3/TestSerialGCAllocation.java new file mode 100644 index 0000000..0ecb8af --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter3/TestSerialGCAllocation.java @@ -0,0 +1,78 @@ +package org.fenixsoft.jvm.chapter3; + +/** + * VM参数:+XX:UseSerialGC + * @author zzm + */ +public class TestSerialGCAllocation { + + private static final int _1MB = 1024 * 1024; + + /** + * VM参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 + */ + public static void testAllocation() { + byte[] allocation1, allocation2, allocation3, allocation4; + allocation1 = new byte[2 * _1MB]; + allocation2 = new byte[2 * _1MB]; + allocation3 = new byte[2 * _1MB]; + allocation4 = new byte[4 * _1MB]; // 出现一次Minor GC + } + + /** + * VM参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 + * -XX:PretenureSizeThreshold=3145728 + */ + public static void testPretenureSizeThreshold() { + byte[] allocation; + allocation = new byte[4 * _1MB]; //直接分配在老年代中 + } + + /** + * VM参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 + * -XX:+PrintTenuringDistribution + */ + public static void testTenuringThreshold() { + byte[] allocation1, allocation2, allocation3; + allocation1 = new byte[_1MB / 4]; // 什么时候进入老年代决定于XX:MaxTenuringThreshold设置 + allocation2 = new byte[4 * _1MB]; + allocation3 = new byte[4 * _1MB]; + allocation3 = null; + allocation3 = new byte[4 * _1MB]; + } + + /** + * VM参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 + * -XX:+PrintTenuringDistribution + */ + public static void testTenuringThreshold2() { + byte[] allocation1, allocation2, allocation3, allocation4; + allocation1 = new byte[_1MB / 4]; // allocation1+allocation2大于survivo空间一半 + allocation2 = new byte[_1MB / 4]; + allocation3 = new byte[4 * _1MB]; + allocation4 = new byte[4 * _1MB]; + allocation4 = null; + allocation4 = new byte[4 * _1MB]; + } + + /** + * VM参数:-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:-HandlePromotionFailure + */ + public static void testHandlePromotion() { + byte[] allocation1, allocation2, allocation3, allocation4, allocation5, allocation6, allocation7; + allocation1 = new byte[2 * _1MB]; + allocation2 = new byte[2 * _1MB]; + allocation3 = new byte[2 * _1MB]; + allocation1 = null; + allocation4 = new byte[2 * _1MB]; + allocation5 = new byte[2 * _1MB]; + allocation6 = new byte[2 * _1MB]; + allocation4 = null; + allocation5 = null; + allocation6 = null; + allocation7 = new byte[2 * _1MB]; + } + + + +} diff --git a/src/org/fenixsoft/jvm/chapter4/BTraceTest.java b/src/org/fenixsoft/jvm/chapter4/BTraceTest.java new file mode 100644 index 0000000..c187bb5 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter4/BTraceTest.java @@ -0,0 +1,48 @@ +package org.fenixsoft.jvm.chapter4; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +/** + * @author zzm + */ +public class BTraceTest { + + public int add(int a, int b) { + return a + b; + } + + public static void main(String[] args) throws IOException { + BTraceTest test = new BTraceTest(); + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + for (int i = 0; i < 10; i++) { + reader.readLine(); + int a = (int) Math.round(Math.random() * 1000); + int b = (int) Math.round(Math.random() * 1000); + System.out.println(test.add(a, b)); + } + } +} + +/* BTrace Script Template +import com.sun.btrace.annotations.*; + import static com.sun.btrace.BTraceUtils.*; + +@BTrace +public class TracingScript { + @OnMethod( + clazz="org.fenixsoft.monitoring.BTraceTest", + method="add", + location=@Location(Kind.RETURN) + ) + + public static void func(@Self org.fenixsoft.monitoring.BTraceTest instance,int a,int b,@Return int result) { + println("调用堆栈:"); + jstack(); + println(strcat("方法参数A:",str(a))); + println(strcat("方法参数B:",str(b))); + println(strcat("方法结果:",str(result))); + } +} +*/ \ No newline at end of file diff --git a/src/org/fenixsoft/jvm/chapter4/JConsoleTestCase.java b/src/org/fenixsoft/jvm/chapter4/JConsoleTestCase.java new file mode 100644 index 0000000..49d4c57 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter4/JConsoleTestCase.java @@ -0,0 +1,29 @@ +package org.fenixsoft.jvm.chapter4; + +import java.util.ArrayList; +import java.util.List; + +public class JConsoleTestCase { + + /** + * 内存占位符对象,一个OOMObject大约占64K + */ + static class OOMObject { + public byte[] placeholder = new byte[64 * 1024]; + } + + public static void fillHeap(int num) throws InterruptedException { + List list = new ArrayList(); + for (int i = 0; i < num; i++) { + // 稍作延时,令监视曲线的变化更加明显 + Thread.sleep(50); + list.add(new OOMObject()); + } + System.gc(); + } + + public static void main(String[] args) throws Exception { + fillHeap(1000); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter4/JHSDBTestCase.java b/src/org/fenixsoft/jvm/chapter4/JHSDBTestCase.java new file mode 100644 index 0000000..c9ec249 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter4/JHSDBTestCase.java @@ -0,0 +1,24 @@ +package org.fenixsoft.jvm.chapter4; + +/** + * staticObj、instanceObj、localObj存放在哪里? + */ +public class JHSDBTestCase { + + static class Test { + static ObjectHolder staticObj = new ObjectHolder(); + ObjectHolder instanceObj = new ObjectHolder(); + + void foo() { + ObjectHolder localObj = new ObjectHolder(); + System.out.println("done"); // 这里设一个断点 + } + } + + private static class ObjectHolder {} + + public static void main(String[] args) { + Test test = new JHSDBTestCase.Test(); + test.foo(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_1.java b/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_1.java new file mode 100644 index 0000000..5162b2c --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_1.java @@ -0,0 +1,52 @@ +package org.fenixsoft.jvm.chapter4; + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +/** + * @author zzm + */ +public class ThreadDeadLockTestCase_1 { + /** + * 线程死循环演示 + */ + public static void createBusyThread() { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + while (true) // 第41行 + ; + } + }, "testBusyThread"); + thread.start(); + } + + /** + * 线程锁等待演示 + */ + public static void createLockThread(final Object lock) { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + synchronized (lock) { + try { + lock.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + }, "testLockThread"); + thread.start(); + } + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + br.readLine(); + createBusyThread(); + br.readLine(); + Object obj = new Object(); + createLockThread(obj); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_2.java b/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_2.java new file mode 100644 index 0000000..efd5a11 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter4/ThreadDeadLockTestCase_2.java @@ -0,0 +1,36 @@ +package org.fenixsoft.jvm.chapter4; + +/** + * @author zzm + */ +public class ThreadDeadLockTestCase_2 { + + /** + * 线程死锁等待演示 + */ + static class SynAddRunnalbe implements Runnable { + int a, b; + public SynAddRunnalbe(int a, int b) { + this.a = a; + this.b = b; + } + + @Override + public void run() { + synchronized (Integer.valueOf(a)) { + synchronized (Integer.valueOf(b)) { + System.out.println(a + b); + } + } + } + } + + public static void main(String[] args) { + for (int i = 0; i < 100; i++) { + new Thread(new SynAddRunnalbe(1, 2)).start(); + new Thread(new SynAddRunnalbe(2, 1)).start(); + } + } + + +} diff --git a/src/org/fenixsoft/jvm/chapter5/EclipseStartTime_1.0.0.201011281102.jar b/src/org/fenixsoft/jvm/chapter5/EclipseStartTime_1.0.0.201011281102.jar new file mode 100644 index 0000000000000000000000000000000000000000..828021a0b178010c69fce6fa38a31519a55ce40d GIT binary patch literal 4012 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 loadClass(String name) throws ClassNotFoundException { + try { + String fileName = name.substring(name.lastIndexOf(".") + 1) + ".class"; + InputStream is = getClass().getResourceAsStream(fileName); + if (is == null) { + return super.loadClass(name); + } + byte[] b = new byte[is.available()]; + is.read(b); + return defineClass(name, b, 0, b.length); + } catch (IOException e) { + throw new ClassNotFoundException(name); + } + } + }; + + Object obj = myLoader.loadClass("org.fenixsoft.jvm.chapter7.ClassLoaderTest").newInstance(); + + System.out.println(obj.getClass()); + System.out.println(obj instanceof org.fenixsoft.jvm.chapter7.ClassLoaderTest); + } +} diff --git a/src/org/fenixsoft/jvm/chapter7/ConstClass.java b/src/org/fenixsoft/jvm/chapter7/ConstClass.java new file mode 100644 index 0000000..44ab6bb --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/ConstClass.java @@ -0,0 +1,14 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * 被动使用类字段演示三: + * 常量在编译阶段会存入调用类的常量池中,本质上没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化。 + **/ +public class ConstClass { + + static { + System.out.println("ConstClass init!"); + } + + public static final String HELLOWORLD = "hello world"; +} diff --git a/src/org/fenixsoft/jvm/chapter7/DeadLoopTestCase.java b/src/org/fenixsoft/jvm/chapter7/DeadLoopTestCase.java new file mode 100644 index 0000000..07caa71 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/DeadLoopTestCase.java @@ -0,0 +1,34 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * @author zzm + */ +public class DeadLoopTestCase { + + static class DeadLoopClass { + static { + // 如果不加上这个if语句,编译器将提示“Initializer does not complete normally”并拒绝编译 + if (true) { + System.out.println(Thread.currentThread() + "init DeadLoopClass"); + while (true) { + } + } + } + } + + public static void main(String[] args) { + Runnable script = new Runnable() { + public void run() { + System.out.println(Thread.currentThread() + "start"); + DeadLoopClass dlc = new DeadLoopClass(); + System.out.println(Thread.currentThread() + " run over"); + } + }; + + Thread thread1 = new Thread(script); + Thread thread2 = new Thread(script); + thread1.start(); + thread2.start(); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter7/FieldResolution.java b/src/org/fenixsoft/jvm/chapter7/FieldResolution.java new file mode 100644 index 0000000..049b42b --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/FieldResolution.java @@ -0,0 +1,31 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * @author zzm + */ +public class FieldResolution { + + interface Interface0 { + int A = 0; + } + + interface Interface1 extends Interface0 { + int A = 1; + } + + interface Interface2 { + int A = 2; + } + + static class Parent implements Interface1 { + public static int A = 3; + } + + static class Sub extends Parent implements Interface2 { + public static int A = 4; + } + + public static void main(String[] args) { + System.out.println(Sub.A); + } +} diff --git a/src/org/fenixsoft/jvm/chapter7/NotInitialization_1.java b/src/org/fenixsoft/jvm/chapter7/NotInitialization_1.java new file mode 100644 index 0000000..17addca --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/NotInitialization_1.java @@ -0,0 +1,12 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * 非主动使用类字段演示 + **/ +public class NotInitialization_1 { + + public static void main(String[] args) { + System.out.println(SubClass.value); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter7/NotInitialization_2.java b/src/org/fenixsoft/jvm/chapter7/NotInitialization_2.java new file mode 100644 index 0000000..89903af --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/NotInitialization_2.java @@ -0,0 +1,13 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * 被动使用类字段演示二: + * 通过数组定义来引用类,不会触发此类的初始化 + **/ +public class NotInitialization_2 { + + public static void main(String[] args) { + SuperClass[] sca = new SuperClass[10]; + } + +} diff --git a/src/org/fenixsoft/jvm/chapter7/NotInitialization_3.java b/src/org/fenixsoft/jvm/chapter7/NotInitialization_3.java new file mode 100644 index 0000000..885f301 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/NotInitialization_3.java @@ -0,0 +1,11 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * 非主动使用类字段演示 + **/ +public class NotInitialization_3 { + + public static void main(String[] args) { + System.out.println(ConstClass.HELLOWORLD); + } +} diff --git a/src/org/fenixsoft/jvm/chapter7/SubClass.java b/src/org/fenixsoft/jvm/chapter7/SubClass.java new file mode 100644 index 0000000..ba82030 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/SubClass.java @@ -0,0 +1,11 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * @author zzm + */ +public class SubClass extends SuperClass { + + static { + System.out.println("SubClass init!"); + } +} diff --git a/src/org/fenixsoft/jvm/chapter7/SuperClass.java b/src/org/fenixsoft/jvm/chapter7/SuperClass.java new file mode 100644 index 0000000..6184cc3 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter7/SuperClass.java @@ -0,0 +1,14 @@ +package org.fenixsoft.jvm.chapter7; + +/** + * 被动使用类字段演示一: + * 通过子类引用父类的静态字段,不会导致子类初始化 + **/ +public class SuperClass { + + static { + System.out.println("SuperClass init!"); + } + + public static int value = 123; +} \ No newline at end of file diff --git a/src/org/fenixsoft/jvm/chapter8/Dispatch.java b/src/org/fenixsoft/jvm/chapter8/Dispatch.java new file mode 100644 index 0000000..242fd7e --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/Dispatch.java @@ -0,0 +1,39 @@ +package org.fenixsoft.jvm.chapter8; + +/** + * 单分派、多分派演示 + * @author zzm + */ +public class Dispatch { + + static class QQ {} + + static class _360 {} + + public static class Father { + public void hardChoice(QQ arg) { + System.out.println("father choose qq"); + } + + public void hardChoice(_360 arg) { + System.out.println("father choose 360"); + } + } + + public static class Son extends Father { + public void hardChoice(QQ arg) { + System.out.println("son choose qq"); + } + + public void hardChoice(_360 arg) { + System.out.println("son choose 360"); + } + } + + public static void main(String[] args) { + Father father = new Father(); + Father son = new Son(); + father.hardChoice(new _360()); + son.hardChoice(new QQ()); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/DynamicDispatch.java b/src/org/fenixsoft/jvm/chapter8/DynamicDispatch.java new file mode 100644 index 0000000..d1ee86b --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/DynamicDispatch.java @@ -0,0 +1,35 @@ +package org.fenixsoft.jvm.chapter8; + +/** + * 方法动态分派演示 + * @author zzm + */ +public class DynamicDispatch { + + static abstract class Human { + protected abstract void sayHello(); + } + + static class Man extends Human { + @Override + protected void sayHello() { + System.out.println("man say hello"); + } + } + + static class Woman extends Human { + @Override + protected void sayHello() { + System.out.println("woman say hello"); + } + } + + public static void main(String[] args) { + Human man = new Man(); + Human woman = new Woman(); + man.sayHello(); + woman.sayHello(); + man = new Woman(); + man.sayHello(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/FieldHasNoPolymorphic.java b/src/org/fenixsoft/jvm/chapter8/FieldHasNoPolymorphic.java new file mode 100644 index 0000000..b3509aa --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/FieldHasNoPolymorphic.java @@ -0,0 +1,39 @@ +package org.fenixsoft.jvm.chapter8; + +/** + * 字段不参与多态 + * @author zzm + */ +public class FieldHasNoPolymorphic { + + static class Father { + public int money = 1; + + public Father() { + money = 2; + showMeTheMoney(); + } + + public void showMeTheMoney() { + System.out.println("I am Father, i have $" + money); + } + } + + static class Son extends Father { + public int money = 3; + + public Son() { + money = 4; + showMeTheMoney(); + } + + public void showMeTheMoney() { + System.out.println("I am Son, i have $" + money); + } + } + + public static void main(String[] args) { + Father gay = new Son(); + System.out.println("This gay has $" + gay.money); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_1.java b/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_1.java new file mode 100644 index 0000000..ee9673d --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_1.java @@ -0,0 +1,41 @@ +package org.fenixsoft.jvm.chapter8; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodType; + +import static java.lang.invoke.MethodHandles.lookup; + +/** + * @author zzm + */ +public class GrandFatherTestCase_1 { + + class GrandFather { + void thinking() { + System.out.println("i am grandfather"); + } + } + + class Father extends GrandFather { + void thinking() { + System.out.println("i am father"); + } + } + + class Son extends Father { + void thinking() { + try { + MethodType mt = MethodType.methodType(void.class); + MethodHandle mh = lookup().findSpecial(GrandFather.class, + "thinking", mt, getClass()); + mh.invoke(this); + } catch (Throwable e) { + } + } + } + + public static void main(String[] args) { + (new GrandFatherTestCase_1().new Son()).thinking(); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_2.java b/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_2.java new file mode 100644 index 0000000..0178cf7 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/GrandFatherTestCase_2.java @@ -0,0 +1,43 @@ +package org.fenixsoft.jvm.chapter8; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.lang.reflect.Field; + +/** + * @author zzm + */ +public class GrandFatherTestCase_2 { + + class GrandFather { + void thinking() { + System.out.println("i am grandfather"); + } + } + + class Father extends GrandFatherTestCase_2.GrandFather { + void thinking() { + System.out.println("i am father"); + } + } + + class Son extends GrandFatherTestCase_2.Father { + void thinking() { + try { + MethodType mt = MethodType.methodType(void.class); + Field lookupImpl = MethodHandles.Lookup.class.getDeclaredField("IMPL_LOOKUP"); + lookupImpl.setAccessible(true); + MethodHandle mh = ((MethodHandles.Lookup) lookupImpl.get(null)).findSpecial(GrandFather.class,"thinking", mt, GrandFather.class); + mh.invoke(this); + } catch (Throwable e) { + } + } + + } + + public static void main(String[] args) { + (new GrandFatherTestCase_2().new Son()).thinking(); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter8/InvokeDynamicTest.java b/src/org/fenixsoft/jvm/chapter8/InvokeDynamicTest.java new file mode 100644 index 0000000..c018633 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/InvokeDynamicTest.java @@ -0,0 +1,37 @@ +package org.fenixsoft.jvm.chapter8; + +import java.lang.invoke.*; + +import static java.lang.invoke.MethodHandles.lookup; + +public class InvokeDynamicTest { + + public static void main(String[] args) throws Throwable { + INDY_BootstrapMethod().invokeExact("icyfenix"); + } + + public static void testMethod(String s) { + System.out.println("hello String:" + s); + } + + public static CallSite BootstrapMethod(MethodHandles.Lookup lookup, String name, MethodType mt) throws Throwable { + return new ConstantCallSite(lookup.findStatic(InvokeDynamicTest.class, name, mt)); + } + + private static MethodType MT_BootstrapMethod() { + return MethodType + .fromMethodDescriptorString( + "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;", + null); + } + + private static MethodHandle MH_BootstrapMethod() throws Throwable { + return lookup().findStatic(InvokeDynamicTest.class, "BootstrapMethod", MT_BootstrapMethod()); + } + + private static MethodHandle INDY_BootstrapMethod() throws Throwable { + CallSite cs = (CallSite) MH_BootstrapMethod().invokeWithArguments(lookup(), "testMethod", + MethodType.fromMethodDescriptorString("(Ljava/lang/String;)V", null)); + return cs.dynamicInvoker(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/MethodHandleTest.java b/src/org/fenixsoft/jvm/chapter8/MethodHandleTest.java new file mode 100644 index 0000000..2e5656f --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/MethodHandleTest.java @@ -0,0 +1,33 @@ +package org.fenixsoft.jvm.chapter8; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodType; + +import static java.lang.invoke.MethodHandles.lookup; + +/** + * JSR 292 MethodHandle基础用法演示 + * @author zzm + */ +public class MethodHandleTest { + + static class ClassA { + public void println(String s) { + System.out.println(s); + } + } + + public static void main(String[] args) throws Throwable { + Object obj = System.currentTimeMillis() % 2 == 0 ? System.out : new ClassA(); + // 无论obj最终是哪个实现类,下面这句都能正确调用到println方法。 + getPrintlnMH(obj).invokeExact("icyfenix"); + } + + private static MethodHandle getPrintlnMH(Object reveiver) throws Throwable { + // MethodType:代表“方法类型”,包含了方法的返回值(methodType()的第一个参数)和具体参数(methodType()第二个及以后的参数)。 + MethodType mt = MethodType.methodType(void.class, String.class); + // lookup()方法来自于MethodHandles.lookup,这句的作用是在指定类中查找符合给定的方法名称、方法类型,并且符合调用权限的方法句柄。 + // 因为这里调用的是一个虚方法,按照Java语言的规则,方法第一个参数是隐式的,代表该方法的接收者,也即是this指向的对象,这个参数以前是放在参数列表中进行传递,现在提供了bindTo()方法来完成这件事情。 + return lookup().findVirtual(reveiver.getClass(), "println", mt).bindTo(reveiver); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/Overload.java b/src/org/fenixsoft/jvm/chapter8/Overload.java new file mode 100644 index 0000000..63b4328 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/Overload.java @@ -0,0 +1,41 @@ +package org.fenixsoft.jvm.chapter8; + +import java.io.Serializable; + +/** + * @author zzm + */ +public class Overload { + + public static void sayHello(Object arg) { + System.out.println("hello Object"); + } + + public static void sayHello(int arg) { + System.out.println("hello int"); + } + + public static void sayHello(long arg) { + System.out.println("hello long"); + } + + public static void sayHello(Character arg) { + System.out.println("hello Character"); + } + + public static void sayHello(char arg) { + System.out.println("hello char"); + } + + public static void sayHello(char... arg) { + System.out.println("hello char ..."); + } + + public static void sayHello(Serializable arg) { + System.out.println("hello Serializable"); + } + + public static void main(String[] args) { + sayHello('a'); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/StaticDispatch.java b/src/org/fenixsoft/jvm/chapter8/StaticDispatch.java new file mode 100644 index 0000000..acb1d49 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/StaticDispatch.java @@ -0,0 +1,37 @@ +package org.fenixsoft.jvm.chapter8; + +/** + * 方法静态分派演示 + * @author zzm + */ +public class StaticDispatch { + + static abstract class Human { + } + + static class Man extends Human { + } + + static class Woman extends Human { + } + + public void sayHello(Human guy) { + System.out.println("hello,guy!"); + } + + public void sayHello(Man guy) { + System.out.println("hello,gentleman!"); + } + + public void sayHello(Woman guy) { + System.out.println("hello,lady!"); + } + + public static void main(String[] args) { + Human man = new Man(); + Human woman = new Woman(); + StaticDispatch sr = new StaticDispatch(); + sr.sayHello(man); + sr.sayHello(woman); + } +} diff --git a/src/org/fenixsoft/jvm/chapter8/StaticResolution.java b/src/org/fenixsoft/jvm/chapter8/StaticResolution.java new file mode 100644 index 0000000..74b63a9 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter8/StaticResolution.java @@ -0,0 +1,19 @@ +package org.fenixsoft.jvm.chapter8; + +/** + * 方法静态解析演示 + * + * @author zzm + */ +public class StaticResolution { + + public static void sayHello() { + System.out.println("hello world"); + } + + public static void main(String[] args) { + StaticResolution.sayHello(); + } + +} + diff --git a/src/org/fenixsoft/jvm/chapter9/ByteUtils.java b/src/org/fenixsoft/jvm/chapter9/ByteUtils.java new file mode 100644 index 0000000..0aa80ad --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/ByteUtils.java @@ -0,0 +1,44 @@ +package org.fenixsoft.jvm.chapter9; + +/** + * Bytes数组处理工具 + * + * @author + */ +public class ByteUtils { + + public static int bytes2Int(byte[] b, int start, int len) { + int sum = 0; + int end = start + len; + for (int i = start; i < end; i++) { + int n = ((int) b[i]) & 0xff; + n <<= (--len) * 8; + sum = n + sum; + } + return sum; + } + + public static byte[] int2Bytes(int value, int len) { + byte[] b = new byte[len]; + for (int i = 0; i < len; i++) { + b[len - i - 1] = (byte) ((value >> 8 * i) & 0xff); + } + return b; + } + + public static String bytes2String(byte[] b, int start, int len) { + return new String(b, start, len); + } + + public static byte[] string2Bytes(String str) { + return str.getBytes(); + } + + public static byte[] bytesReplace(byte[] originalBytes, int offset, int len, byte[] replaceBytes) { + byte[] newBytes = new byte[originalBytes.length + (replaceBytes.length - len)]; + System.arraycopy(originalBytes, 0, newBytes, 0, offset); + System.arraycopy(replaceBytes, 0, newBytes, offset, replaceBytes.length); + System.arraycopy(originalBytes, offset + len, newBytes, offset + replaceBytes.length, originalBytes.length - offset - len); + return newBytes; + } +} diff --git a/src/org/fenixsoft/jvm/chapter9/ClassModifier.java b/src/org/fenixsoft/jvm/chapter9/ClassModifier.java new file mode 100644 index 0000000..95e951e --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/ClassModifier.java @@ -0,0 +1,74 @@ +package org.fenixsoft.jvm.chapter9; + +/** + * 修改Class文件,暂时只提供修改常量池常量的功能 + * + * @author zzm + */ +public class ClassModifier { + + /** + * Class文件中常量池的起始偏移 + */ + private static final int CONSTANT_POOL_COUNT_INDEX = 8; + + /** + * CONSTANT_Utf8_info常量的tag标志 + */ + private static final int CONSTANT_Utf8_info = 1; + + /** + * 常量池中11种常量所占的长度,CONSTANT_Utf8_info型常量除外,因为它不是定长的 + */ + private static final int[] CONSTANT_ITEM_LENGTH = {-1, -1, -1, 5, 5, 9, 9, 3, 3, 5, 5, 5, 5}; + + private static final int u1 = 1; + private static final int u2 = 2; + + private byte[] classByte; + + public ClassModifier(byte[] classByte) { + this.classByte = classByte; + } + + /** + * 修改常量池中CONSTANT_Utf8_info常量的内容 + * + * @param oldStr 修改前的字符串 + * @param newStr 修改后的字符串 + * @return 修改结果 + */ + public byte[] modifyUTF8Constant(String oldStr, String newStr) { + int cpc = getConstantPoolCount(); + int offset = CONSTANT_POOL_COUNT_INDEX + u2; + for (int i = 0; i < cpc; i++) { + int tag = ByteUtils.bytes2Int(classByte, offset, u1); + if (tag == CONSTANT_Utf8_info) { + int len = ByteUtils.bytes2Int(classByte, offset + u1, u2); + offset += (u1 + u2); + String str = ByteUtils.bytes2String(classByte, offset, len); + if (str.equalsIgnoreCase(oldStr)) { + byte[] strBytes = ByteUtils.string2Bytes(newStr); + byte[] strLen = ByteUtils.int2Bytes(newStr.length(), u2); + classByte = ByteUtils.bytesReplace(classByte, offset - u2, u2, strLen); + classByte = ByteUtils.bytesReplace(classByte, offset, len, strBytes); + return classByte; + } else { + offset += len; + } + } else { + offset += CONSTANT_ITEM_LENGTH[tag]; + } + } + return classByte; + } + + /** + * 获取常量池中常量的数量 + * + * @return 常量池数量 + */ + public int getConstantPoolCount() { + return ByteUtils.bytes2Int(classByte, CONSTANT_POOL_COUNT_INDEX, u2); + } +} diff --git a/src/org/fenixsoft/jvm/chapter9/DynamicProxyTest.java b/src/org/fenixsoft/jvm/chapter9/DynamicProxyTest.java new file mode 100644 index 0000000..7d0573b --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/DynamicProxyTest.java @@ -0,0 +1,43 @@ +package org.fenixsoft.jvm.chapter9; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +/** + * @author zzm + */ +public class DynamicProxyTest { + + interface IHello { + void sayHello(); + } + + static class Hello implements IHello { + @Override + public void sayHello() { + System.out.println("hello world"); + } + } + + static class DynamicProxy implements InvocationHandler { + + Object originalObj; + + Object bind(Object originalObj) { + this.originalObj = originalObj; + return Proxy.newProxyInstance(originalObj.getClass().getClassLoader(), originalObj.getClass().getInterfaces(), this); + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + System.out.println("welcome"); + return method.invoke(originalObj, args); + } + } + + public static void main(String[] args) { + IHello hello = (IHello) new DynamicProxy().bind(new Hello()); + hello.sayHello(); + } +} diff --git a/src/org/fenixsoft/jvm/chapter9/HackSystem.java b/src/org/fenixsoft/jvm/chapter9/HackSystem.java new file mode 100644 index 0000000..1588dcf --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/HackSystem.java @@ -0,0 +1,54 @@ +package org.fenixsoft.jvm.chapter9; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.PrintStream; + +/** + * 为Javaclass劫持java.lang.System提供支持 + * 除了out和err外,其余的都直接转发给System处理 + * + * @author zzm + */ +public class HackSystem { + + public final static InputStream in = System.in; + + private static ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + + public final static PrintStream out = new PrintStream(buffer); + + public final static PrintStream err = out; + + public static String getBufferString() { + return buffer.toString(); + } + + public static void clearBuffer() { + buffer.reset(); + } + + public static void setSecurityManager(final SecurityManager s) { + System.setSecurityManager(s); + } + + public static SecurityManager getSecurityManager() { + return System.getSecurityManager(); + } + + public static long currentTimeMillis() { + return System.currentTimeMillis(); + } + + public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) { + System.arraycopy(src, srcPos, dest, destPos, length); + } + + public static int identityHashCode(Object x) { + return System.identityHashCode(x); + } + + // 下面所有的方法都与java.lang.System的名称一样 + // 实现都是字节转调System的对应方法 + // 因版面原因,省略了其他方法 +} diff --git a/src/org/fenixsoft/jvm/chapter9/HotSwapClassLoader.java b/src/org/fenixsoft/jvm/chapter9/HotSwapClassLoader.java new file mode 100644 index 0000000..0c8dd6b --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/HotSwapClassLoader.java @@ -0,0 +1,20 @@ +package org.fenixsoft.jvm.chapter9; + +/** + * 为了多次载入执行类而加入的加载器 + * 把defineClass方法开放出来,只有外部显式调用的时候才会使用到loadByte方法 + * 由虚拟机调用时,仍然按照原有的双亲委派规则使用loadClass方法进行类加载 + * + * @author zzm + */ +public class HotSwapClassLoader extends ClassLoader { + + public HotSwapClassLoader() { + super(HotSwapClassLoader.class.getClassLoader()); + } + + public Class loadByte(byte[] classByte) { + return defineClass(null, classByte, 0, classByte.length); + } + +} diff --git a/src/org/fenixsoft/jvm/chapter9/JavaclassExecuter.java b/src/org/fenixsoft/jvm/chapter9/JavaclassExecuter.java new file mode 100644 index 0000000..e7aef13 --- /dev/null +++ b/src/org/fenixsoft/jvm/chapter9/JavaclassExecuter.java @@ -0,0 +1,34 @@ +package org.fenixsoft.jvm.chapter9; + +import java.lang.reflect.Method; + +/** + * Javaclass执行工具 + * + * @author zzm + */ +public class JavaclassExecuter { + + /** + * 执行外部传过来的代表一个Java类的Byte数组
+ * 将输入类的byte数组中代表java.lang.System的CONSTANT_Utf8_info常量修改为劫持后的HackSystem类 + * 执行方法为该类的static main(String[] args)方法,输出结果为该类向System.out/err输出的信息 + * + * @param classByte 代表一个Java类的Byte数组 + * @return 执行结果 + */ + public static String execute(byte[] classByte) { + HackSystem.clearBuffer(); + ClassModifier cm = new ClassModifier(classByte); + byte[] modiBytes = cm.modifyUTF8Constant("java/lang/System", "org/fenixsoft/classloading/execute/HackSystem"); + HotSwapClassLoader loader = new HotSwapClassLoader(); + Class clazz = loader.loadByte(modiBytes); + try { + Method method = clazz.getMethod("main", new Class[]{String[].class}); + method.invoke(null, new String[]{null}); + } catch (Throwable e) { + e.printStackTrace(HackSystem.out); + } + return HackSystem.getBufferString(); + } +}