classissubclassof.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 383 行
JAVA
383 行
/* * @(#)ClassisSubclassOf.java 1.10 06/10/10 * * Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. * *//* This test case is created to force a C stack overflow in * CVMimplementsInterface(). It first loads all super classes in the * class hierarchy in a way that will cause them not to link, and * then it uses instanceof to force C recursion in CVMimplementsInterface(). */import java.io.PrintStream;public class ClassisSubclassOf implements Runnable { public static void main(String args[]) { Thread t = new Thread(new ClassisSubclassOf()); t.start(); } public void run() { try { Class [] argTypes = new Class[300]; /* Load all 295 classes and Some_Interface in a non-recursive * way and without causing them to link. */ for (int i=0; i < 295; i++) { argTypes[i] = Class.forName("dl" + String.valueOf(i), false, getClass().getClassLoader()); System.out.println("Load class " + "dl" + String.valueOf(i)); } Class b = Class.forName("Some_Interface", false, getClass().getClassLoader()); System.out.println("Load interface " + "Some_Interface" ); /* Create a dl294 array. By using an array, we can avoid causing * the class hierarchy to be linked. */ dl294 [][] n = new dl294[1][2]; /* * Using instaceof here will cause deep recursion in * CVMimplementsInterface. Note that recursion will only happen * if the class hierachry is still unlinked, which is why * are using array types. */ if (! (n instanceof Some_Interface[][]) ) System.out.print("x is not instanceof Some_Interface[][]\n" + "Test INAFFECTIVE: no stack overflow. Try reducing the\n" + "stack size by using -Xss32k. If you still get this\n" + "message, then you are running on a platform that has \n" + "less stack usage than sparc, and the interface hierarchy\n" + "of the test is not deep enough to cause a StackOverflowError.\n"); } catch (StackOverflowError s) { s.printStackTrace(); System.out.println("Test PASSED: StackOverflowError thrown."); } catch (Throwable e) { System.out.println("Test FAILED: " + e + " thrown."); } }}interface dl0 {}interface dl1 extends dl0 {}interface dl2 extends dl1 {}interface dl3 extends dl2 {}interface dl4 extends dl3 {}interface dl5 extends dl4 {}interface dl6 extends dl5 {}interface dl7 extends dl6 {}interface dl8 extends dl7 {}interface dl9 extends dl8 {}interface dl10 extends dl9 {}interface dl11 extends dl10 {}interface dl12 extends dl11 {}interface dl13 extends dl12 {}interface dl14 extends dl13 {}interface dl15 extends dl14 {}interface dl16 extends dl15 {}interface dl17 extends dl16 {}interface dl18 extends dl17 {}interface dl19 extends dl18 {}interface dl20 extends dl19 {}interface dl21 extends dl20 {}interface dl22 extends dl21 {}interface dl23 extends dl22 {}interface dl24 extends dl23 {}interface dl25 extends dl24 {}interface dl26 extends dl25 {}interface dl27 extends dl26 {}interface dl28 extends dl27 {}interface dl29 extends dl28 {}interface dl30 extends dl29 {}interface dl31 extends dl30 {}interface dl32 extends dl31 {}interface dl33 extends dl32 {}interface dl34 extends dl33 {}interface dl35 extends dl34 {}interface dl36 extends dl35 {}interface dl37 extends dl36 {}interface dl38 extends dl37 {}interface dl39 extends dl38 {}interface dl40 extends dl39 {}interface dl41 extends dl40 {}interface dl42 extends dl41 {}interface dl43 extends dl42 {}interface dl44 extends dl43 {}interface dl45 extends dl44 {}interface dl46 extends dl45 {}interface dl47 extends dl46 {}interface dl48 extends dl47 {}interface dl49 extends dl48 {}interface dl50 extends dl49 {}interface dl51 extends dl50 {}interface dl52 extends dl51 {}interface dl53 extends dl52 {}interface dl54 extends dl53 {}interface dl55 extends dl54 {}interface dl56 extends dl55 {}interface dl57 extends dl56 {}interface dl58 extends dl57 {}interface dl59 extends dl58 {}interface dl60 extends dl59 {}interface dl61 extends dl60 {}interface dl62 extends dl61 {}interface dl63 extends dl62 {}interface dl64 extends dl63 {}interface dl65 extends dl64 {}interface dl66 extends dl65 {}interface dl67 extends dl66 {}interface dl68 extends dl67 {}interface dl69 extends dl68 {}interface dl70 extends dl69 {}interface dl71 extends dl70 {}interface dl72 extends dl71 {}interface dl73 extends dl72 {}interface dl74 extends dl73 {}interface dl75 extends dl74 {}interface dl76 extends dl75 {}interface dl77 extends dl76 {}interface dl78 extends dl77 {}interface dl79 extends dl78 {}interface dl80 extends dl79 {}interface dl81 extends dl80 {}interface dl82 extends dl81 {}interface dl83 extends dl82 {}interface dl84 extends dl83 {}interface dl85 extends dl84 {}interface dl86 extends dl85 {}interface dl87 extends dl86 {}interface dl88 extends dl87 {}interface dl89 extends dl88 {}interface dl90 extends dl89 {}interface dl91 extends dl90 {}interface dl92 extends dl91 {}interface dl93 extends dl92 {}interface dl94 extends dl93 {}interface dl95 extends dl94 {}interface dl96 extends dl95 {}interface dl97 extends dl96 {}interface dl98 extends dl97 {}interface dl99 extends dl98 {}interface dl100 extends dl99 {}interface dl101 extends dl100 {}interface dl102 extends dl101 {}interface dl103 extends dl102 {}interface dl104 extends dl103 {}interface dl105 extends dl104 {}interface dl106 extends dl105 {}interface dl107 extends dl106 {}interface dl108 extends dl107 {}interface dl109 extends dl108 {}interface dl110 extends dl109 {}interface dl111 extends dl110 {}interface dl112 extends dl111 {}interface dl113 extends dl112 {}interface dl114 extends dl113 {}interface dl115 extends dl114 {}interface dl116 extends dl115 {}interface dl117 extends dl116 {}interface dl118 extends dl117 {}interface dl119 extends dl118 {}interface dl120 extends dl119 {}interface dl121 extends dl120 {}interface dl122 extends dl121 {}interface dl123 extends dl122 {}interface dl124 extends dl123 {}interface dl125 extends dl124 {}interface dl126 extends dl125 {}interface dl127 extends dl126 {}interface dl128 extends dl127 {}interface dl129 extends dl128 {}interface dl130 extends dl129 {}interface dl131 extends dl130 {}interface dl132 extends dl131 {}interface dl133 extends dl132 {}interface dl134 extends dl133 {}interface dl135 extends dl134 {}interface dl136 extends dl135 {}interface dl137 extends dl136 {}interface dl138 extends dl137 {}interface dl139 extends dl138 {}interface dl140 extends dl139 {}interface dl141 extends dl140 {}interface dl142 extends dl141 {}interface dl143 extends dl142 {}interface dl144 extends dl143 {}interface dl145 extends dl144 {}interface dl146 extends dl145 {}interface dl147 extends dl146 {}interface dl148 extends dl147 {}interface dl149 extends dl148 {}interface dl150 extends dl149 {}interface dl151 extends dl150 {}interface dl152 extends dl151 {}interface dl153 extends dl152 {}interface dl154 extends dl153 {}interface dl155 extends dl154 {}interface dl156 extends dl155 {}interface dl157 extends dl156 {}interface dl158 extends dl157 {}interface dl159 extends dl158 {}interface dl160 extends dl159 {}interface dl161 extends dl160 {}interface dl162 extends dl161 {}interface dl163 extends dl162 {}interface dl164 extends dl163 {}interface dl165 extends dl164 {}interface dl166 extends dl165 {}interface dl167 extends dl166 {}interface dl168 extends dl167 {}interface dl169 extends dl168 {}interface dl170 extends dl169 {}interface dl171 extends dl170 {}interface dl172 extends dl171 {}interface dl173 extends dl172 {}interface dl174 extends dl173 {}interface dl175 extends dl174 {}interface dl176 extends dl175 {}interface dl177 extends dl176 {}interface dl178 extends dl177 {}interface dl179 extends dl178 {}interface dl180 extends dl179 {}interface dl181 extends dl180 {}interface dl182 extends dl181 {}interface dl183 extends dl182 {}interface dl184 extends dl183 {}interface dl185 extends dl184 {}interface dl186 extends dl185 {}interface dl187 extends dl186 {}interface dl188 extends dl187 {}interface dl189 extends dl188 {}interface dl190 extends dl189 {}interface dl191 extends dl190 {}interface dl192 extends dl191 {}interface dl193 extends dl192 {}interface dl194 extends dl193 {}interface dl195 extends dl194 {}interface dl196 extends dl195 {}interface dl197 extends dl196 {}interface dl198 extends dl197 {}interface dl199 extends dl198 {}interface dl200 extends dl199 {}interface dl201 extends dl200 {}interface dl202 extends dl201 {}interface dl203 extends dl202 {}interface dl204 extends dl203 {}interface dl205 extends dl204 {}interface dl206 extends dl205 {}interface dl207 extends dl206 {}interface dl208 extends dl207 {}interface dl209 extends dl208 {}interface dl210 extends dl209 {}interface dl211 extends dl210 {}interface dl212 extends dl211 {}interface dl213 extends dl212 {}interface dl214 extends dl213 {}interface dl215 extends dl214 {}interface dl216 extends dl215 {}interface dl217 extends dl216 {}interface dl218 extends dl217 {}interface dl219 extends dl218 {}interface dl220 extends dl219 {}interface dl221 extends dl220 {}interface dl222 extends dl221 {}interface dl223 extends dl222 {}interface dl224 extends dl223 {}interface dl225 extends dl224 {}interface dl226 extends dl225 {}interface dl227 extends dl226 {}interface dl228 extends dl227 {}interface dl229 extends dl228 {}interface dl230 extends dl229 {}interface dl231 extends dl230 {}interface dl232 extends dl231 {}interface dl233 extends dl232 {}interface dl234 extends dl233 {}interface dl235 extends dl234 {}interface dl236 extends dl235 {}interface dl237 extends dl236 {}interface dl238 extends dl237 {}interface dl239 extends dl238 {}interface dl240 extends dl239 {}interface dl241 extends dl240 {}interface dl242 extends dl241 {}interface dl243 extends dl242 {}interface dl244 extends dl243 {}interface dl245 extends dl244 {}interface dl246 extends dl245 {}interface dl247 extends dl246 {}interface dl248 extends dl247 {}interface dl249 extends dl248 {}interface dl250 extends dl249 {}interface dl251 extends dl250 {}interface dl252 extends dl251 {}interface dl253 extends dl252 {}interface dl254 extends dl253 {}interface dl255 extends dl254 {}interface dl256 extends dl255 {}interface dl257 extends dl256 {}interface dl258 extends dl257 {}interface dl259 extends dl258 {}interface dl260 extends dl259 {}interface dl261 extends dl260 {}interface dl262 extends dl261 {}interface dl263 extends dl262 {}interface dl264 extends dl263 {}interface dl265 extends dl264 {}interface dl266 extends dl265 {}interface dl267 extends dl266 {}interface dl268 extends dl267 {}interface dl269 extends dl268 {}interface dl270 extends dl269 {}interface dl271 extends dl270 {}interface dl272 extends dl271 {}interface dl273 extends dl272 {}interface dl274 extends dl273 {}interface dl275 extends dl274 {}interface dl276 extends dl275 {}interface dl277 extends dl276 {}interface dl278 extends dl277 {}interface dl279 extends dl278 {}interface dl280 extends dl279 {}interface dl281 extends dl280 {}interface dl282 extends dl281 {}interface dl283 extends dl282 {}interface dl284 extends dl283 {}interface dl285 extends dl284 {}interface dl286 extends dl285 {}interface dl287 extends dl286 {}interface dl288 extends dl287 {}interface dl289 extends dl288 {}interface dl290 extends dl289 {}interface dl291 extends dl290 {}interface dl292 extends dl291 {}interface dl293 extends dl292 {}class dl294 implements dl293 {}interface Some_Interface extends dl293 {}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?