從0開始學大數據-Java基礎開篇(1)

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

一、序言:

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


這段時間有很多朋友問我,問題大同小異,大體的意思就是很懷念前幾年的市場狀態,考了一個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.

javalogo.png


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

jg.png



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是怎麼做到跨平臺的?

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


JVM.png

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


對應到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包。


jvtu.png

Java 概念圖


五、安裝JDK工具包

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

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


toolpack.png

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


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


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


ml.png

重點了解下以下幾個:

bin:爲Java開發用到的工具

db:存放的是數據庫文件

jre:爲運行環境

src.zip:爲Java開發工具包的源碼文件


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


env.png

新建環境變量“JAVA_HOME”


newpath.png

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


pathbin.png
pathcode.png


六、編寫第一個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文件


process.png

3、程序執行結果

(1)先用javac編譯生成.class文件


class.png

(2)Java命令執行.class文件,輸出運行結果


class2.png


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

  1. 文件擴展名被隱藏了,無法正常執行Java程序,所以需要把擴展名顯示

  2. 建議文件名和類名稱一致

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

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

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

  6. 遇到“在類Helloworld 中找不到主方法,請將主方法定義爲”,這個肯定是主方法的格式問題


好了,今天也是做了一個好的開始

本人能力有限,如有不足,還望指正

感謝大家一如既往的支持

希望一起分享給更多的人

讓大家一起學習大數據技術

轉載需聯繫授權

×××公衆號長按關注.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章