別樣JAVA學習(一)基礎知識,java學習基礎知識
之前Python進行機器學習發現當資料量越來越大時,單純的python處理已難以滿足,
需要用到hadoop對資料的平行處理,而hadoop用JAVA編寫,因此我開始了JAVA的學習。
以下是學習筆記
共有9章,章節大體思路是:為什麼--->是什麼--->如何做。
關於why?
目的簡而言之為了資料更有效平行處理。
關於what?
那麼歡迎來到JAVA的世界。
一、基礎常識
1、軟體開發
a:什麼是軟體?
軟體:一系列按照特定順序組織的電腦資料和指令的集合。
常見軟體:系統軟體:如DOS,windows,Linux等,
應用軟體:如掃雷,迅雷,QQ等。
b:什麼是開發?
製作軟體
2、人機互動
a:軟體的出現實現了人與電腦之間的更好的互動。
b:互動方式:
圖形化介面(Graphical User Interface GUI)
這種方式簡單直觀,使用者易於接受,容易上手操作。
命令列方式(Command Line Interface CLI)
需要有一個控制台,輸入特定的指令,讓電腦完成一些操作。
較為麻煩,需要記錄住一些命令。
3、命令列方式
dos命令列,課程中常見的命令。
dir:列出目前的目錄下的檔案以及檔案夾
md:建立目錄
rd:刪除目錄
cd:進入指定目錄
cd..:退回到上一級目錄
cd \:退回到根目錄
del:刪除檔案
exit:推出dos命令列
4、電腦語言
a:通過DOS命令列的示範,發現原來操作電腦就如何電腦說話一樣。
b:我們告訴它做什麼,它就可以做什麼。前提是,我們和它說的內容它必須識別才可以。這就是電腦語言。
4.1、什麼是電腦語言?
a:語言:是人與人之間用於溝通的一種方式。
例如:中國人與中國人用中文溝通。
而中國人要和韓國人交流,就要學習韓語。
b:電腦語言:人與電腦交流的方式。
如果人要與電腦交流,那麼就要學習電腦語。
電腦語言有很多種,如:C,C++,JAVA等。
4.2、Java語言概述
a:是SUN(Stanford University Network,斯坦福大學網路公司)1995年推出的一門進階程式設計語言。
b:是一種面向Internet的程式設計語言。
c:隨著Java技術在web方面的不斷成熟,已經成為Web應用程式的首選開發語言。
d:是簡單易學,完全物件導向,安全可靠,與平台無關的程式設計語言。
e:三種技術架構
J2EE(Java 2 Platform Enterprise Edition)企業版
J2SE(Java 2 Platform Standard Edition)標準版
J2ME(Java 2 Platform Micro Edition)小型版
f:語言特點:跨平台性
原理是什嗎?
只要在需要運行java應用程式的作業系統上,
先安裝一個Java虛擬機器(JVM Java Virtual Machine)即可。
由JVM來負責Java程式在該系統中的運行。
4.3、Java語言的環境搭建
a:明確什麼是JRE(Java Runtime Enviroment)Java運行環境,JDK(Java Development Kit)Java開發套件
b:下載JDK
c:安裝JDK
d:配置環境變數
e:驗證是否成功
4.4、Java程式開發體驗--Hello World
將Java代碼編寫到副檔名為.java的檔案中。
通過javac命令對該.java檔案進行編譯。
通過java命令對產生的class檔案進行運行。
簡而言之:編寫-->編譯-->運行
4.5配置classpath
classpath尋找順序:先在path定義的路徑找,再到當前找;
path尋找順序:先在當前找,再到path找。
本章重點:
JDK,JRE,JVM的特點
環境變數的配置path和classpath以及作用。
Java程式的編寫,編譯,運行步驟。
在配置,編寫,編譯,運行各個步驟中常見的錯誤以及解決方案。
下一章我們將講解Java語言基礎組成
推薦一本java書可以系統的學習java,從基礎學習,(有java的基礎),但是想系統的學習java
問得好,
1 基礎紮實,很有協助。
2 要學到精通。要花很長一段時間投入的。
大概寫一下個人的感覺吧,這樣的問題,網上的答案很多的,
1 初學的話,從java的本身文法開始。很多人覺得這些東西很簡單,可能一天或者一個上午就完事了。但是,所有的東西,最關鍵的細節,god in details.你看完以後,去做一下scjp的試題目,看看自己的水平,深深反省一下。不是需要去考這個認證,是讓你真正意識到自己對於java的認識。這個階段可以看一些java培訓教程,好像有一個叫張孝詳的,比較適合沒有其他語言基礎的人,如果有基礎的,可以看看thinking in java
2 然後一些提高階段,對於java的文法熟悉以後,就是熟悉java語言,對語言最好的熟悉方法是熟悉他的類庫,這個部分,個人推薦最好的書是core java,現在到7還是8版了,我看是的時候是6版本。這本書是我所知道認可程式最高的一本java書了。
3 在對文法和語言都有一定程度的熟悉以後,就要知其然後知其所以然(前提是你想真正精通這個語言,不然這個時個就可以去搞jsp了),這個時候站的角度要高一些,先看看jvm,現在國內這個方法據我看的,沒有什麼特別好的書,因為也沒有幾本,瞭解了整個java是如何啟動並執行以後。想像一下,如果自己需要實現一個java的話,如何做,帶著這個問題去jdk的原始碼,你會收穫很大的。有一本書,叫effect java,本來應該是關於最基礎的東西,但是很難的,在這個階段看的話,收穫會很不一樣的。
4 在真正花時間在前三個階段以後,打一個真正紮實的java基礎以後,就可以開始真正面java最流行的領域了,從servlet,jsp開始,然後是J2EE那些東西。那些東西在本質上考慮的更多的設計理念和設計模式的東西了。有一個叫java與模式的書,好像叫閻什麼寫的,是設計模式很不錯的一本入門的書。在看書的時候,想法要開闊一些,不妨想一下,如果我自己要實現個tomcat,應該從哪裡開始,如果有這樣的想法,對於tomcat這些東西的理解,肯定要比大多數的人深刻一些。
5 在以上的東西都學到一定程度以後,那個時間就更應該關注的是方法論的東西了。包括軟體開發模式,程式設計的方法學,這個階段比較高了,我本人研究不深入,不能提供過多的東西,只能提供一些名詞,例如重構,敏捷開發等等。國外好像一個martin, Robert等什麼的在這方面比較有研究。
以上所有的過程就需要很多的動手實踐,沒有實踐,所有的程式設計語言的學習都只是水中花,鏡中月,練拳還要練功。如果你有良好的心態(這個最重要了),不要在別人開始學習J2ee等東西的時候,受不住誘惑,偏離了這個方向,要知道,玄門的功夫都是開始入門極難,然後越來越快的,九陰白骨爪之類的就剛好相反了。學習的過程,別的什麼都不重要,最重要的一點,是勤奮, 天道酬勤。
一天16小時學習Java,一個月可以把基礎知識學完
如果你每天花16H學習的話,我相信你一點會有好成績的。
本人建議,要勞逸結合,不要把知識學會了,身體卻胯下來了。