1. 程式人生 > >從0開始學大資料-(Java基礎開篇)

從0開始學大資料-(Java基礎開篇)

我們從零開始學習大資料技術,從java基礎,到Linux技術涉獵,再深入到大資料技術的Hadoop、Spark、Storm技術,最後到大資料企業平臺的搭建,層層遞進,由點到面!希望技術大牛能過來指導學習。

一、序言:

2017年,這一年人才市場發生了巨大的變化,經歷了O2O、P2P、網際網路+、共享經濟、大資料、AI和區塊鏈等,網際網路行業的各大公司也都走在風口浪尖,不斷的尋求突破。傳統企業更加不在話下,都在做極力做數字化轉型規劃。但最終不管市場怎麼變化,作為技術人員,我們必須要保持強烈的求知慾,活到老學到老,不斷的升級自我,這樣才不會被市場淘汰。(雖然感覺很雞湯,但說的就是事實)

大資料學習QQ群119599574

這段時間有很多朋友問我,問題大同小異,大體的意思就是很懷念前幾年的市場狀態,考了一個CCIE(Cisco Certified Internetwork Expert)之後,很容易就可以獲得一份豐厚待遇的工作,但是現在市場變化這麼快,作為網路工程師的我們在職場上沒有太大的競爭力,危機感萌生,不知道在接下來的職場要如何選擇。

其實,一直都跟朋友們分享的,作為網路工程師想必很多都會經歷思科認證考試,不管是通過了CCNA、CCNP和CCIE,每個認證考試的通過都不是我們的終點,而是我們的起點。我們獲得的不僅僅是一張證書,而是獲得了一種自我學習和提升的能力。

近兩年的雲端計算(IaaS、PaaS和SaaS)、大資料和人工智慧等領域主要以Java技術為主,為了與時俱進,筆者也開始學習Java,也推薦大家可以學習下(筆者雖然獲得了ISP CCIE,DC CCIE和Vmware等認證的,但之前對Java也是沒有接觸過,本次學習分享也是為下一步大資料學習打基礎,希望可以跟大家一起交流,一起進步。)

以上言論也是通過朋友分享和自身感受,純粹交流,不喜勿噴,也希望有大牛過來指導!

二、Java發展史

好了,煽完情,吹完牛皮,是該來聊聊正經話題了。

要學習一門技術,我們必須要先了解它,那下面先聊聊Java的發展史。

Java 是一門程式語言,擁有跨平臺、面向物件、泛型程式設計等特性。

Java這個名字的由來,是Java創始人員團隊中其中一名成員由於靈感想到的,想起自己在Java島(爪哇島)上曾喝過一種美味的咖啡,於是這種計算機程式語言就命名為Java,以一杯熱咖啡為logo.

同時,還需要了解下Java之父-James Gosling(詹姆斯·高斯林)  ,不要學了大半天Java,連Java之父是誰都不知道,就很尷尬了。

Java的版本演進:JDK(Java Development Kit)

1.0.2

1.1.1->1.1.6->1.1.7->1.1.8

1.2.1

Java 2 SDK

1.2.2  

1.3.0->1.3.1

1.4.0->1.4.1->1.4.2->1.5.0(5.0),1.6(6.0),1.7(7.0),8.0,9.0(最新版本)

注:Java到1.5版本之後,增加了很多新特性,與之前的版本區別比較大,所以從1.5開始就以5.0這種叫法。

記住幾個時間軸:

1995年5月:Java問世

1996年1月:JDK1.0版本釋出(里程碑)

1997年2月:JDK 1.1面世

1999年6月:第二代Java平臺釋出(簡稱為Java2)

因此,Java2的“2”代表是Java第二代的意思。

Java 2有3個版本:

J2SE :(Java 2 platform standard Edition)標準版

  • 是為開發者普通桌面何商務應用程式提供解決方案

  • 該技術體系是其他兩者的基礎,可以完成一些桌面應用程式的開發,如QQ,YY等

J2ME :(Java Platform,Micro Edition)小型版

  • 是為了開發電子消費產品和嵌入式裝置提供的解決方案

  • 目前主流的Android底層就是JAVA開發的

