Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

java ASM

Java ASM
ÎÒÃÇÖªµÀJavaÊǾ²Ì¬ÓïÑÔ£¬¶øpython¡¢rubyÊǶ¯Ì¬ÓïÑÔ£¬Java³ÌÐòÒ»µ©Ð´ºÃºÜÄÑÔÚÔËÐÐʱ¸ü¸ÄÀàµÄÐÐΪ£¬¶øpython¡¢ruby¿ÉÒÔ¡£
²»¹ý»ùÓÚbytecode²ãÃæÉÏÎÒÃÇ¿ÉÒÔ×öһЩÊֽţ¬À´Ê¹Java³ÌÐò¶àһЩÁé»îÐÔºÍMagic£¬ASM¾ÍÊÇÕâÑùÒ»¸öÓ¦Óù㷺µÄ¿ªÔ´¿â¡£
ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy classes,
directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the Java
Virtual Machine.
ASMÍê³ÉÁËBCELºÍSERPͬÑùµÄ¹¦ÄÜ£¬µ«ASM
Ö»ÓÐ30¶àk£¬¶øºóÁ½Õß·Ö±ðÊÇ350kºÍ150k¡£apacheÕæÊÇÔ½À´Ô½¹ýÆøÁË¡£
ÈÃÎÒÃÇÀ´¿´Ò»¸öASMµÄ¼òµ¥Àý×ÓHelloworld.java£¬ËüÉú³ÉÒ»¸öExampleÀàºÍÒ»¸ömain·½·¨£¬main·½·¨´òÓ¡"Hello world!"Óï¾ä:
Java´úÂë
import java.io.FileOutputStream;   
import java.io.PrintStream;   
  
import org.objectweb.asm.ClassWriter;   
import org.objectweb.asm.MethodVisitor;   
import org.objectweb.asm.Opcodes;   
import org.objectweb.asm.Type;   
import org.objectweb.asm.commons.GeneratorAdapter;   
import org.objectweb.asm.commons.Method;   
  
public class Helloworld extends ClassLoader implements Opcodes {   
  
  public static void main(final String args[]) throws Exception {   
  
    // creates a ClassWriter for the Example public class,   
    // which inherits from Object   
  
     ClassWriter cw = new ClassWriter(0);   
     cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null);   
     MethodVisitor mw = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null,   
        null);   
     mw.visitVarInsn(ALOAD, 0);   
 


Ïà¹ØÎĵµ£º

Java Collection FramWork

jdk
µÄ¼¯ºÏ¿ò¼ÜµÄÖ÷Ìå½á¹¹£º
½Ó¿Ú
¼òÊö
ʵÏÖ
²Ù×÷ÌØÐÔ
³ÉÔ±ÒªÇó
Set
³ÉÔ±²»ÄÜÖØ¸´
HashSet
ÍⲿÎÞÐòµØ±éÀú³ÉÔ±¡£
³ÉÔ±¿ÉΪÈÎÒâObject×ÓÀàµÄ¶ÔÏ󣬵«Èç
¹û¸²¸ÇÁËequals·½·¨£¬Í¬Ê±×¢ÒâÐÞ¸ÄhashCode·½·¨¡£
TreeSet
ÍⲿÓÐÐòµØ±éÀú³ÉÔ±£»¸½¼ÓʵÏÖÁË
SortedSet, Ö§³Ö×Ó¼¯µÈÒªÇó˳ÐòµÄ²Ù×÷
³ÉÔ±ÒªÇóʵÏÖcaparable ......

Test1.java(java homework)

public class Test1 {
public static void main(String[] args) {
//assignment
byte bval1 = 1, bval2 = 2;
short sval1 = 1, sval2 = 2;
int ival1 = 1, ival2 = 2;
long lval1 = 1, lval2 = 2;

float fval1 = 1.0f, fval2 = 2.0f;
double dval1 = 1.0, dval2 = 2.0;

char cval1 = 'a' ......

̸̸"Java¼Ü¹¹"

1. J2EEÊǹ淶£¬ÊÇÒ»ÖÖJSR±ê×¼£¬ÓÐÏêϸÎĵµ£¬²ûÊöJ2EEÌṩÄÄЩ¹¦ÄÜ£¬¿ÉÒÔÏÂÔØÕâÑùÎĵµ£¬µ±È»»¹ÓÐһЩ´úÂë½Ó¿Ú£¬ÕâÊǵäÐÍJavaÊÀ½çÖеĿò¼Ü´úÂë+±ê×¼ÎĵµÐÎʽ£¬ÕâÊÇÖ»ÓÐ×ÔÓÉÊÀ½ç²ÅÓеĹ淶£¬ÔÚ΢ÈíMSÊÀ½çÄãÊǾø¶Ô²»»á¿´µ½µÄ£¬ËùÒÔ£¬´Ó΢Èíת¹ýÀ´µÄ£¬»áÔΣ¬»á²»ÊÊÓ¦£¬²»ÄÜÔÙ°´ÕÕËûÃÇÒÔǰµÄ¾­ÑéÀ´¿´´ý×ÔÓɵÄÐÂÊÀ½ç¡£
2.¼Ü¹¹ÊǾ ......

java Ïß³Ì×é


Ïß³Ì×é
ÔÚJavaÖÐÿһ¸öÏ̶߳¼¹éÊôÓÚij¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±£¬ÀýÈçÔÚÖ÷º¯Êýmain()Ö÷¹¤×÷Á÷³ÌÖвúÉúÒ»¸öỊ̈߳¬Ôò²úÉúµÄÏß³ÌÊôÓÚmainÕâ¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±¡£¼òµ¥µØËµ£¬Ïß³Ì×é¾ÍÊÇÓÉÏß³Ì×é³ÉµÄ¹ÜÀíÏ̵߳ÄÀ࣬Õâ¸öÀàÊÇjava.lang.ThreadGroupÀà¡£
¿ÉÒÔͨ¹ýʹÓÃÈçÏ´úÂë»ñÈ¡´ËÏß³ÌËùÊôÏß³Ì×éµÄÃû³Æ¡£
Thread.currentThread().ge ......

java ÐòÁл¯


ʲôÊÇÐòÁл¯ 
javaÖеÄÐòÁл¯(serialization)»úÖÆÄܹ»½«Ò»¸öʵÀý¶ÔÏóµÄ״̬ÐÅϢдÈëµ½Ò»¸ö×Ö½ÚÁ÷ÖУ¬Ê¹Æä¿ÉÒÔͨ¹ýsocket½øÐд«Êä¡¢»òÕ߳־û¯´æ´¢µ½Êý¾Ý¿â»òÎļþϵͳÖУ»È»ºóÔÚÐèÒªµÄʱºò£¬¿ÉÒÔ¸ù¾Ý×Ö½ÚÁ÷ÖеÄÐÅÏ¢À´Öع¹Ò»¸öÏàͬµÄ¶ÔÏó¡£ÐòÁл¯»úÖÆÔÚjavaÖÐÓÐ׏㷺µÄÓ¦Óã¬EJB¡¢RMIµÈ¼¼Êõ¶¼ÊÇÒÔ´ËΪ»ù´¡µÄ¡£  ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