½âÎöJavaÀàºÍ¶ÔÏóµÄ³õʼ»¯¹ý³Ì
	
    
    
	ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬¶Ô JVM Ö´Ðйý³ÌµÄ¹Ø¼üµã½øÐÐÈ«Ãæ½âÎö£¬²¢ÔÚÎÄÖд©²åÈëÁËÏà¹Ø JVM ¹æ·¶ºÍ JVM µÄ²¿·ÖÄÚ²¿ÀíÂÛ֪ʶ£¬ÒÔÀíÂÛÓëʵ¼Ê½áºÏµÄ·½Ê½½éÉܶÔÏó³õʼ»¯ºÍÀà³õʼ»¯Ö®¼äµÄÐ×÷ÒÔ¼°¿ÉÄÜ´æÔڵijåÍ»ÎÊÌâ¡£
ÎÊÌâÒýÈë
½üÈÕÎÒÔÚµ÷ÊÔÒ»¸öö¾ÙÀàÐ͵ĽâÎöÆ÷³ÌÐò£¬¸Ã½âÎöÆ÷Êǽ«Êý¾Ý¿âÄÚÒ»Íò¶àÌõö¾Ù´úÂë×°ÔØµ½»º´æÖУ¬ÎªÁËʵÏÖ¿ìËÙ¶¨Î»Ã¶¾Ù´úÂëºÍ¾ßÌåö¾ÙÀà±ðµÄËùÓÐö¾ÙÔªËØ£¬¸ÃÀàÔÚ×°ÔØÃ¶¾Ù´úÂëµÄͬʱ¶ÔÆä²ÉÈ¡Á½ÖÖ²ßÂÔ½¨Á¢ÄÚ´æË÷Òý¡£ÓÉÓÚ¸ÃÀàÊÇÒ»¸ö¹«¹²·þÎñÀ࣬ÔÚ³ÌÐò¸÷¸ö²ãÃæ¶¼»áʹÓõ½Ëü£¬Òò´ËÎÒ½«ËüʵÏÖΪһ¸öµ¥ÀýÀà¡£Õâ¸öÀàÔÚÎÒµ÷ÕûÀàʵÀý»¯Óï¾äλÖÃ֮ǰÔËÐÐÕý³££¬µ«µ±ÎҰѸÃÀàʵÀý»¯Óï¾äµ÷Õûµ½¾²Ì¬³õʼ»¯Óï¾ä֮ǰʱ£¬ÎҵijÌÐò²»ÔÙΪÎÒ¹¤×÷ÁË¡£ ÏÂÃæÊǾ¹ýÎÒ¼ò»¯ºóµÄʾÀý´úÂ룺
£ÛÇåµ¥Ò»£Ý
package com.ccb.framework.enums; 
import java.util.Collections; 
import java.util.HashMap; 
import java.util.Map; 
public class CachingEnumResolver { 
//µ¥Ì¬ÊµÀý Ò»ÇÐÎÊÌâ½ÔÓÉ´ËÐÐÒýÆð 
private static final CachingEnumResolver SINGLE_ENUM_RESOLVER = new CachingEnumResolver(); 
/*MSGCODE->CategoryÄÚ´æË÷Òý*/ 
private static Map CODE_MAP_CACHE; 
static { 
CODE_MAP_CACHE = new HashMap(); 
//ΪÁË˵Ã÷ÎÊÌâ,ÎÒÔÚÕâÀï³õʼ»¯Ò»ÌõÊý¾Ý 
CODE_MAP_CACHE.put("0","±±¾©ÊÐ"); 
} 
//private, for single instance 
private CachingEnumResolver() { 
//³õʼ»¯¼ÓÔØÊý¾Ý ÒýÆðÎÊÌ⣬¸Ã·½·¨Ò²Òª¸ºµãÔðÈÎ 
initEnums(); 
} 
/** * ³õʼ»¯ËùÓеÄö¾ÙÀàÐÍ */ 
public static void initEnums() { 
// ~~~~~~~~~ÎÊÌâ´ÓÕâÀ↑ʼ±©Â¶ ~~~~~~~~~~~// 
if (null == CODE_MAP_CACHE) { 
System.out.println("CODE_MAP_CACHEΪ¿Õ,ÎÊÌâÔÚÕâÀ↑ʼ±©Â¶."); 
CODE_MAP_CACHE = new HashMap(); 
} 
CODE_MAP_CACHE.put("1", "±±¾©ÊÐ"); 
CODE_MAP_CACHE.put("2", "ÔÆÄÏÊ¡"); 
//..... other code... 
} 
public Map getCache() { 
return Collections.unmodifiableMap(CODE_MAP_CACHE); 
} 
/** * »ñÈ¡µ¥Ì¬ÊµÀý * * @re
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    package Demo;
// ÆÕͨ·ºÐÍ
class Point<T> { // ´Ë´¦¿ÉÒÔËæ±ãд±êʶ·ûºÅ£¬TÊÇtypeµÄ¼ò³Æ
	private T var; // varµÄÀàÐÍÓÉTÖ¸¶¨£¬¼´£ºÓÉÍⲿָ¶¨
	public T getVar() { // ·µ»ØÖµµÄÀàÐÍÓÉÍⲿ¾ö¶¨
		return var;
	}
	public void setVar(T var) { // ÉèÖõÄÀàÐÍÒ²ÓÉÍⲿ¾ö¶¨
		this.var = var;
	}
}
publi ......
	
    
        
    
    package Demo;
// Java·ºÐÍ·½·¨
class Demo26 {
	public <T> T fun(T t) { // ¿ÉÒÔ½ÓÊÕÈÎÒâÀàÐ͵ÄÊý¾Ý
		return t; // Ö±½Ó°Ñ²ÎÊý·µ»Ø
	}
}
public class GenericsDemo26 {
	public static void main(String args[]) {
		Demo26 d = new Demo26(); // ʵÀý»¯Demo¶ÔÏó
		String str = d.fun("it"); // ´«µÝ× ......
	
    
        
    
    package Demo;
// Java·ºÐÍÊý×é
public class GenericsDemo30 {
	public static void main(String args[]) {
		Integer i[] = fun1(1, 2, 3, 4, 5, 6); // ·µ»Ø·ºÐÍÊý×é
		fun2(i);
	}
	public static <T> T[] fun1(T... arg) { // ½ÓÊտɱä²ÎÊý
		return arg; // ·µ»Ø·ºÐÍÊý×é
	}
	public static <T> ......
	
    
        
    
    package Demo;
// Java·ºÐ͵ÄǶÌ×ÉèÖÃ
class Info31<T, V> { // ½ÓÊÕÁ½¸ö·ºÐÍÀàÐÍ
	private T key;
	private V value;
	public Info31(T key, V value) {
		this.setKey(key);
		this.setValue(value);
	}
	public void setKey(T key) {
		this.key = key;
	}
	public void setValue(V value) {
		this. ......
	
    
        
    
    package Demo;
// Java·ºÐͽӿÚ
interface Info24<T> { // ÔÚ½Ó¿ÚÉ϶¨Òå·ºÐÍ
	public T getVar(); // ¶¨Òå³éÏó·½·¨£¬³éÏó·½·¨µÄ·µ»ØÖµ¾ÍÊÇ·ºÐÍÀàÐÍ
}
class InfoImp24<T> implements Info24<T> { // ¶¨Òå·ºÐͽӿڵÄ×ÓÀà
	private T var; // ¶¨ÒåÊôÐÔ
	public InfoImp24(T var) { // ͨ¹ý¹¹Ôì·½·¨É ......