J2EE:(Java 2 Platform Enterprise Edition)企業版

  • 是為了開發企業環境下的應用程式提供的一套解決方案

  • 該技術體系中包含的技術如Servlet,JSP等,主要針對於Web應用程式開發

注:Java 5.0版本後,更名為 JAVAEE  JAVASE  JAVAME

三、JAVA的特點(包含不僅限於以下):吸取了C 和 C++語言的特性

  1. 面向物件性

  2. 建壯性

  3. 跨平臺性(write once , run anywhere)(主要有JVM,JVM是Java的虛擬機器,類似一個平臺)

這裡我們將重點討論跨平臺特點,Java是怎麼做到跨平臺的?

開始之前,我們先看下面的圖:

比如左邊的圖,當我們中國人,在不懂外語的情況下,要與日本人或者韓國人做交流,中間需要有一個翻譯,與不同國家的人交流,需要懂對應語言的翻譯。

對應到Java,JVM就是充當的翻譯的角色,要跨平臺就是需要不同的JVM做支撐,每一種平臺的JVM都是不一樣的。

所以只要在系統上安裝上JVM,通過Java語言編寫的應用程式在不同的系統平臺上都可以執行。

四、JDK、JRE和JVM的作用和關係

(1)作用

  • JVM:保證Java語言跨平臺

  • JRE:Java程式的執行環境(Java runtime Environment)

  • JDK:Java程式的開發環境

(2)關係

  • JDK: JRE+tools(工具,主要是在lib下面的)

  • JRE:JVM+class library (類庫)

即:JDK>JRE>JVM(JVM保證Java跨平臺能力),所以我們將下載最全的JDK包。

Java 概念圖

五、安裝JDK工具包

編寫程式之前,我們需要先從Oracle官網下載JDK8(目前最新的是JDK9,我用的是JDK8):

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

我是windows 64位的作業系統,所以下載的是windows x64的,你們可以根據你們的系統型別下載對應的即可。

建議:安裝路徑不要有中文或者特殊字元和空格等,所有和開發相關的都統一放在一個目錄。

筆者是直接安裝在E:\Java\JDK下,便於查詢。安裝完成之後,目錄如下:

重點了解下以下幾個:

bin:為Java開發用到的工具

db:存放的是資料庫檔案

jre:為執行環境

src.zip:為Java開發工具包的原始碼檔案

接下來,我們需要給Java設定一下環境變數,以確保Javac指令和Java指令在任何目錄下執行。

新建環境變數“JAVA_HOME”

編輯環境變數“path”,新建%JAVA_HOME\bin

六、編寫第一個Java程式(HelloWorld)

class HelloWorld{

public static void main(String[] args){

System.out.println("HelloWorld");

}

}

1、程式解釋:

(1)Java程式的最基本單位是類,所以我們要定義一個類,

    • 格式: class 類名

    • 舉例: class HelloWorld

(2)在類中寫內容的時候,用大括號括起來{}。

(3)Java程式要想執行,必須有main方法

    • 格式: public static void main(String[] args)

(4)方法要指向哪些東西,也用大括號括起來

(5)要做什麼呢?今天我們僅僅做了一個簡單的輸出

    • 格式: System.out.println("HelloWorld");

    • 注意:""裡面的內容是可以改動的

2、Java 程式開發執行流程:

(1)編寫Java源程式(.java檔案)

(2)通過javac命令編譯生成.class檔案

(3)通過java命令執行.class檔案

3、程式執行結果

(1)先用javac編譯生成.class檔案

(2)Java命令執行.class檔案,輸出執行結果

七、Java程式執行中常見問題:

  1. 副檔名被隱藏了,無法正常執行Java程式,所以需要把副檔名顯示

  2. 建議檔名和類名稱一致

  3. Java程式嚴格區分大小寫的

  4. 見到 非法字元:\65307錯誤,都是中英文輸入法問題,Java程式編寫都是要以英文輸入法

  5. 括號的配對問題,一般來說,括號都是成對出現的。

  6. 遇到“在類Helloworld 中找不到主方法,請將主方法定義為”,這個肯定是主方法的格式問題
    大資料學習QQ群119599574