¤¿¤Þ¤Ë¤Ã¤¡£ / 2003-05-12
| Æü | ·î | ²Ð | ¿å | ÌÚ | ¶â | ÅÚ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
2003-05-12 Mon
¢£ BCEL
¤³¤Î¤¿¤Þ¤Ë¤Ã¤¤ËºÜ¤Ã¤Æ¤¤¤ë BCEL ¤Î¤³¤È¤ò¤½¤Î¤¦¤Á¤Þ¤È¤á¤è¤¦¡¥
¢£ BCEL
ºòÆü¤Þ¤Ç¤Ï¿§¡¹¤Èʸ¶ç¸À¤Ã¤Æ¤¿¤¬¡¤¤¤¤¶¥Ð¥¤¥È¥³¡¼¥É¤ò¤¤¤¸¤í¤¦¤È¤¹¤ë¤È
BCEL ¤Ï¤«¤Ê¤ê³Ú¤À¡¥
¤À¤Ã¤Æ¡¤¥á¥½¥Ã¥É¤ËÆþ¤Ã¤¿²Õ½ê¤È½ª¤ï¤Ã¤¿²Õ½ê¤Ç¥È¥ì¡¼¥¹¾ðÊó¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¤
ConstantPoolGen poolGen = classGen.getConstantPool(); InstructionFactory factory = new InstructionFactory(poolGen);
¤È¤·¤Æ¡¤¤Þ¤¿¡¤MethodGen ¤«¤é InstructionList ¤ò¼è¤Ã¤Æ¤¤Æ¡¤
instructionList.append(factory.createPrintln("System.out.println ¤òÁÞÆþ"));
¤Ç¤¤¤¤¤â¤ó¤Ê¤¡¡¥
¢£ Java ¥Ð¥¤¥È¥³¡¼¥É
ºÇ¶á¡¤½ñ¤´¹¤¨¤Þ¤¯¤Ã¤Æ¤¤¤Þ¤¹¡¥
¤½¤Î¤»¤¤¤«¡¤
javap -c classname
¤Ç½ÐÎϤµ¤ì¤ë¥Ð¥¤¥È¥³¡¼¥É¤ò¸Æ¤ó¤Ç¤âÉáÄÌ¤Ë Java ¤Î¥³¡¼¥É¤ò»×¤¤É⤫¤Ù¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡¥f(^^;
Î㤨¤Ð
Method void test() 0 iconst_1 1 istore_1 2 iconst_2 3 istore_2 4 iload_1 5 iload_2 6 iadd 7 istore_3 8 iload_3 9 iload_2 10 imul 11 istore_1 12 getstatic #2 <Field java.io.PrintStream out> 15 new #3 <Class java.lang.StringBuffer> 18 dup 19 invokespecial #4 <Method java.lang.StringBuffer()> 22 ldc #5 <String "x: "> 24 invokevirtual #6 <Method java.lang.StringBuffer append(java.lang.String)> 27 iload_1 28 invokevirtual #7 <Method java.lang.StringBuffer append(int)> 31 ldc #8 <String ", y: "> 33 invokevirtual #6 <Method java.lang.StringBuffer append(java.lang.String)> 36 iload_2 37 invokevirtual #7 <Method java.lang.StringBuffer append(int)> 40 ldc #9 <String ", z: "> 42 invokevirtual #6 <Method java.lang.StringBuffer append(java.lang.String)> 45 iload_3 46 invokevirtual #7 <Method java.lang.StringBuffer append(int)> 49 invokevirtual #10 <Method java.lang.String toString()> 52 invokevirtual #11 <Method void println(java.lang.String)> 55 getstatic #2 <Field java.io.PrintStream out> 58 ldc #12 <String "x: 6, y: 2, z: 3"> 60 invokevirtual #11 <Method void println(java.lang.String)> 63 return
¤ò¤½¤Î¤Þ¤Þ Java ¤Î¥³¡¼¥É¤Ëľ¤¹¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
int data1 = 1;
int data2 = 2;
int data3 = data1 + data2;
data1 = data3 * data2;
PrintStream out = System.out;
StringBuffer stringbuffer1 = new StringBuffer();
stringbuffer1.append("x: ");
stringbuffer1.append(data1);
stringbuffer1.append("y: ");
stringbuffer1.append(data2);
stringbuffer1.append("z: ");
stringbuffer1.append(data3);
out.println(stringbuffer1.toString());
out.println("x: 6, y: 2, z: 3");
ÊÑ¿ô̾¤Ï¤³¤Î¾ðÊ󤫤é¤ÏÆÉ¤á¤Ê¤¤¤Î¤Ç¡¤Å¬Åö¤ËÉÕ¤±¤Æ¤¤¤ë¡¥
¤Á¤Ê¤ß¤Ë¡¤¸µ¤Î¥³¡¼¥É¡¥
int x = 1;
int y = 2;
int z = x + y;
x = z * y;
System.out.println("x: " + x + ", y: " + y + ", z: " + z);
System.out.println("x: 6, y: 2, z: 3");
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
ºÇ½ª¹¹¿·»þ´Ö: 2008-07-02 15:08





