第一次發部落格,怎麼起手其實也不是很熟練,總之就來紀錄、分享一下自己學習java的歷程吧!我所能學習的內容大致來自於達內教育,關於達內教育評價如何其實我沒有太深的了解,但我想如果真的是沒效率的內容我應該也能感覺得到,所以先暫時不抱成見的學習吧~當然有不錯的學習資源很歡迎分享、推薦。其實本身的科系跟寫程式幾乎是息息相關的,但由於自己大一大二的怠惰,除了基礎的C與C++之外,其他有趣或實用的語言都沒有好好去涉略。如今有機會趁著實習接觸到java,那當然是必須好好把握啦!
達內教育課程內容的第一部份主要在介紹java的環境與一些背景,在大概了解它的內容以及特性後,結合我對C的一些了解,整理出了一些重點:
1.為甚麼如今java這個語言在市面上能有如此高的使用率呢?因為它能夠較容易地在各種不同的作業系統上運作,也就是所謂的"跨平台"。而又是甚麼特點使它能夠使它能夠跨平台呢?我們先來看看C產生執行檔的方式再來看看java產生執行檔的方式就能很快地了解其原理。首先一般我們寫C時,當我們完成coding後,直接compile後就能執行檔,而java則不一樣,它會先把程式碼輸出成一個.calss檔,之後再compile該.class檔才能產生執行檔。乍看之下,java好像多了一個程序,比較麻煩怎麼會是那麼通用的語言呢?這是在一個作業系統的情況下,當我們要把你的程式碼開放給許許多多的作業系統取用時,就會發生以下情況-------C語言我們需要針對不同的作業系統都寫一個.c檔然後compile它,而java只要下載屬於該作業系統的JVM(java virtual machine,用來將.class檔轉成執行檔的工具)便能幫你產生該作業系統的執行檔,如此便能達到用一種程式碼在各種作業系統上執行,所謂跨平台的效果。
2.JVM: java virtual machine, 將.class檔編譯
JRE: java runtime environment, 內含了JVM以及能運行的環境,一般使用者必備才能執行java產生的應用程式
JDK: java development kit, 內含了JVM、JRE,有工具供開發者使用,也有執行環境
運行的最小單位:JRE
開發的最小單位:JDK
3. 基本上的宣告方式、指令都與C大同小異,唯一要留意的是java通常會以class包覆住它的主程式碼(main)(因應OOP的概念)且main的呼叫方式不太一樣----- public(protected, private) static void main(String[] args){ }(範例如此),然後printf為System.out.print(ln 要換行時加),array的宣告也有差異,合法的宣告如下:
(1) type[] name = new type[num];
(2) type[] name = { a, b, c };
(3) type[] name = new type[] { a, b, c };
(4) type[] name;
name = new type[] { a, b, c };
為宣告值的array,int默認為0,char默認為null。
僅此做為紀錄。
4.array複製的函式:
(1) System.arraycopy( 目標array, 起始位置, 放置array, 放置位置, 複製數量 );
(2) type[] copytoarray = Arrays.copyOf( copyfromarray, copynum );
此作法若copytoarray 數量大於 copyfromarray 則以0或null補滿。
array擴充的方法:
copyfromarray = Arrays.coptOf( copyfromarray, copyfromarray.length+1 );
排序多了可以方便直接使用的指令----array.sort( arrayname );
其他就都差不多,像甚麼bubble sort, merge sort, insert sort, quick sort等等的。
以上是我近期在達內教育的課程中學到function以前大概所整理出來比較不同於C而且需要記住的一些點。
整體而言我覺得目前語法與C還相去不遠還算好理解,而且多了許多方便的內建函式可以幫助我們更好的使用,但之後因為概念本質的不同我相信會慢慢看出其差別的,希望在接下來過程中能收獲更多。也許是達內教育課程的說明方式很淺顯易懂吧!達內教育評價真的不像網路上所說的那樣~
撰寫這些文字的用意在於自我紀錄以及分享,歡迎大家一起來學習或討論,希望不要有人誤會這是甚麼教學文章之類的,如果有理解錯誤歡迎賜教、指正(對啦就是不要嚴厲的批評或罵我XD,畢竟這算是我的筆記而已,評價太多甚麼的沒必要吧~),我也很願意學習的,當然如果覺得不錯也請個好評價作為鼓勵~我會很樂意分享更多的!~~~
相關連結:
留言列表