如何正確有效的學(xué)習(xí)java語(yǔ)言
很多人會(huì)問(wèn)java語(yǔ)言怎么樣學(xué)習(xí),有沒(méi)有什么入門(mén)的書(shū)籍推薦;只要方法正確,零基礎(chǔ)學(xué)好java的機(jī)會(huì)也是很大的呢!下面是學(xué)習(xí)啦小編分享給大家的正確有效的學(xué)習(xí)java語(yǔ)言的方法,希望大家喜歡!
正確有效的學(xué)習(xí)java語(yǔ)言的方法
一、理解Java思想
Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言。向?qū)ο缶幊淌荍ava最核心的思想,這也是區(qū)分和C等其他編程語(yǔ)言的一個(gè)顯著特征。掌握面一門(mén)語(yǔ)言,首先得掌握它的思想,思想決定高度。這就和我們學(xué)習(xí)語(yǔ)文和英語(yǔ)一樣,漢語(yǔ)學(xué)拼音,英語(yǔ)學(xué)音標(biāo)。抓住了核心,學(xué)習(xí)起來(lái)就事半功倍。
二、弄清基本概念
作為一門(mén)語(yǔ)言,Java肯定有著豐富而又簡(jiǎn)單的概念。弄清這些基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區(qū)別與聯(lián)系,分別有那些應(yīng)用。有些同學(xué)打開(kāi)電腦就照著書(shū)本敲代碼,根本沒(méi)有想過(guò)這些代碼中用到了哪些知識(shí)點(diǎn),更談不上理解了,這樣是沒(méi)有任何效果的。
三、多練習(xí)
只理解了Java的基本概念是遠(yuǎn)遠(yuǎn)不止的,還要知道怎么去使用。剛開(kāi)始,你可能會(huì)覺(jué)得Java中那么多東西怎么也記不住,就連寫(xiě)一個(gè)小小的入門(mén)級(jí)程序都要涉及到好多東西。但是,當(dāng)你親手在鍵盤(pán)上敲了幾遍之后,你就會(huì)覺(jué)得之前的那些問(wèn)題都不是問(wèn)題了。很多小伙伴都喜歡在網(wǎng)上找資料自學(xué),遇到問(wèn)題無(wú)法解答,即便是學(xué)會(huì)了也是一知半解 如果你真的想學(xué)習(xí)java你可以來(lái)這個(gè)群,前面是二二零,中間是一四二,后面是九零六,里面有大量的學(xué)習(xí)資料可以下載,這里有技術(shù)大牛親自指導(dǎo)幫助你 還有免費(fèi)的直播課程學(xué)習(xí),只要你有一顆想學(xué)的心,不需要的就不要來(lái)了。
四、學(xué)會(huì)幫助看文檔與源代碼
Java是一門(mén)開(kāi)放源代碼的編程語(yǔ)言。利用網(wǎng)絡(luò)可以下載官方的幫助文檔,當(dāng)你不知道一個(gè)東西怎么用時(shí),你可以打開(kāi)幫助文檔,你的問(wèn)題一下就解決了。如果還不能解決的話,打開(kāi)搜索引擎,輸入你的問(wèn)題,你一定會(huì)找到答案的。如果你想弄懂Java底層的原理的話,可以去網(wǎng)上下載對(duì)應(yīng)的源代碼。看了源代碼之后,你會(huì)發(fā)現(xiàn)Java的世界是多么的奇妙,也會(huì)提高你Java編程的水平。
掌握一種好的而且適合自己的學(xué)習(xí)方法很重要。有些同學(xué)在學(xué)習(xí)Java的過(guò)程中會(huì)陷入誤區(qū),下面將給大家列出初學(xué)者容易進(jìn)入的誤區(qū)。
五、不要盲目追求速度,不重代碼質(zhì)量
速度很重要,但代碼質(zhì)量更重要。一個(gè)在追求速度而不注重代碼質(zhì)量的環(huán)境下完成的項(xiàng)目,肯定是會(huì)有很多問(wèn)題的,后期要花更多的人力物力來(lái)彌補(bǔ),得不償失。
總之,Java是一門(mén)容易上手的編程語(yǔ)言,但想要融會(huì)貫通,除了掌握良好的學(xué)習(xí)方法之外,努力是必不可缺少的。學(xué)習(xí)java要對(duì)自己有充分的信心,調(diào)整學(xué)習(xí)方法和態(tài)度。零基礎(chǔ)學(xué)java,不知道該如何入手?也不知道學(xué)習(xí)的方向,很多人會(huì)問(wèn)零基礎(chǔ)怎么樣學(xué)習(xí),有沒(méi)有什么入門(mén)的書(shū)籍推薦;只要方法正確,零基礎(chǔ)學(xué)好java也是有機(jī)會(huì)的哦。
正確有效的學(xué)習(xí)java語(yǔ)言的建議
1.1培養(yǎng)興趣
興趣是能夠讓你堅(jiān)持下去的動(dòng)力。如果只是把寫(xiě)程序作為謀生的手段的話,你會(huì)活的很累,也太對(duì)不起自己了。多關(guān)心一些行業(yè)趣事,多想想蓋茨。不是提倡天天做白日夢(mèng),但人要是沒(méi)有了夢(mèng)想,你覺(jué)得有味道嗎?可能像許多深圳本地農(nóng)民一樣,打打麻將,喝喝功夫茶,拜拜財(cái)神爺;每個(gè)月就有幾萬(wàn)十幾萬(wàn)甚至更多的進(jìn)帳,憑空多出個(gè)"食利階層"。你認(rèn)為,這樣有味道嗎?有空多到一些程序員論壇轉(zhuǎn)轉(zhuǎn),你會(huì)發(fā)現(xiàn),他們其實(shí)很樂(lè)觀幽默,時(shí)不時(shí)會(huì)冒出智慧的火花。
2 .慎選程序設(shè)計(jì)語(yǔ)言
男怕入錯(cuò)行,女怕嫁錯(cuò)郎。初學(xué)者選擇程序設(shè)計(jì)語(yǔ)言需要謹(jǐn)慎對(duì)待。軟件開(kāi)發(fā)不僅僅是掌握一門(mén)編程語(yǔ)言了事,它還需要其他很多方面的背景知識(shí)。軟件開(kāi)發(fā)也不僅僅局限于某幾個(gè)領(lǐng)域,而是已經(jīng)滲透到了各行各業(yè)幾乎每一個(gè)角落。
如果你對(duì)硬件比較感興趣,你可以學(xué)習(xí)C語(yǔ)言/匯編語(yǔ)言,進(jìn)入硬件開(kāi)發(fā)領(lǐng)域。如果你對(duì)電信的行業(yè)知識(shí)及網(wǎng)絡(luò)比較熟悉,你可以在C/C++等之上多花時(shí)間,以期進(jìn)入電信軟件開(kāi)發(fā)領(lǐng)域。如果你對(duì)操作系統(tǒng)比較熟悉,你可以學(xué)習(xí)C/Linux等等,為linux內(nèi)核開(kāi)發(fā)/驅(qū)動(dòng)程序開(kāi)發(fā)/嵌入式開(kāi)發(fā)打基礎(chǔ)。如果你想介入到應(yīng)用范圍最廣泛的應(yīng)用軟件開(kāi)發(fā)(包括電子商務(wù)電子政務(wù)系統(tǒng))的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個(gè)領(lǐng)域要求的背景知識(shí)不一樣。做應(yīng)用軟件需要對(duì)數(shù)據(jù)庫(kù)等很熟悉??傊阈枰鶕?jù)自己的特點(diǎn)來(lái)選擇合適你的編程語(yǔ)言。
3 .要腳踏實(shí)地,快餐式的學(xué)習(xí)不可取
先分享一個(gè)故事。
有一個(gè)小朋友,他很喜歡研究生物學(xué),很想知道那些蝴蝶如何從蛹?xì)だ锍鰜?lái),變成蝴蝶便會(huì)飛。有一次,他走到草原上面看見(jiàn)一個(gè)蛹,便取了回家,然后看著,過(guò)了幾天以后,這個(gè)蛹出了一條裂痕,看見(jiàn)里面的蝴蝶開(kāi)始掙扎,想抓破蛹?xì)わw出來(lái)。這個(gè)過(guò)程達(dá)數(shù)小時(shí)之久,蝴蝶在蛹里面很辛苦地拼命掙扎,怎么也沒(méi)法子走出來(lái)。這個(gè)小孩看著看著不忍心,就想不如讓我?guī)蛶退桑汶S手拿起剪刀在蛹上剪開(kāi),使蝴蝶破蛹而出。但蝴蝶出來(lái)以后,因?yàn)槌岚虿粔蛄?,變得很臃腫,飛不起來(lái)。
這個(gè)故事給我們的啟示是:欲速則不達(dá)。
浮躁是現(xiàn)代人最普遍的心態(tài),能怪誰(shuí)?也許是貧窮落后了這么多年的緣故,就像當(dāng)年的大躍進(jìn)一樣,都想大步跨入共產(chǎn)主義社會(huì)?,F(xiàn)在的軟件公司、客戶、政府、學(xué)校、培訓(xùn)機(jī)構(gòu)等等到處彌漫著浮躁之氣。就拿筆者比較熟悉的深圳IT培訓(xùn)行業(yè)來(lái)說(shuō)吧,居然有的打廣告宣稱"參加培訓(xùn),100%就業(yè)",居然報(bào)名的學(xué)生不少,簡(jiǎn)直是藐視天下程序員。社會(huì)環(huán)境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學(xué)者C++/JAVA沒(méi)開(kāi)始學(xué),立馬使用VC/JBuilder,會(huì)使用VC/JBuilder開(kāi)發(fā)一個(gè)HelloWorld程序,就忙不迭的向世界宣告,"我會(huì)軟件開(kāi)發(fā)了",簡(jiǎn)歷上也大言不慚地寫(xiě)上"精通VC/JAVA"。結(jié)果到軟件公司面試時(shí)要么被三兩下打發(fā)走了,要么被駁的體無(wú)完膚,無(wú)地自容。到處碰壁之后才知道捧起《C++編程思想》《JAVA編程思想》仔細(xì)鉆研,早知如此何必當(dāng)初呀。
"你現(xiàn)在講究簡(jiǎn)單方便,你以后的路就長(zhǎng)了",好象也是佛經(jīng)中的勸戒。
java的技術(shù)點(diǎn)和知識(shí)點(diǎn)
1. JVM相關(guān)(包括了各個(gè)版本的特性)
對(duì)于剛剛接觸Java的人來(lái)說(shuō),JVM相關(guān)的知識(shí)不一定需要理解很深,對(duì)此里面的概念有一些簡(jiǎn)單的了解即可。不過(guò)對(duì)于一個(gè)有著3年以上Java經(jīng)驗(yàn)的資深開(kāi)發(fā)者來(lái)說(shuō),不會(huì)JVM幾乎是不可接受的。
JVM作為java運(yùn)行的基礎(chǔ),很難相信對(duì)于JVM一點(diǎn)都不了解的人可以把java語(yǔ)言吃得很透。我在面試有超過(guò)3年Java經(jīng)驗(yàn)的開(kāi)發(fā)者的時(shí)候, JVM幾乎就是一個(gè)必問(wèn)的問(wèn)題了。當(dāng)然JVM不是唯一決定技術(shù)能力好壞的面試問(wèn)題,但是可以佐證java開(kāi)發(fā)能力的高低。
在JVM這個(gè)大類中,我認(rèn)為需要掌握的知識(shí)有:
JVM內(nèi)存模型和結(jié)構(gòu)
GC原理,性能調(diào)優(yōu)
調(diào)優(yōu):Thread Dump, 分析內(nèi)存結(jié)構(gòu)
class 二進(jìn)制字節(jié)碼結(jié)構(gòu), class loader 體系 , class加載過(guò)程 , 實(shí)例創(chuàng)建過(guò)程
方法執(zhí)行過(guò)程:Java各個(gè)大版本更新提供的新特性(需要簡(jiǎn)單了解)
2. Java的運(yùn)行(基礎(chǔ)必備)
這條可能出看很簡(jiǎn)單,java程序的運(yùn)行誰(shuí)不會(huì)呢?不過(guò)很多時(shí)候, 我們只是單純通過(guò)IDE去執(zhí)行java程序,底層IDE又是如何執(zhí)行java程序呢?很多人并不了解。
這 個(gè)知識(shí)點(diǎn)是最最基本的java開(kāi)發(fā)者需要掌握的,初學(xué)java,第一個(gè)肯定是教你如何在命令行中執(zhí)行java程序,但是很多人一旦把java學(xué)完 了,IDE用上了,就把這個(gè)都忘了。為什么強(qiáng)調(diào)要知道這個(gè)呢,知道了java最純粹的啟動(dòng)方式之后,你才能在啟動(dòng)出問(wèn)題的時(shí)候,去分析當(dāng)時(shí)啟動(dòng)的目錄多 少,執(zhí)行命名如何,參數(shù)如何,是否有缺失等。 這樣有利于你真正開(kāi)發(fā)中去解決那些奇奇怪怪的可能和環(huán)境相關(guān)的問(wèn)題。
在這里需要掌握的知識(shí)有:
javac 編譯java文件為 class 文件
java 命令的使用, 帶package的java類如何在命令行中啟動(dòng)
java程序涉及到的各個(gè)路徑(classpath, java。library。path, java運(yùn)行的主目錄等)
3. 數(shù)據(jù)類型
這條沒(méi)有什么好多說(shuō)的,無(wú)非就是Java中的基本類型和對(duì)象類型的掌握??梢栽倭私庖恍㎎DK如何自動(dòng)轉(zhuǎn)換方面的知識(shí),包括裝箱拆箱等,還要注意避免裝箱之后的類型相等的判斷
主要知識(shí)點(diǎn):
基本類型: int, long, float, double, boolean , 。。。
對(duì)應(yīng)的對(duì)象類型: Integer 等類型到基本類型的轉(zhuǎn)換, 裝箱和拆箱
Object類型: equals, hashcode
String 類型的特點(diǎn)
4. 對(duì)象和實(shí)例,對(duì)象的創(chuàng)建
在這方面,開(kāi)發(fā)者需要了解class和instance的概念以及之間的差別, 這是java面向?qū)ο筇匦缘囊粋€(gè)基礎(chǔ)。主要知識(shí)點(diǎn)有:
Class和 Instance 的概念;
Instance 創(chuàng)建的過(guò)程:1. 無(wú)繼承:分配內(nèi)存空間, 初始化變量, 調(diào)用構(gòu)造函數(shù);2.有繼承:處理靜態(tài)動(dòng)作, 分配內(nèi)存空間, 變量定義為初始值 , 從基類->子類, 處理定義處的初始化, 執(zhí)行構(gòu)造方法;
需要注意的點(diǎn):靜態(tài)屬性等從基類->子類進(jìn)行初始化;默認(rèn)無(wú)參構(gòu)造方法相關(guān)的特性。
5. 訪問(wèn)控制
這也是java封裝特性的一個(gè)基礎(chǔ),需要掌握的有:
public protected default private 對(duì)于class, method, field 的修飾作用
猜你喜歡: