Java Stack Heap
stack ºÍ heep ¶¼ÊÇÄÚ´æµÄÒ»²¿·Ö
stack ¿Õ¼äС£¬ËٶȱȽϿ죬 ÓÃÀ´·Å¶ÔÏóµÄÒýÓÃ
heap ´ó£¬Ò»°ãËùÓд´½¨µÄ¶ÔÏó¶¼·ÅÔÚÕâÀï¡£
Õ»(stack):ÊÇÒ»¸öÏȽøºó³öµÄÊý¾Ý½á¹¹,ͨ³£ÓÃÓÚ±£´æ·½·¨(º¯Êý)ÖеIJÎÊý,¾Ö²¿±äÁ¿.
ÔÚjavaÖÐ,ËùÓлù±¾ÀàÐͺÍÒýÓÃÀàÐͶ¼ÔÚÕ»Öд洢.Õ»ÖÐÊý¾ÝµÄÉú´æ¿Õ¼äÒ»°ãÔÚµ±Ç°scopesÄÚ(¾ÍÊÇÓÉ{...}À¨ÆðÀ´µÄÇøÓò).
¶Ñ(heap):ÊÇÒ»¸ö¿É¶¯Ì¬ÉêÇëµÄÄÚ´æ¿Õ¼ä(Æä¼Ç¼¿ÕÏÐÄÚ´æ¿Õ¼äµÄÁ´±íÓɲÙ×÷ϵͳά»¤),CÖеÄmallocÓï¾äËù²úÉúµÄÄÚ´æ¿Õ¼ä¾ÍÔÚ¶ÑÖÐ.
ÔÚjavaÖÐ,ËùÓÐʹÓÃnew xxx()¹¹Ôì³öÀ´µÄ¶ÔÏó¶¼ÔÚ¶ÑÖд洢,µ±À¬»ø»ØÊÕÆ÷¼ì²âµ½Ä³¶ÔÏóδ±»ÒýÓÃ,Ôò×Ô¶¯Ïú»Ù¸Ã¶ÔÏó.ËùÒÔ,ÀíÂÛÉÏ˵javaÖжÔÏóµÄÉú´æ¿Õ¼äÊÇûÓÐÏÞÖÆµÄ,Ö»ÒªÓÐÒýÓÃÀàÐÍÖ¸ÏòËü,ÔòËü¾Í¿ÉÒÔÔÚÈÎÒâµØ·½±»Ê¹ÓÃ.
1. Õ»(stack)Óë¶Ñ(heap)¶¼ÊÇJavaÓÃÀ´ÔÚRamÖдæ·ÅÊý¾ÝµÄµØ·½¡£ÓëC++²»Í¬£¬Java×Ô¶¯¹ÜÀíÕ»ºÍ¶Ñ£¬³ÌÐòÔ±²»ÄÜÖ±½ÓµØÉèÖÃÕ»»ò¶Ñ¡£
2. Õ»µÄÓÅÊÆÊÇ£¬´æÈ¡ËٶȱȶÑÒª¿ì£¬½ö´ÎÓÚÖ±½ÓλÓÚCPUÖеļĴæÆ÷¡£µ«È±µãÊÇ£¬´æÔÚÕ»ÖеÄÊý¾Ý´óСÓëÉú´æÆÚ±ØÐëÊÇÈ·¶¨µÄ£¬È±·¦Áé»îÐÔ¡£ÁíÍ⣬ջÊý¾Ý¿ÉÒÔ¹²Ïí£¬Ïê¼ûµÚ3µã¡£¶ÑµÄÓÅÊÆÊÇ¿ÉÒÔ¶¯Ì¬µØ·ÖÅäÄÚ´æ´óС£¬Éú´æÆÚÒ²²»±ØÊÂÏȸæËß±àÒëÆ÷£¬JavaµÄÀ¬»øÊÕ¼¯Æ÷»á×Ô¶¯ÊÕ×ßÕâЩ²»ÔÙʹÓõÄÊý¾Ý¡£µ«È±µãÊÇ£¬ÓÉÓÚÒªÔÚÔËÐÐʱ¶¯Ì¬·ÖÅäÄڴ棬´æÈ¡ËٶȽÏÂý¡£
3. JavaÖеÄÊý¾ÝÀàÐÍÓÐÁ½ÖÖ¡£
Ò»ÖÖÊÇ»ù±¾ÀàÐÍ(primitive types), ¹²ÓÐ8ÖÖ£¬¼´int, short, long, byte, float, double, boolean, char(×¢Ò⣬²¢Ã»ÓÐstringµÄ»ù±¾ÀàÐÍ)¡£ÕâÖÖÀàÐ͵͍ÒåÊÇͨ¹ýÖîÈçint a = 3; long b = 255L;µÄÐÎʽÀ´¶¨ÒåµÄ£¬³ÆÎª×Ô¶¯±äÁ¿¡£ÖµµÃ×¢ÒâµÄÊÇ£¬×Ô¶¯±äÁ¿´æµÄÊÇ×ÖÃæÖµ£¬²»ÊÇÀàµÄʵÀý£¬¼´²»ÊÇÀàµÄÒýÓã¬ÕâÀﲢûÓÐÀàµÄ´æÔÚ¡£Èçint a = 3; ÕâÀïµÄaÊÇÒ»¸öÖ¸ÏòintÀàÐ͵ÄÒýÓã¬Ö¸Ïò3Õâ¸ö×ÖÃæÖµ¡£ÕâЩ×ÖÃæÖµµÄÊý¾Ý£¬ÓÉÓÚ´óС¿ÉÖª£¬Éú´æÆÚ¿ÉÖª(ÕâЩ×ÖÃæÖµ¹Ì¶¨¶¨ÒåÔÚij¸ö³ÌÐò¿éÀïÃæ£¬³ÌÐò¿éÍ˳öºó£¬×Ö¶ÎÖµ¾ÍÏûʧÁË)£¬³öÓÚ×·ÇóËٶȵÄÔÒò£¬¾Í´æÔÚÓÚÕ»ÖС£
ÁíÍ⣬ջÓÐÒ»¸öºÜÖØÒªµÄÌØÊâÐÔ£¬¾ÍÊÇ´æÔÚÕ»ÖеÄÊý¾Ý¿ÉÒÔ¹²Ïí¡£¼ÙÉèÎÒÃÇͬʱ¶¨Ò壺
int a = 3;
int b = 3£»
±àÒëÆ÷ÏÈ´¦Àíint a = 3£»Ê×ÏÈËü»áÔÚÕ»Öд´½¨Ò»¸
Ïà¹ØÎĵµ£º
¶¨Òå:¶¨ÒåÁËËã·¨×壬·Ö±ð·â×°ÆðÀ´£¬ÈÃËüÃÇÖ®¼ä¿ÉÒÔ»¥ÏàÌæ»»£¬´ËģʽÈÃËã·¨µÄ±ä»¯¶ÀÁ¢ÓÚʹÓÃËã·¨µÄ¿Í»§¡£
ÊÊÓÃÐÔ
Ðí¶àÏà¹ØµÄÀà½ö½öÊÇÐÐΪÓÐÒì¡£“²ßÂÔ”ÌṩÁËÒ»ÖÖÓöà¸öÐÐΪÖеÄÒ»¸öÐÐΪÀ´ÅäÖÃÒ»¸öÀàµÄËã·¨¡£
ÐèҪʹÓÃÒ»¸öËã·¨µÄ²»Í¬±äÌå¡£ÀýÈ磬Äã¿ÉÄܻᶨÒåһЩ·´Ó³²»ÈݵĿռä/ʱ¼äȨºâµÄËã·¨¡£µ±ÕâЩ±äÌåʵ ......
1¡¢Java SE 7ÔâÓö.NET CLR»á·¢Éúʲô£¿
´ÓJava SE 7µÄ¹¦ÄÜÁбíÖпÉÒÔ¿´³ö£¬ËüÏà±ÈÒÔǰ°æ±¾ÓÐÁ˳¤×ãÌá¸ß¡£ÄÇô£¬ËüÊÇÒ»¸öÓÎÏ·¸Ä±äÕßÂð£¿ÎÒÈÏΪ²»»áÊÇÕâÑù¡£ÔÚ¹ýÈ¥ÊýÄêÖУ¬JVMºÍ.NET CLR¶¼·¢ÉúÁËÖÚ¶à¸Ä½ø£»¹ýÈ¥ÄÇЩֻÓм¼Êõ·Ç³£¸ß³¬µÄ³ÌÐòÔ±²ÅÄÜÍê³ÉµÄÐí¶àÊÂÇ飬ÏÖÔÚ½èÖúÓÚJVMºÍ.NET CLRµÄÔöÇ¿¹¦ÄÜ£¬ÆÕͨ³ÌÐòÔ±Ò²Äܹ»×öµÃµ½¡ ......
abstract classºÍinterfaceÊÇJavaÓïÑÔÖжÔÓÚ³éÏóÀඨÒå½øÐÐÖ§³ÖµÄÁ½ÖÖ»úÖÆ£¬ÕýÊÇÓÉÓÚÕâÁ½ÖÖ»úÖÆµÄ´æÔÚ£¬²Å¸³ÓèÁËJavaÇ¿´óµÄÃæÏò¶ÔÏóÄÜÁ¦¡£abstract classºÍinterfaceÖ®¼äÔÚ¶ÔÓÚ³éÏóÀඨÒåµÄÖ§³Ö·½Ãæ¾ßÓкܴóµÄÏàËÆÐÔ£¬ÉõÖÁ¿ÉÒÔÏà»¥Ìæ»»£¬Òò´ËºÜ¶à¿ª·¢ÕßÔÚ½øÐгéÏóÀඨÒåʱ¶ÔÓÚabstract classºÍinterfaceµÄÑ¡ÔñÏԵñȽÏËæÒâ¡ ......
°Ë javaÃæÏò¶ÔÏó³ÌÐòÉè¼Æ(¹¹Ôì·½·¨)
/**
* ÃæÏò¶ÔÏóÖ®¶þ
* ¹¹Ôì·½·¨(¹¹Ôì»ú):
*
* 1,¹¹Ôì·½·¨µÄÌØÕ÷:
* Ëü¾ßÓÐÓëÀàÏàͬµÄÃû³Æ£»
* Ëü²»º¬·µ»ØÖµ£»
* Ëü²»ÄÜÔÚ·½·¨ÖÐÓÃreturnÓï¾ä·µ»ØÒ»¸öÖµ
* ×¢Ò⣺ÔÚ¹¹Ôì·½·¨Àï²»º¬·µ»ØÖµµÄ¸ÅÄîÊDz»Í¬ÓÚ“void&rdquo ......
ʮһ javaÃæÏò¶ÔÏó³ÌÐòÉè¼Æ(µ¥Ì¬Éè¼ÆÄ£Ê½)
/**
* ÃæÏò¶ÔÏóÖ®Áù
* µ¥Ì¬Ä£Ê½Éè¼Æ
* ËùνÀàµÄµ¥Ì¬Éè¼ÆÄ£Ê½£¬¾ÍÊDzÉȡһ¶¨µÄ·½·¨±£Ö¤ÔÚÕû¸öµÄÈí¼þϵͳÖУ¬¶Ôij¸öÀàÖ»ÄÜ´æÔÚÒ»¸ö¶ÔÏóʵÀý£¬
* ²¢ÇÒ¸ÃÀàÖ»Ìṩһ¸öÈ¡µÃÆä¶ÔÏóʵÀýµÄ·½·¨¡£
*/
class Single
{
private static int coun ......