日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜>

發(fā)布時(shí)間:2023/12/29 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜> 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

打怪升級(jí)之小白的大數(shù)據(jù)之旅(一)

Java基礎(chǔ)語法之Java的身世之謎

打怪升級(jí)之小白的大數(shù)據(jù)之旅(一)

前言

一、學(xué)習(xí)大數(shù)據(jù)之前

二、Java基礎(chǔ)

what?

why?

how?

總結(jié)


前言

做了幾年爬蟲,感覺天花板還是有的,要么是反爬過于嚴(yán)苛,要么是不敢爬(用戶個(gè)人信息等敏感數(shù)據(jù)),爬蟲做一做,總有一個(gè)將數(shù)據(jù)利用起來的夢想,因此,網(wǎng)羅度娘,CSDN、知乎、簡書以及尚硅谷等知識(shí)庫,進(jìn)行大數(shù)據(jù)打怪升級(jí)之旅


引言

學(xué)習(xí)大數(shù)據(jù)之前

市面上的大數(shù)據(jù)框架90%以上都是使用Java開發(fā)語言,因此,作為一個(gè)Java小白,我從零開始學(xué)java,然后再學(xué)大數(shù)據(jù)~

?

Java基礎(chǔ)

學(xué)習(xí)一個(gè)知識(shí)前,我通常問自己三個(gè)W(what? why? how?)

what?


java是什么? 了解java,不得不提計(jì)算機(jī)語言的發(fā)展史了

計(jì)算機(jī)語言的發(fā)展

第一代:

機(jī)器語言? 0 1 電信號(hào), 我的理解就是一個(gè)電路的開和關(guān), 想象有一個(gè)最基礎(chǔ)的串聯(lián)電路
?開燈 關(guān)燈 對應(yīng)的就是 0 和 1

第二代:

匯編語言? 利用注記符表示一條計(jì)算機(jī)指令: 例如MOV AX BX等

匯編語言的誕生,意味著程序員的誕生了, 助記符為了方便我們知道這個(gè)01是什么,不然一堆的01,只有計(jì)算機(jī)自己知道: 011001010101010101.....

第三代:

高級(jí)語言? c c++ java python

隨著我們越來越懶,助記符還是不方便,高級(jí)語言誕生了, c, java python等等由此孕育而生

他們底層都是字節(jié)碼文件,我個(gè)人理解是這個(gè)醬紫的:

c --> java ---> python

c 比匯編好一些,雖然大大提高了我們程序員的代碼編程,但還有繁瑣的指針.

因此就有大神 開發(fā)了Java,他就是?Java之父-----詹姆斯.高斯林(James Gosling)

Java 因?yàn)樵谧兞棵麜r(shí)還需要聲明數(shù)據(jù)類型,也不是很方便啊,所以又有大神在一個(gè)圣誕節(jié)無聊的時(shí)候?qū)懗隽藀ython

20世紀(jì)90年代初Python語言誕生(Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆)

?

當(dāng)然了,python不是基于Java寫的,不要被我的這個(gè)思路繞進(jìn)去了~~它是基于ABC這個(gè)教學(xué)語言開發(fā)的??

我就接觸過這么幾個(gè)語言,就拿這幾個(gè)做了個(gè)例子,都是個(gè)人的看法,并不完全正確哈~~

好了,總結(jié)一下計(jì)算機(jī)語言的發(fā)展:計(jì)算機(jī)語言的發(fā)展,越來越接近人類的自然語言,它就相當(dāng)于一個(gè)字典,將0 1信號(hào)與我們的自然語言相轉(zhuǎn)換

?

知道了計(jì)算機(jī)語言的發(fā)展史,我們接下來就要正式開始從Java學(xué)起了~蓋房子,首先要有一個(gè)圖紙,一個(gè)大的框架,因此,JavaSE的大綱如下:

JavaSE課程體系

  • 第一部分:計(jì)算機(jī)編程語言核心結(jié)構(gòu):數(shù)據(jù)類型、運(yùn)算符、流程控制、數(shù)組、…
  • 第二部分:Java面向?qū)ο蠛诵倪壿?#xff1a;類和對象、封裝、繼承、多態(tài)、抽象、接口、…
  • 第三部分:JavaSE核心高級(jí)應(yīng)用:集合、I/O、多線程、網(wǎng)絡(luò)編程、反射機(jī)制、…
  • 第四部分:Java新特性:Lambda表達(dá)式、函數(shù)式編程、新Date/Time API、接口的默認(rèn)、靜態(tài)和私有方法、…
  • 第五部分:MySQL/JDBC核心技術(shù):SQL語句、數(shù)據(jù)庫連接池、DBUtils、事務(wù)管理、批處理

知道了大框架,我們首先就需要知道Java的版本發(fā)展史,既然是高級(jí)語言嘛,它總歸是慢慢成長起來的:

Java版本歷史變更

Java 1.0 1996.1.23日于Sun公司發(fā)布第一個(gè)java的開發(fā)工具包

