ÈçºÎÈ¡µÄJavaÔ´´úÂëÎļþÖÐÎļþÃûºÍÐкÅ
ÈçºÎÈ¡µÄJavaÔ´´úÂëÎļþÖÐÎļþÃûºÍÐкţº£©
ÔÚC/C++µÄ³ÌÐò£¬±àÒëÆ÷ÌṩÁËÁ½¸öºêÀ´Ö§³ÖÈ¡µÃÔ´ÎļþÖеÄÐкźÍÎļþÃû£¬ÕâÁ½¸öºêÊÇ__FILE__,__LINE__
Äã¿ÉÒÔÈçÏµķ½·¨´òÓ¡ÐкźÍÎļþÃû
²é¿´Ô´´úÂë
´òÓ¡°ïÖú
1 #include <stdio.h>
2 int main()
3 {
4 fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__);
5 return 0;
6 }
µ«ÊÇÔÚJAVAÏÂûÓÐÕâÁ½¸öºê£¬ÄÇôÎÒÃÇÈçºÎÀ´È¡µÃÎļþÃûºÍÐкţ¬·ÔÄJDK£¬ÎÒÃÇÕÒµ½StackTraceElementÕâ¸öÀà¡£Õâ¸öÀà¿ÉÒÔ´ÓThrowableÈ¡µÃ£¬ÁíÍâÒ²¿ÉÒÔ´ÓThreadÀàÈ¡µÃ£¬Í¨¹ýÕâЩÎÒдÈçϵÄÒ»¸ö´òÓ¡ÐкŵIJâÊÔ³ÌÐò£º
²é¿´Ô´´úÂë
´òÓ¡°ïÖú
01 public class LineNo {
02 public static int getLineNumber() {
03 return Thread.currentThread().getStackTrace()[2].getLineNumber();
04 }
05
06 public static String getFileName() {
07 return Thread.currentThread().getStackTrace()[2].getFileName();
08 }
09 public static void main(String args[]) {
10 System.out.println("["+getFileName()+"£º"+ getLineNumber()+"]"+"Hello World!");
11 }
12 }
ÁôÏÂÒ»¸öÎÊÌ⣬ÉÏÃæ³ÌÐòÖеÄmagicÊý×Ö 2 ´ú±íʲôº¬ÒåÄØ£¿
0ÊÇthread.getCurrentThread()
1ÊÇgetLineNumber()
2²ÅÊǵ÷ÓÃgetLineNumberµÄÀà
Ïà¹ØÎĵµ£º
³éÏ󻯺ͼ̳йØÏµÊ¹¸ÅÄîºÍ¶¨Òå¿ÉÒÔ¸´Óã»¶à̬ÐÔʹʵÏÖºÍÓ¦ÓÿÉÒÔ¸´Óã»
¿ª±ÕÔÔò£¨Open-Closed Principle OCP£©Ò»¸öÈí¼þʵÌåÓ¦µ±¶ÔÀ©Õ¹¿ª·Å£¬¶ÔÐ޸ķâ±Õ¡£
¶Ô¿É±äÐԵķâ×°ÔÔò£¨Principle of Encapsulation of Variation£© (1)Ò»Öֱ仯ÐÔ²»ºÍÁíÒ»ÖÖ»ìºÏÔÚÒ»Æð £¨2£©Ò»ÖֿɱäÐÔ²»Ó¦É¢ÂäÔÚ´úÂëµÄºÜ¶àµØ·½¡£
ÀïÊÏ´ú»» ......
Ò»¡¢±³¾°
×î½üÒ»Äê¶àÀ´,ÔÚInternetÉϳöÏÖµÄÌØ±ðÎüÒýÈ˵Äʼþ¾ÍÊÇJavaÓïÑÔºÍÓÃJava±àдµÄä¯ÀÀÆ÷HotJava¡£
1991Äê,SUNMicroSystem¹«Ë¾µÄJameGosling¡¢BillJoeµÈÈË,ΪÔÚµçÊÓ¡¢¿ØÖÆ¿¾Ãæ°üÏäµÈ¼ÒÓÃÏû·ÑÀàµç×Ó²úÆ·ÉϽøÐн»»¥Ê½²Ù×÷¶ø¿ª·¢ÁËÒ»¸öÃûΪOakµÄÈí¼þ(¼´Ò»ÖÖÏðÊ÷µÄÃû×Ö),µ«µ±Ê±²¢Ã»ÓÐÒýÆðÈËÃǵÄ×¢Òâ,Ö±µ½1 ......
Ò»¡¢±³¾°
×î½üÒ»Äê¶àÀ´,ÔÚInternetÉϳöÏÖµÄÌØ±ðÎüÒýÈ˵Äʼþ¾ÍÊÇJavaÓïÑÔºÍÓÃJava±àдµÄä¯ÀÀÆ÷HotJava¡£
1991Äê,SUNMicroSystem¹«Ë¾µÄJameGosling¡¢BillJoeµÈÈË,ΪÔÚµçÊÓ¡¢¿ØÖÆ¿¾Ãæ°üÏäµÈ¼ÒÓÃÏû·ÑÀàµç×Ó²úÆ·ÉϽøÐн»»¥Ê½²Ù×÷¶ø¿ª·¢ÁËÒ»¸öÃûΪOakµÄÈí¼þ(¼´Ò»ÖÖÏðÊ÷µÄÃû×Ö),µ«µ±Ê±²¢Ã»ÓÐÒýÆðÈËÃǵ ......
¹ØÓÚJavaÕ»Óë¶ÑµÄ˼¿¼
1. Õ»(stack)Óë¶Ñ(heap)¶¼ÊÇJavaÓÃÀ´ÔÚRamÖдæ·ÅÊý¾ÝµÄµØ·½¡£ÓëC++²»Í¬£¬Java×Ô¶¯¹ÜÀíÕ»ºÍ¶Ñ£¬³ÌÐòÔ±²»ÄÜÖ±½ÓµØÉèÖÃÕ»»ò¶Ñ¡£
¡¡¡¡2. Õ»µÄÓÅÊÆÊÇ£¬´æÈ¡ËٶȱȶÑÒª¿ì£¬½ö´ÎÓÚÖ±½ÓλÓÚCPUÖеļĴæÆ÷¡£µ«È±µãÊÇ£¬´æÔÚÕ»ÖеÄÊý¾Ý´óСÓëÉú´æÆÚ±ØÐëÊÇÈ·¶¨µÄ£¬È±·¦Áé»îÐÔ¡£ÁíÍ⣬ջÊý¾Ý¿ÉÒÔ¹²Ïí£¬Ïê¼ûµÚ3µ ......
ͨË×Àí½âÏòÉÏתÐÍ£º
¾ÍÊÇ×ÓÀàתÐͳɸ¸Àà¡£
class A{}
class B extends A { }
A b = new B();
Õâ¸ö¾ÍÊÇÏòÉÏתÐÍ¡£
ÏòÉÏתÐÍ¿ÉÒÔÏñÏÂÃæÕâÌõÓï¾äÕâô¼òµ¥:
Shape s =new Circle();
ÕâÀ´´½¨Ò»¸öCircle¶ÔÏ ......