java 学习心得
本人菜鳥一枚,接觸編程語言也已經有一年多了,但是系統的學習編程語言卻只有不到半年,因為個人原因或者也有少許的外界因素,總之荒廢了好多時間。
? ?好了,廢話不多說,言歸正傳,鄙人接觸java也已有半年,想寫一點自己的學習心得,與大家共勉,在鄙人看來,如果把java和c放在一起進行比較的話,也許更能看出來年各種語言的優缺點,c是一門十分古老的高級編程語言,姑且這樣說吧,考慮到計算機這門學科的發展速度,說它古老,也不足為過,相比java來說,c更加簡單,方便,但c也有其致命的缺點,從根本上來說,c是一中面向過程的語言,而java是一種面向對象的語言,兩者在這方面,又沒有什么可比性而言,兩種語言關注的重點不同,自然會有差異。
? ??Java和C都是指令式語言(Imperative Language),不同的是Java有面向對象(OO)成分在里面,而C是完全面向過程的,C的高級版本C++、C#支持面向對象。
 另外一個不同是,Java跨平臺,既不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平臺相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統一的、與系統無關的bytecode,然后放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然后才能運行。
 再一個不同是,Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平臺的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什么Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有。
 再者,Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配。
 還有一點,Java有Gabbage Collection機制,可以自動回收不再使用的空間,而C則要用free()函數釋放空間。
從高一點的角度去看待編程語言的話,如果說c是一門藝術的話,java就只能稱為技術了,但從實用性來說,java的實用性要更為廣泛一點,java的跨平臺性是c所無法比擬的
總結