Java5.0 2004年9.30日 java自此開始,版本號(hào)不再聲明1.x版本,開始稱之為5.0

此后,java版本命名都是從5.x往后迭代,目前常用的java8 也稱之為java1.8

?

不得不說,曾經(jīng)牛逼哄哄的SUN公司依舊沒能逃過被收購的命運(yùn),只能感嘆它沒有抓住歷史機(jī)遇吧~~

Java5.0是一個(gè)大的版本更新,它發(fā)布了三個(gè)版本,SE EE和ME,用我自己的理解就是,SE就是基礎(chǔ)版本,面向群眾,打好群眾基礎(chǔ)就相當(dāng)于免費(fèi)的廣告投放,有了用戶群體,當(dāng)然不缺金主爸爸,因此JavaEE版本提供各種企業(yè)環(huán)境的解決方案,隨著時(shí)代發(fā)展,個(gè)人需求的旺盛,因此JavaME也是必不可少的,我們通常說Java基礎(chǔ),都是說JavaSE,而真正的商業(yè)開發(fā),都是用JavaEE

Java技術(shù)體系平臺(tái)

  • JavaSE(Java Platform, Standard Edition標(biāo)準(zhǔn)版):允許您在桌面和服務(wù)器上開發(fā)和部署Java應(yīng)用程序。Java提供了豐富的用戶界面、性能、多功能性、可移植性和當(dāng)今應(yīng)用程序所需的安全性。
  • JavaEE(Java Platform, Enterprise Edition企業(yè)版):是為開發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案,主要針對于Web應(yīng)用程序開發(fā)。
  • JavaME(Java Platform, Micro Edition 小型版):為互聯(lián)網(wǎng)上的嵌入式和移動(dòng)設(shè)備上運(yùn)行的應(yīng)用提供了一個(gè)健壯、靈活的環(huán)境:微控制器、傳感器、網(wǎng)關(guān)、移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、電視機(jī)頂盒、打印機(jī)等等。JavaME包括靈活的用戶界面、健壯的安全性、內(nèi)置的網(wǎng)絡(luò)協(xié)議,以及支持動(dòng)態(tài)下載的網(wǎng)絡(luò)和離線應(yīng)用程序。基于JavaME的應(yīng)用程序在許多設(shè)備上都是可移植的,但是利用了每個(gè)設(shè)備的本機(jī)功能。
    • Java Embedded: 用于解鎖物聯(lián)網(wǎng)的智能設(shè)備的價(jià)值: 通過遠(yuǎn)程市場更新和刷新功能延長產(chǎn)品生命周期和價(jià)值; 利用Java的可伸縮性、健壯性、可移植性和全套功能,提高生產(chǎn)效率,降低成本,縮短上市時(shí)間; 在邊緣啟用快速數(shù)據(jù)功能;
    • Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能夠承載采用Java技術(shù)的應(yīng)用程序。Java card提供了一個(gè)安全的、可互操作的執(zhí)行平臺(tái),它可以在一個(gè)資源受限的設(shè)備上存儲(chǔ)和更新多個(gè)應(yīng)用程序,同時(shí)保持最高的認(rèn)證級(jí)別和與標(biāo)準(zhǔn)的兼容性。
    • Java TV:是一種基于JavaME的技術(shù),它為開發(fā)在tv和機(jī)頂盒設(shè)備上運(yùn)行的java應(yīng)用程序提供了一個(gè)性能良好、安全且易于實(shí)現(xiàn)的解決方案。使用Java TV運(yùn)行時(shí),開發(fā)人員可以輕松創(chuàng)建應(yīng)用程序,例如電子節(jié)目指南(EPG)、視頻點(diǎn)播(VOD)客戶端、游戲和教育應(yīng)用程序、用于訪問Internet數(shù)據(jù)的應(yīng)用程序(例如天氣、新聞播報(bào)器、社交網(wǎng)絡(luò))以及大多數(shù)藍(lán)光光盤標(biāo)題上的用戶界面和獎(jiǎng)金內(nèi)容。

why?

知道了版本,平臺(tái),我們對它的背景基本上就摸的差不多了,了解了產(chǎn)品之后,我們當(dāng)然需要知道能用它來做什么:

Java的主要應(yīng)用領(lǐng)域

  • 企業(yè)級(jí)應(yīng)用 :主要指復(fù)雜的大企業(yè)軟件系統(tǒng)、各種類型網(wǎng)站后臺(tái)系統(tǒng)。 Java的安全機(jī)制以及它的跨平臺(tái)優(yōu)勢,使在分布式系統(tǒng)領(lǐng)域開發(fā)中有廣泛應(yīng)用。包括金融、電信、交通電子商務(wù)等。
  • 大數(shù)據(jù)平臺(tái)開發(fā) :各類框架有 Hadoop,spark ,storm,flink 等,就這類技術(shù)生態(tài)圈來講,還有各種中間件如 flume ,kafka ,sqoop 等,這些框架以及工具大多數(shù)是用 Java 編寫而成,但提供諸如 Java,scala ,Python,R等各種語言API供編程。
  • Android 移動(dòng)平臺(tái)應(yīng)用 :Android應(yīng)用程序使Java語言編寫。Android開發(fā)水平的高低很大程度上取決于 Java語言核心能力是否扎實(shí) 。

