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 + -
显示快捷键?