-
1 # 黑馬程式設計師
-
2 # IT人劉俊明
Java是目前最為流行的計算機程式語言之一,在Web開發和移動網際網路開發領域使用廣泛,在物聯網開發、大資料開發、區塊鏈開發、雲計算領域、人工智慧領域也有一定的應用。Java長期佔據各大程式語言排行榜的前列位置,有龐大的使用者群和廣泛的使用基礎,是程式設計師需要掌握的基本程式語言之一。
對於沒有任何計算機基礎的人來說,Java還是有一定難度的。這個難度在我看來體現在三個方面:
第一,Java的概念比較抽象,理解起來有一定的困難。Java是一個純粹的面嚮物件語言,面嚮物件語言的學習要清晰類、物件、屬性以及方法的概念,另外還需要掌握封裝、繼承、多型等重要特徵,這些概念的理解還是頗具難度的。
第二,Java語言格式嚴謹。Java語言與指令碼式語言一個重要的不同在於程式設計的方式過於嚴謹,Java每個功能都需要透過類來進行封裝,而封裝的過程也相對複雜。類與類之間、類與介面之間都有嚴格的定義,需要透過大量的實驗來適應這種開發方式。
第三,Java內容多。Java經過了這麼多年的發展,涵蓋了眾多核心技術,每個技術都有針對的應用場景,要掌握這些內容需要一定的時間。
雖然Java有一定的難度,但是隻要制定一個合理的學習計劃,掌握Java的使用也不是一件非常困難的事情。根據我多年的使用經驗,學習Java的技巧有以下幾點:
1.勤做實驗。實驗是學習任何程式語言的關鍵所在,多做實驗才能建立畫面感,進而理解眾多的抽象概念。
2.多做交流。多與其他程式設計師交流,你會得到很多實用的程式設計經驗。
3.參加一個實際專案,這對程式設計師的成長非常重要。
如果有Java方面的問題,或者考研方面的問題,都可以諮詢我。
-
3 # 千鋒頭號粉絲
對於初接觸java的童鞋,更快的掌握一些學習方法,對以後的java學習是很有用的。今天就為大家整理了Java學習的幾個注意要點,概括了在Java開發、測試、部署、工程化方面一些需要注意的地方,相信一定對大家有幫助。
1. 將一些需要變動的配置寫在屬性檔案中
比如,沒有把一些需要併發執行時使用的執行緒數設定成可在屬性檔案中配置。那麼你的程式無論在DEV環境中,還是TEST環境中,都可以順暢無阻地執行,但是一旦部署在PROD上,把它作為多執行緒程式處理更大的資料集時,就會丟擲IOException,原因也許是線上環境併發造成也許是其他。
如果執行緒數目可以在屬性檔案中配置,那麼使它成為一個單執行緒應用程式就變得十分容易了。我們不再需要為了解決問題而反覆地部署和測試應用了。這種方法也同樣適用於配置URL、伺服器和埠號等。
這裡推薦使用屬性檔案外化這些配置,檔案格式使用properties、yaml、hocon、json都可以。
2. 測試中儘可能模擬線上環境
生產過程中一個典型的場景就是隻使用1到3個帳戶進行測試,而這個數量本應是1000到2000個的。
在做效能測試時,使用的資料必須是真實並且未經裁剪的。不貼近真實環境的效能測試,可能會帶來不可預料的效能、拓展和多執行緒問題。
3. 對於所有外部呼叫以及內部服務都要做容錯處理
不管是RPC呼叫還是對於第三方服務的呼叫,都不能想當然的認為可用性是100%的。
不允許出現服務呼叫超時和重試,將會對應用程式的穩定性和效能造成不利地影響。
4. 安全設計上一個系統要遵循最小許可權原則
網路服務隨處可見,從而使得駭客可以輕易地利用它進行拒絕服務攻擊。
所以,設計系統時,需要遵循“最小許可權”原則,採用白名單等方式。
5. 需要提供以下文件
編寫單元測試文件並使其擁有良好的程式碼覆蓋率。
高層次的設計圖:描述了所有的元件,互動和結構。
詳細的設計圖:具體到程式碼層面的設計
系統map(類似於site map):說明系統的所有組成檔案、配置檔案等。
6. 做好系統關鍵功能的監控、錯誤恢復、備份等
對於系統一些至關重要的功能模組要做好對其的監控,防止其影響系統的執行,造成不可估算的損失。
另外,如果可以,監控到故障後去去試圖恢復,恢復失敗再發送告警。對於一些很重要的資料檔案,還要做到冗餘備份,防止發生一些突然故障造成資料丟失。
7. 資料庫設計時設計一些便於追蹤歷史、整理的列
比如created_time、update_time可以說明記錄的建立和更新時間。;created_by、updated_by可以說明記錄是由誰建立和更新的。
8. 制定好專案回滾計劃
新的功能上線時,如果發生故障,沒有一份回滾計劃,那麼可能會手忙腳亂。有一個良好的回顧及計劃,可以讓你能夠有條不紊的執行相關操作,將系統恢復到一個可執行的狀態。
9. 專案上線前要做好量化分析
對於專案中用到的記憶體、資料庫、檔案、快取等,要做好量化分析。預估出未來一段時間的空間佔用,給運維分配機器時一個參考。防止,由於資料量增長過快,導致儲存不夠。
10. 制定好系統的部署計劃。
系統部署的平臺是一個至關重要的部分。對於平臺的描述,不能僅限於一臺伺服器、兩個資料庫這個層面,至少需要包括:
作業系統的特定版本,JVM等。
有多少記憶體(包括物理記憶體,JVM堆記憶體,JVM棧記憶體和JVM永久代的空間)。
CPU(核心數)。
負載均衡器,需要的節點數、節點型別,比如是Active-Standby型還是Active-Active型。
檔案系統要求,例如,你的應用程式可能會收集生成的日誌並將其儲存很長的週期,之後才進行歸檔。這樣的話,你就需要有足夠的硬碟空間。
11. 選擇最合適的工具/技術
很多情況下,開發者會在生產系統中使用一門想要學習的語言或某種工具。通常這不是最好的選擇。比如,為已經實際上是關係型的資料使用NoSQL資料庫。不管是語言還是工具,都有其適用的場景。類似“PHP”是最好的語言這種,只能表示呵呵。
12. 在一些關鍵技術領域具有充足的知識儲備。
設計模式
JVM調優
多執行緒“併發問題”
事務問題,包括分散式事務
效能問題,包括GC、計算等
快取
好好學習,天天向上。Java學習,基礎一定要打好,只有夯實了基礎,在以後的java開發中才能精準的找到問題,解決問題。
回覆列表
Java難不難這個問題,我看到過太多次了,真的很想說,你開始學走路的時候難嗎?你開始上初中的時候難嗎?學Java就和上初高中一樣,只是看你好不好學,所有的知識教給你,你學的程度取決於你自己!
這是朋友和我聊天的記錄,學Java,晚上學到十一點,想想現在你還能學到這麼晚嗎?所有說,學習這種事,不僅要看機構怎麼樣,還要靠個人的努力。 好的機構+個人努力=成功!
Java學習技巧1.書是人類進步的階梯,目前市面上不僅僅有書,還有影片。要說的是,兩者都要學,而且一定要把基礎打好,基礎打不好後面學起來很費勁!
推薦書籍:
2.可能剛開始你並不是碼程式碼,這時候你要跟著學,多敲,另外,有些東西用熟了就要了熟於胸,不要一邊做,一邊查百度,當然不會的時候肯定是需要查百度的!
3無論你學到什麼階段,都要去不斷的最佳化自己的程式設計,能用3行實現的程式,不用5行,這樣你編寫的程式才能更加凝練。而且,程式設計學習的中後期,就要重視演算法,儘量程式設計優質的程式,這才是程式設計的美妙之處。
Java學習線路圖第一階段:
推薦教程:Java基礎班教程-小白的福音
第二階段:
推薦教程:Java程式設計輕鬆入門教程/Java基礎影片精華版深入淺出
第三階段:
推薦影片:Javaweb網上商城/Maven精品教程/輕鬆掌握JavaWeb影片教程
第四階段:
配套影片:Springmvc由淺入深全套/Mybatis由淺入深全套
配套影片:2018年Vue.js深入淺出教程