Java語言的特點(diǎn)

  • 完全面向?qū)ο?#xff1a;Java語言支持封裝、繼承、多態(tài),面向?qū)ο缶幊?#xff0c;讓程序更好達(dá)到高內(nèi)聚,低耦合的標(biāo)準(zhǔn)。
  • 支持分布式:Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
  • 健壯型:Java的強(qiáng)類型機(jī)制、異常處理 等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。
  • 安全:Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。如:安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查。
  • 跨平臺(tái)性:Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。

注:

分布式原理:將一個(gè)大模塊的不同任務(wù)拆分為子模塊,交由各個(gè)子模塊單獨(dú)完成后,進(jìn)行組裝,特點(diǎn)是各個(gè)子模塊也可向下拆分成集群來提高效率

集群原理:將一個(gè)大模塊拆分為多個(gè)子模塊,并交由各個(gè)子模塊單獨(dú)完成各自任務(wù),主要特點(diǎn)是,各個(gè)自模塊完成的任務(wù)相同

上面的注解是我自己對分布式這塊的理解,說的不正確的話,歡迎各位前來吐槽~我們共同學(xué)習(xí)共同打怪升級(jí)~

how?

怎么學(xué)習(xí)Java?

我們對一個(gè)事物的背景了解清楚,知道他用來干什么,就要開始詳細(xì)了解一下它,正所謂知己知彼,才能百戰(zhàn)百勝~

首先,我們要知道Java的跨平臺(tái)原理

計(jì)算機(jī)的發(fā)展從笨重的百米高的機(jī)器,到現(xiàn)在人手一部手機(jī),可謂日新月異,所以Java作為一個(gè)高級(jí)語言,它的跨平臺(tái)原理我們必須要知道

  • 概念:
    • 不論是臺(tái)式機(jī),手機(jī),平板還是什么嵌入式軟件,我們都需要在操作系統(tǒng)上運(yùn)行一個(gè)軟件,軟件就是一個(gè)程序,這個(gè)程序都必須要運(yùn)行在操作系統(tǒng)上(這塊的知識(shí)點(diǎn),度娘會(huì)很好的告訴大家,我就不啰嗦了~)我們用java編寫的軟件可以運(yùn)行在任何操作系統(tǒng)上
    • 大白話就是: 用Java編寫的程序,可以一處開發(fā),到處運(yùn)行!
  • 原理:
    • JVM??java virtual maching (java虛擬機(jī)),虛擬機(jī)有windows版本,linux版本,max版本
      • 如圖上所示,Java的虛擬機(jī)本身是不具備跨平臺(tái)功能的,每個(gè)操作系統(tǒng)下都有不同版本的虛擬機(jī)。就是因?yàn)檫@個(gè),我們的Java就可以實(shí)現(xiàn)跨平臺(tái)啦~~

    • JRE (Java Runtime Environment) :是Java程序的運(yùn)行時(shí)環(huán)境,包含JVM 和運(yùn)行時(shí)所需要的核心類庫。
      • 我們想要運(yùn)行一個(gè)已有的Java程序,那么只需安裝JRE 即可。

    • JDK (Java Development Kit):是Java程序開發(fā)工具包,包含JRE 和開發(fā)人員使用的工具。
      • 我們想要開發(fā)一個(gè)全新的Java程序,那么必須安裝JDK ,其內(nèi)部包含JRE。

是不是有一點(diǎn)點(diǎn)混亂?別亂,耐心看下圖:

  • JDK JRE JVM關(guān)系圖:
  • 一句話: JDK包含JRE,JRE包含JVM

好啦,今天就介紹這么多,后面我會(huì)一點(diǎn)點(diǎn)記錄我學(xué)習(xí)大數(shù)據(jù)的路線,因?yàn)槲乙彩菑腏ava零基礎(chǔ)開始的,所以讓我們一起成長,一起進(jìn)步~~不忘初心.


總結(jié)

從計(jì)算機(jī)語言的發(fā)展到Java的跨平臺(tái)原理,相信大家對Java有了一個(gè)初步的認(rèn)識(shí),歡迎大家后臺(tái)私信我,共同探討學(xué)習(xí)方法,我在Java基礎(chǔ)完畢后,會(huì)分享我總結(jié)的Java基礎(chǔ)思維導(dǎo)圖,方便大家和自己進(jìn)行知識(shí)點(diǎn)回顧~

總結(jié)

以上是生活随笔為你收集整理的打怪升级之小白的大数据之旅(一)<Java基础语法之Java的身世之谜>的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。