-
1 # 使用者70201552471
-
2 # 東風高揚
為什麼覺得Java很難呢?是不是本身沒有編碼基礎呢?還是剛進入這個行當根本還不知道怎麼學習呢?當然Java相對某些開發工具來說確實是比較難的。但為什麼這麼多人使用Java呢?除了開源紅利以外,其實從開發工具的難易度或者理解度來說,JAVA還是相對比較容易入門,而且它的語法更接近於很自然的表達方式,更容易理解。但如果要深入進去作為高手,那確實還是不容易的。Java涉及的面很廣,而且框架有些也讓人生畏,可能讓人感覺Java很難。
其實Java入門是比較容易的。來看看Java的基礎知識。
一個Java程式可以認為是一系列物件的集合,而這些物件透過呼叫彼此的方法來協同工作。下面簡要介紹下類、物件、方法和例項變數的概念。
物件:物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個模板,它描述一類物件的行為和狀態。
方法:方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。
例項變數:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定。
基本語法
編寫Java程式時,應注意以下幾點:
大小寫敏感:Java是大小寫敏感的,這就意味著識別符號Hello與hello是不同的。
類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單詞首字母大寫。
原始檔名:原始檔名必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔名儲存(切記Java是大小寫敏感的),檔名的字尾為.java。(如果檔名和類名不相同則會導致編譯錯誤)。
主方法入口:所有的Java 程式由public static void main(String []args)方法開始執行。
Java識別符號
Java所有的組成部分都需要名字。類名、變數名以及方法名都被稱為識別符號。
關於Java識別符號,有以下幾點需要注意:
所有的識別符號都應該以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始
首字元之後可以是字母(A-Z或者a-z),美元符($)、下劃線(_)或數字的任何字元組合
關鍵字不能用作識別符號
識別符號是大小寫敏感的
合法識別符號舉例:age、$salary、_value、__1_value
非法識別符號舉例:123abc、-salary
Java修飾符
像其他語言一樣,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:
訪問控制修飾符 : default, public , protected, private
Java變數
Java中主要有如下幾種型別的變數
區域性變數
類變數(靜態變數)
成員變數(非靜態變數)
Java陣列
陣列是儲存在堆上的物件,可以儲存多個同類型變數。
Java列舉
Java 5.0引入了列舉,列舉限制變數只能是預先設定好的值。使用列舉可以減少程式碼中的bug。例如,我們為果汁店設計一個程式,它將限制果汁為小杯、中杯、大杯。這就意味著它不允許顧客點除了這三種尺寸外的果汁。
Java 空行
空白行,或者有註釋的行,Java編譯器都會忽略掉。
繼承
在Java中,一個類可以由其他類派生。如果你要建立一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新建立的類繼承該類。
利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些程式碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。
介面
在Java中,介面可理解為物件間相互通訊的協議。介面在繼承中扮演著很重要的角色。
介面只定義派生要用到的方法,但是方法的具體實現完全取決於派生類。
識別符號可以用來標識變數名、類名、類中的方法名和檔名等。
命名規則:
(1) 由字母、數字、下劃線、$組成,不能以數字開頭。
(2) 大小寫敏感。
(3) 不得使用java中的關鍵字和保留字。
習慣:
(1) 識別符號要符合語義資訊。
(2) 包名所有字母小寫。
(3) 類名每個單詞首字母大寫,其它小寫,如:TarenaStudent。
(4) 變數和方法:第一個單詞小寫,從第二個單詞開始首字母大寫,如:tarenaStudent。
(5) 常量:所有字母大寫,每個單詞之間用 _ 連線。
Java的八種基本型別(按位元組來分):
boolean 布林型 1個位元組 8bit(8位)
byte 位元組型別 1個位元組
char 字元型別 2個位元組
short 短整型 2個位元組
int 整型 4個位元組
float 浮點型(單精度)4個位元組
long 長整型 8個位元組
double 雙精度型別 8個位元組
Java中預設的整數型別是int,如果要定義為long ,則要在數值後加上L或者l
預設的浮點型是雙精度浮點,如果要定義float,則要在數值後面加上f或者F
一個位元組等於8位,1個位元組等於256個數。2^8
一個英文字母或者阿拉伯數字佔一個位元組
一個漢字佔2個位元組
上述是Java最基本的入門知識,其實學習上面的只是並不難,稍微花些時間就可以弄明白,但要進入實戰卻又顯得不足,需要話更多的時間學習更多的比如:開發框架,設定,還有另外的擴充套件知識,還有程式結構等等。任何一門開發工具都不簡單,都要花時間深入搞懂基礎,才能走得更高更遠。
-
3 # 德里克王Derek
如果你在使用java的過程開始慢慢感覺到難度的話,恭喜你,這說明你已經開始接觸到java這門語言或者說程式設計當中的一些核心概念了。
為什麼這麼說呢?任何程式語言和自然語言一樣,正規化和語法往往是最基礎也最容易上手的,這也是用好這麼語言的基礎。但是,熟練掌握語法和正規化並不能讓你能很好的駕馭這門語言。比如學習英語,我們能夠相對輕鬆的熟記大量單詞和語法,但是卻難以在日常對話中流利的使用英語與人交流,即便是英文寫作,也成為了大多數人英文學習者的短板。如果問你為什麼華人學不好英文,我想大多數人能夠非常輕易的給出合理的回答:1. 缺少在真實語言環境中的大量練習;2. 對於英文背後的文化內涵不夠了解。
實際上,我想這個答案也能大致回答你的問題。我們之所以會覺得java難學,無非是兩個原因:1.缺少在實際應用中大量使用java的經歷;2. 對於java這門語言背後的程式設計思想了解不多。java和英語一樣,除了基礎的語法和正規化之外,還有很多技巧性的使用方法。比如classloader,reflection以及記憶體管理,除非是有實際的需求,否則我們很難會在程式設計過程中有意識的使用它們。但是,對這些高階概念的掌握對於深入理解java是非常幫助的。而只有透過在實際中的應用,我們才有機會去花時間理解這些概念。而至於java語言背後的程式設計思想,我想這與語言本身無關,即使使用的python這種公認對初學者友好的語言,我們也將在某一階段不可避免的要問自己為什麼程式要這樣寫,這背後是什麼原因。要弄清楚這一點,就必須對於oop design pattern有一個基本的瞭解。當然,隨著經驗的積累,我想到最後很多人會從新開始認識演算法和資料結構的重要性,甚至會想去了解file system和os的實施細節等等。
總之,就像我們說話一樣,要想說的好首先必須大量練習,同時需要文化的積累。學習程式設計也是同樣的道理
-
4 # 這樣學程式設計不枯燥
很多人在學習Java的時候都會覺得難,初學程式設計,費了偌大的勁,理解了這,理解了那,竟然只是在黑框下打印出了幾個數字。
Java開發環境配了一天都沒配起來;System.out.println,一堆黑底白字有啥意思;類、介面、抽象類、繼承、多型、內部類……尼瑪,這都是什麼鬼玩意兒!學起來難免會覺得很是枯燥乏味。
學習一門程式語言一定要用合適的方式培養興趣,黑框顯然不是一個好方法。寫個帶介面的程式比成天面對控制檯程式,效果可能會好很多,因為這讓人覺得學習Java能做事情。
以前學習Java的時候,看的是“ 如鵬網 ”的影片教程——《這樣學Java不枯燥》,挺有意思的,學過的最好玩的Java課程了,課程體系的設定可以極大的激發對程式設計的興趣。學起來不枯燥;
透過開發超級瑪麗,飛機大戰,吃金幣,連連看,湯姆貓,電影彈幕動畫來講解Java的知識點,沒想到Java還可以這麼學,蠻有成就感的,影片,課件,原始碼都是可以免費下載的,有問題隨時提問,老師實時線上答疑,口碑不錯,基本上都是慕名而去的,具體的可以到如鵬網官網上去了解一下;
-
5 # 動力節點Java學院
正所謂,難者不會會者不難,長篇大論扯一堆個人覺得沒什麼太大意思。問這個問題最大的問題可能是你信心不足。如果你想學Java,我建議你別想著Java有多難,而是考慮如何去學習,學習方法,如何學好。而不是考慮這種無聊的問題,當你真的動手學起來的時候,你自然就明白到底是難還是不難了,當你學會的時候就覺得原來就是這麼一回事。好比前面有一座大山,你沒去攀登的時候覺得,哇好高啊,我能爬上去麼。等你真的爬的時候到,雖然路上有坎坷,有困難,但是當你到頂端的時候你會覺得,也就那麼回事,並沒有想象中那麼高,那麼難。
回覆列表
謝邀。先說下自己情況2018屆計算機專業畢業生,java算是剛入門,應該說剛踩上入門的門檻。java難嗎?挺難的,但好像也不是特別難。首先是最基本的java語言特性,封裝繼承多型,面向物件等等。我覺得java的難,難在於它設計的東西太多。首先,必須學習JVM,你連java這個語言的執行基礎都不懂,恐怕很難學得好。接著是併發,這是一個重點也是難點。然後是各個流行框架,時下最流行的當然是Spring。而一般的企業級開發肯定不會只使用Spring,(以下是個人經驗下的一個假設)估計還會用mybatis框架進行資料庫互動,這裡涉及到資料庫了,那你當然得會資料庫!關係型資料庫,mysql,Oracle等,也許還會讓你增加一個快取機制提高效率,那麼可能會用redis。接著,必不可少的是前端的知識,htnl css js jq這些基本的語法都是必須的。這麼一路下來你會發現,天啊我只是學java為什麼還要學這麼多其他東西???對不起,就是需要這麼多,而且還需要更多!比如計算機網路知識,最常用的比如TCP/IP協議,還有作業系統等。。我的頭都已經大……學什麼不好,為什麼要學java?做什麼不好為什麼要做程式設計師?錢多話少還禿頭早,改行吧