javaʹÓÃͨÅä·û¼ò»¯·ºÐÍʹÓÃ
ÔÚʹÓà Java™ ÓïÑԵķºÐÍʱ£¬Í¨Åä·û·Ç³£ÁîÈËÀ§»ó£¬²¢ÇÒ×î³£¼ûµÄÒ»¸ö´íÎó¾ÍÊÇÔÚʹÓÃÓнçͨÅä·ûµÄÁ½ÖÖÐÎʽµÄÆäÖÐÖ®Ò»£¨“? super T” ºÍ “? extends T”£©Ê±³öÏÖ´íÎó¡£Äú³ö´íÁËÂ𣿱ð¾ÚÉ¥£¬¼´Ê¹ÊÇר¼ÒÒ²»á·¸ÕâÖÖ´íÎ󣬱¾Ô Brian Goetz ½«Õ¹Ê¾ÈçºÎ±ÜÃâÕâ¸ö´íÎó¡£
ÔÚ Java ÓïÑÔÖУ¬Êý×éÊÇбäµÄ£¨ÒòΪһ¸ö Integer ͬʱҲÊÇÒ»¸ö Number£¬Ò»¸ö Integer Êý×éͬʱҲÊÇÒ»¸ö Number Êý×飩£¬µ«ÊÇ·ºÐͲ»ÊÇÕâÑùµÄ£¨List<Integer> ²¢²»µÈÓÚ List<Number>£©¡£ÈËÃÇ»áÕùÂÛÄÄЩѡÔñÊÇ “ÕýÈ·µÄ”£¬ÄÄЩѡÔñÊÇ “´íÎóµÄ” — µ±È»£¬Ã¿ÖÖÑ¡Ôñ¶¼¸÷ÓÐÓÅȱµã — µ«ÓÐÒ»µãºÁÎÞÒÉÎÊ£¬´æÔÚÁ½ÖÖʹÓòî±ðºÜСµÄÓïÒå¹¹ÔìÅÉÉúÀàÐ͵ÄÀàËÆ»úÖÆ£¬Õ⽫µ¼Ö´óÁ¿´íÎóºÍÎó½â¡£
ÓнçͨÅä·û£¨Ò»Ð©ÓÐȤµÄ “? extends T” ͨÓÃÀàÐÍ˵Ã÷·û£©ÊÇÓïÑÔÌṩµÄÒ»ÖÖ¹¤¾ß£¬ÓÃÀ´´¦ÀíбäÐÔȱ·¦ — ÓнçͨÅä·ûÔÊÐíÀàÉùÃ÷·½·¨²ÎÊý»ò·µ»ØÖµºÎʱ¾ßÓÐбäÐÔ£¨»òÏà·´£¬ÉùÃ÷·½·¨²ÎÊý»ò·µ»ØÖµºÎʱ¾ßÓÐÄæ±äÐÔ£¨contravariant£©£©¡£ËäÈ»Á˽âºÎʱʹÓÃÓнçͨÅä·ûÊÇ·ºÐͽÏΪ¸´Ôӵķ½Ã棬µ«ÊÇ£¬Ê¹ÓÃÓнçͨÅä·ûµÄѹÁ¦Í¨³£¶¼ÂäÔÚ¿â×÷ÕßµÄÉíÉÏ£¬¶ø·Ç¿âÓû§¡£×î³£¼ûµÄÓнçͨÅä·û´íÎó¾ÍÊÇÍü¼ÇʹÓÃËüÃÇ£¬Õâ¾ÍÏÞÖÆÁËÀàµÄʹÓ㬻òÊÇÇ¿ÖÆÓû§²»µÃ²»ÖØÓÃÏÖÓеÄÀà¡£
ÓнçͨÅä·ûµÄ×÷ÓÃ
ÈÃÎÒÃÇ´ÓÒ»¸ö¼òµ¥µÄ·ºÐÍÀ࿪ʼ£¨Ò»¸ö³ÆÎª Box µÄÖµÈÝÆ÷£©£¬Ëü³ÖÓÐÒ»¸ö¾ßÓÐÒÑÖªÀàÐ͵ÄÖµ£º
public interface Box<T> {
public T get();
public void put(T element);
}
ÓÉÓÚ·ºÐͲ»¾ß±¸Ð±äÐÔ£¬Box<Integer> ²¢²»µÈͬÓÚ Box<Number>£¬¾¡¹Ü Integer ÊôÓÚ Number¡£µ«ÊǶÔÓÚ Box ÕâÑùµÄ¼òµ¥·ºÐÍÀàÀ´Ëµ£¬Õâ²»³ÉÎÊÌ⣬²¢ÇÒ³£³£±»ºöÂÔ£¬ÒòΪ Box<T> µÄ½Ó¿ÚÍêȫָ¶¨Îª T ÀàÐ͵ıäÁ¿ — ¶ø²»ÊÇͨ¹ý T ·ºÐÍ»¯µÄÀàÐÍ¡£Ö±½Ó´¦ÀíÀàÐͱäÁ¿ÔÊÐíʵÏÖ¶à̬ÐÔ¡£Çåµ¥ 1 չʾÁËÕâÖÖ¶à̬ÐÔµÄÁ½¸öʾÀý£º»ñÈ¡ Box<Integer> µÄÄÚÈÝ£¬²¢½«Ëü×÷Ϊһ¸ö Number£¬È»ºó½«Ò»¸ö Integer ·ÅÈë Box<Number> ÖУº
Çåµ¥ 1. ͨ¹ý·ºÐÍÀàÀûÓùÌÓеĶà̬ÐÔ
Box<Integer> iBox = new BoxImpl<Integer>(3);
Number num = iBox.get();
Box<Number> nBox = new BoxImpl<Number>(3.2);
Integer i = 3;
nBox.put(i);
ͨ¹ýʹÓüòµ¥µÄ Box À࣬ʹÎÒÃÇÈ·ÐÅ¿ÉÒÔûÓÐбäÐÔ£¬ÒòΪÔÚÐèҪʵÏÖ¶à̬
Ïà¹ØÎĵµ£º
Java¶¯Ì¬´úÀíÀàλÓÚjava.lang.reflect°üÏ£¬Ò»°ãÖ÷񻃾¼°µ½ÒÔÏÂÁ½¸öÀࣺ
(1)Interface InvocationHandler£º¸Ã½Ó¿ÚÖнö¶¨ÒåÁËÒ»¸ö·½·¨
§public object invoke(Object obj,Method method, Object[] args)
ÔÚʵ¼ÊʹÓÃʱ£¬µÚÒ»¸ö²ÎÊýobjÒ»°ãÊÇÖ¸´úÀíÀ࣬methodÊDZ»´úÀíµÄ·½·¨£¬ÈçÉÏÀýÖеÄrequest()£¬argsΪ¸ ......
ת×Ô£ºhttp://ttitfly.javaeye.com/blog/155422
1.javaÀïµÄclone·ÖΪ£º
A:dz¸´ÖÆ£¨Ç³¿Ë¡£©: dz¸´Öƽö½ö¸´ÖÆËù¿¼ÂǵĶÔÏ󣬶ø²»¸´ÖÆËüËùÒýÓõĶÔÏó¡£
b:Éî¸´ÖÆ£¨Éî¿Ë¡£©£ºÉî¸´ÖÆ°ÑÒª¸´ÖƵĶÔÏóËùÒýÓõĶÔÏ󶼸´ÖÆÁËÒ»±é¡£
JavaÖжÔÏóµÄ¿Ë¡,ΪÁË»ñÈ¡¶ÔÏóµÄÒ»·Ý¿½±´£¬ÎÒÃÇ¿ÉÒÔÀûÓÃObjectÀàµÄclone()·½·¨¡£±ØÐëÒª×ñÑ ......
from
http://hi.baidu.com/18276393/blog/item/f6efc9d77ee7bc2806088b61.html
ÔÎÄ
»ù±¾ÀàÐÍ£¬»òÕß½Ð×öÄÚÖÃÀàÐÍ£¬ÊÇJAVA
ÖÐ
²»Í¬ÓÚÀàµÄÌØÊâÀàÐÍ¡£ËüÃÇÊÇÎÒÃDZà³ÌÖÐʹÓÃ×îÆµ·±µÄÀàÐÍ£¬Òò´ËÃæÊÔ
ÌâÖÐÒ²×ÜÉÙ²»ÁËËü
ÃǵÄÉíÓ°£¬ÔÚÕâÆªÎÄÕÂÖÐÎÒÃǽ«´ÓÃæÊÔÖг£¿¼µÄ¼¸¸ö·½ÃæÀ´»Ø¹ËÒ»ÏÂÓë»ù±¾ÀàÐÍÏà¹ØµÄ֪ʶ¡£
»ù±¾ÀàÐ͹²Ó ......
C++ÓëJava±È½Ï(ת)
Ó¢ÎÄÔÎÄ£ºhttp://www.javacoffeebreak.com/articles/thinkinginjava/comparingc++andjava.html
“×÷ΪһÃûC++³ÌÐòÔ±£¬ÎÒÃÇÔçÒÑÕÆÎÕÁËÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄ»ù±¾¸ÅÄ¶øÇÒJavaµÄÓï·¨ÎÞÒÉÊǷdz£ÊìϤµÄ¡£ÊÂʵÉÏ£¬Java±¾À´¾ÍÊÇ´ÓC++ÑÜÉú³öÀ´µÄ¡£”
¡¡¡¡È»¶ø£¬C++ºÍJavaÖ®¼äÈÔ´æÔÚһЩÏÔÖøµÄ²îÒ ......
1£®toString£¨£©·½·¨
ObjectÀà¾ßÓÐÒ»¸ötoString()·½·¨£¬Äã´´½¨µÄÿ¸öÀà¶¼»á¼Ì³Ð¸Ã·½·¨¡£Ëü·µ»Ø¶ÔÏóµÄÒ»¸öString±íʾ£¬²¢ÇÒ¶ÔÓÚµ÷ÊԷdz£ÓаïÖú¡£È»¶ø¶ÔÓÚĬÈϵÄtoString()·½·¨ÍùÍù²»ÄÜÂú×ãÐèÇó£¬ÐèÒª¸²¸ÇÕâ¸ö·½·¨¡£
toString£¨£©·½·¨½«¶ÔÏóת»»Îª×Ö·û´®¡£¿´ÒÔÏ´úÂ룺
package sample;
class Villain {
&nb ......