打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜>
打怪升級之小白的大數據之旅(一)
Java基礎語法之Java的身世之謎
打怪升級之小白的大數據之旅(一)
前言
一、學習大數據之前
二、Java基礎
what?
why?
how?
總結
前言
做了幾年爬蟲,感覺天花板還是有的,要么是反爬過于嚴苛,要么是不敢爬(用戶個人信息等敏感數據),爬蟲做一做,總有一個將數據利用起來的夢想,因此,網羅度娘,CSDN、知乎、簡書以及尚硅谷等知識庫,進行大數據打怪升級之旅
引言
學習大數據之前
市面上的大數據框架90%以上都是使用Java開發語言,因此,作為一個Java小白,我從零開始學java,然后再學大數據~
?
Java基礎
學習一個知識前,我通常問自己三個W(what? why? how?)
what?
java是什么? 了解java,不得不提計算機語言的發展史了
計算機語言的發展
第一代:
機器語言? 0 1 電信號, 我的理解就是一個電路的開和關, 想象有一個最基礎的串聯電路
?開燈 關燈 對應的就是 0 和 1
第二代:
匯編語言? 利用注記符表示一條計算機指令: 例如MOV AX BX等
匯編語言的誕生,意味著程序員的誕生了, 助記符為了方便我們知道這個01是什么,不然一堆的01,只有計算機自己知道: 011001010101010101.....
第三代:
高級語言? c c++ java python
隨著我們越來越懶,助記符還是不方便,高級語言誕生了, c, java python等等由此孕育而生
他們底層都是字節碼文件,我個人理解是這個醬紫的:
c --> java ---> python
c 比匯編好一些,雖然大大提高了我們程序員的代碼編程,但還有繁瑣的指針.
因此就有大神 開發了Java,他就是?Java之父-----詹姆斯.高斯林(James Gosling)
Java 因為在變量命名時還需要聲明數據類型,也不是很方便啊,所以又有大神在一個圣誕節無聊的時候寫出了python
20世紀90年代初Python語言誕生(Python的創始人為荷蘭人吉多·范羅蘇姆)
?
當然了,python不是基于Java寫的,不要被我的這個思路繞進去了~~它是基于ABC這個教學語言開發的??
我就接觸過這么幾個語言,就拿這幾個做了個例子,都是個人的看法,并不完全正確哈~~
好了,總結一下計算機語言的發展:計算機語言的發展,越來越接近人類的自然語言,它就相當于一個字典,將0 1信號與我們的自然語言相轉換
?
知道了計算機語言的發展史,我們接下來就要正式開始從Java學起了~蓋房子,首先要有一個圖紙,一個大的框架,因此,JavaSE的大綱如下:
JavaSE課程體系
- 第一部分:計算機編程語言核心結構:數據類型、運算符、流程控制、數組、…
- 第二部分:Java面向對象核心邏輯:類和對象、封裝、繼承、多態、抽象、接口、…
- 第三部分:JavaSE核心高級應用:集合、I/O、多線程、網絡編程、反射機制、…
- 第四部分:Java新特性:Lambda表達式、函數式編程、新Date/Time API、接口的默認、靜態和私有方法、…
- 第五部分:MySQL/JDBC核心技術:SQL語句、數據庫連接池、DBUtils、事務管理、批處理
知道了大框架,我們首先就需要知道Java的版本發展史,既然是高級語言嘛,它總歸是慢慢成長起來的:
Java版本歷史變更
Java 1.0 1996.1.23日于Sun公司發布第一個java的開發工具包
Java5.0 2004年9.30日 java自此開始,版本號不再聲明1.x版本,開始稱之為5.0
此后,java版本命名都是從5.x往后迭代,目前常用的java8 也稱之為java1.8
?
不得不說,曾經牛逼哄哄的SUN公司依舊沒能逃過被收購的命運,只能感嘆它沒有抓住歷史機遇吧~~
Java5.0是一個大的版本更新,它發布了三個版本,SE EE和ME,用我自己的理解就是,SE就是基礎版本,面向群眾,打好群眾基礎就相當于免費的廣告投放,有了用戶群體,當然不缺金主爸爸,因此JavaEE版本提供各種企業環境的解決方案,隨著時代發展,個人需求的旺盛,因此JavaME也是必不可少的,我們通常說Java基礎,都是說JavaSE,而真正的商業開發,都是用JavaEE
Java技術體系平臺
- JavaSE(Java Platform, Standard Edition標準版):允許您在桌面和服務器上開發和部署Java應用程序。Java提供了豐富的用戶界面、性能、多功能性、可移植性和當今應用程序所需的安全性。
- JavaEE(Java Platform, Enterprise Edition企業版):是為開發企業環境下的應用程序提供的一套解決方案,主要針對于Web應用程序開發。
- JavaME(Java Platform, Micro Edition 小型版):為互聯網上的嵌入式和移動設備上運行的應用提供了一個健壯、靈活的環境:微控制器、傳感器、網關、移動電話、個人數字助理(PDA)、電視機頂盒、打印機等等。JavaME包括靈活的用戶界面、健壯的安全性、內置的網絡協議,以及支持動態下載的網絡和離線應用程序。基于JavaME的應用程序在許多設備上都是可移植的,但是利用了每個設備的本機功能。
- Java Embedded: 用于解鎖物聯網的智能設備的價值: 通過遠程市場更新和刷新功能延長產品生命周期和價值; 利用Java的可伸縮性、健壯性、可移植性和全套功能,提高生產效率,降低成本,縮短上市時間; 在邊緣啟用快速數據功能;
- Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能夠承載采用Java技術的應用程序。Java card提供了一個安全的、可互操作的執行平臺,它可以在一個資源受限的設備上存儲和更新多個應用程序,同時保持最高的認證級別和與標準的兼容性。
- Java TV:是一種基于JavaME的技術,它為開發在tv和機頂盒設備上運行的java應用程序提供了一個性能良好、安全且易于實現的解決方案。使用Java TV運行時,開發人員可以輕松創建應用程序,例如電子節目指南(EPG)、視頻點播(VOD)客戶端、游戲和教育應用程序、用于訪問Internet數據的應用程序(例如天氣、新聞播報器、社交網絡)以及大多數藍光光盤標題上的用戶界面和獎金內容。
why?
知道了版本,平臺,我們對它的背景基本上就摸的差不多了,了解了產品之后,我們當然需要知道能用它來做什么:
Java的主要應用領域
- 企業級應用 :主要指復雜的大企業軟件系統、各種類型網站后臺系統。 Java的安全機制以及它的跨平臺優勢,使在分布式系統領域開發中有廣泛應用。包括金融、電信、交通電子商務等。
- 大數據平臺開發 :各類框架有 Hadoop,spark ,storm,flink 等,就這類技術生態圈來講,還有各種中間件如 flume ,kafka ,sqoop 等,這些框架以及工具大多數是用 Java 編寫而成,但提供諸如 Java,scala ,Python,R等各種語言API供編程。
- Android 移動平臺應用 :Android應用程序使Java語言編寫。Android開發水平的高低很大程度上取決于 Java語言核心能力是否扎實 。
Java語言的特點
- 完全面向對象:Java語言支持封裝、繼承、多態,面向對象編程,讓程序更好達到高內聚,低耦合的標準。
- 支持分布式:Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用于網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
- 健壯型:Java的強類型機制、異常處理 等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。
- 安全:Java通常被用在網絡環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。如:安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節代碼檢查。
- 跨平臺性:Java程序(后綴為java的文件)在Java平臺上被編譯為體系結構中立的字節碼格式(后綴為class的文件),然后可以在實現這個Java平臺的任何系統中運行。
注:
分布式原理:將一個大模塊的不同任務拆分為子模塊,交由各個子模塊單獨完成后,進行組裝,特點是各個子模塊也可向下拆分成集群來提高效率
集群原理:將一個大模塊拆分為多個子模塊,并交由各個子模塊單獨完成各自任務,主要特點是,各個自模塊完成的任務相同
上面的注解是我自己對分布式這塊的理解,說的不正確的話,歡迎各位前來吐槽~我們共同學習共同打怪升級~
how?
怎么學習Java?
我們對一個事物的背景了解清楚,知道他用來干什么,就要開始詳細了解一下它,正所謂知己知彼,才能百戰百勝~
首先,我們要知道Java的跨平臺原理
計算機的發展從笨重的百米高的機器,到現在人手一部手機,可謂日新月異,所以Java作為一個高級語言,它的跨平臺原理我們必須要知道
- 概念:
- 不論是臺式機,手機,平板還是什么嵌入式軟件,我們都需要在操作系統上運行一個軟件,軟件就是一個程序,這個程序都必須要運行在操作系統上(這塊的知識點,度娘會很好的告訴大家,我就不啰嗦了~)我們用java編寫的軟件可以運行在任何操作系統上
- 大白話就是: 用Java編寫的程序,可以一處開發,到處運行!
- 原理:
- JVM??java virtual maching (java虛擬機),虛擬機有windows版本,linux版本,max版本
-
如圖上所示,Java的虛擬機本身是不具備跨平臺功能的,每個操作系統下都有不同版本的虛擬機。就是因為這個,我們的Java就可以實現跨平臺啦~~
-
- JRE (Java Runtime Environment) :是Java程序的運行時環境,包含JVM 和運行時所需要的核心類庫。
-
我們想要運行一個已有的Java程序,那么只需安裝JRE 即可。
-
- JDK (Java Development Kit):是Java程序開發工具包,包含JRE 和開發人員使用的工具。
- 我們想要開發一個全新的Java程序,那么必須安裝JDK ,其內部包含JRE。
- JVM??java virtual maching (java虛擬機),虛擬機有windows版本,linux版本,max版本
是不是有一點點混亂?別亂,耐心看下圖:
- JDK JRE JVM關系圖:
- 一句話: JDK包含JRE,JRE包含JVM
好啦,今天就介紹這么多,后面我會一點點記錄我學習大數據的路線,因為我也是從Java零基礎開始的,所以讓我們一起成長,一起進步~~不忘初心.
總結
從計算機語言的發展到Java的跨平臺原理,相信大家對Java有了一個初步的認識,歡迎大家后臺私信我,共同探討學習方法,我在Java基礎完畢后,會分享我總結的Java基礎思維導圖,方便大家和自己進行知識點回顧~
總結
以上是生活随笔為你收集整理的打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜>的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cocos2dx引擎各历史版本下载
- 下一篇: Java获取电脑硬件信息做license