JAVA學(xué)習(xí)記錄
今天開始記錄自己疫情在家JAVA學(xué)習(xí)的進(jìn)度和內(nèi)容。
JAVA學(xué)習(xí)第一天
一揣非、軟件開發(fā)介紹
1.1軟件開發(fā)介紹
軟件:即一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合躲因。有系統(tǒng)軟件和應(yīng)用軟件之分。
系統(tǒng)軟件:window Linux Mac
應(yīng)用軟件:qq 微信 釘釘
軟件開發(fā)就是制作軟件的過程搞监,
1.2人機(jī)交互方式:
圖形化界面:這種方式簡單直觀镰矿,容易上手 秤标。
命令行方式:需要有一個控制臺,輸 入特定的指令牢酵,讓計(jì)算機(jī)完成一些作衙猪。較為麻煩,需要記住一些命令潘拨。
1.3常用的dos命令:
1饶号、dir : 列出當(dāng)前目錄下的文件以及文件夾
2、md : 創(chuàng)建目錄? make directory
????????例如? : md aa?
3琅束、rd:刪除目錄? remove directory
????????例如: rd aa
4算谈、cd : 進(jìn)入指定目錄
? ? ? ? ? ? ?1.跳轉(zhuǎn)絕對路徑(從盤符算起的路徑 )? cd C:\AppData\Roaming
? ? ? ? ? ? ? 2. 跳轉(zhuǎn)相對路徑 (從當(dāng)前目錄跳轉(zhuǎn))
? ? ? ? ? ? ? ? ? ? ? ? 1.訪問下一級 cd 下一級目錄
? ? ? ? ? ? ? ? ? ? ? ? ?2.訪問上一級 cd..
5然眼、切換盤符:? 例如: E:?
6、cd/: 退回到根目錄
7屿岂、exit : 退出 dos 命令行
二、計(jì)算機(jī)語言介紹
2.1什么是計(jì)算機(jī)語言
1.計(jì)算機(jī)語言:人與計(jì)算機(jī)交流的方式阻肩。
2.如:C,C++,Java,php , Python 等
2.2計(jì)算機(jī)編程語言的歷程
第一代語言:機(jī)器語言---指令以二進(jìn)制代碼形式存在
第二代語言:匯編語言---使用助記符表示一條機(jī)器指令
第三代語言:高級語言---1运授、C、面向過程的語言2撕氧、C++面向過程/面向?qū)ο?喇完、Java跨平臺的純面向?qū)ο蟮恼Z言
三锦溪、JAVA語言概述
3.1JAVA語言概述
是SUN(Stanford University Network,斯坦福大學(xué)網(wǎng)絡(luò)公司 ) 1995年推出的一 門高級編程語言防楷。
是一種面向Internet的編程語言则涯。Java一開始富有吸引力是因?yàn)镴ava程序可以 在Web瀏覽器中運(yùn)行。這些Java程序被稱為Java小程序(applet)亿昏。applet使 用現(xiàn)代的圖形用戶界面與Web用戶進(jìn)行交互档礁。 applet內(nèi)嵌在HTML代碼中呻澜。
隨著Java技術(shù)在web方面的不斷成熟,已經(jīng)成為Web應(yīng)用程序的首選開發(fā)語言脊髓。
3.2JAVA語言發(fā)展史
1991年 Green項(xiàng)目栅受,開發(fā)語言最初命名為Oak (橡樹)
1994年恭朗,開發(fā)組意識到Oak 非常適合于互聯(lián)網(wǎng)
1996年,發(fā)布JDK 1.0闸衫,約8.3萬個網(wǎng)頁應(yīng)用Java技術(shù)來制作
1997年蔚出,發(fā)布JDK 1.1,JavaOne會議召開稀余,創(chuàng)當(dāng)時全球同類會議規(guī)模之最
1998年趋翻,發(fā)布JDK 1.2,同年發(fā)布企業(yè)平臺J2EE
1999年师骗,Java分成J2SE讨惩、J2EE和J2ME,JSP/Servlet技術(shù)誕生
2004年黍少,發(fā)布里程碑式版本:JDK 1.5处面,為突出此版本的重要性魂角,更名為JDK 5.0
2005年,J2SE -> JavaSE砸紊,J2EE -> JavaEE囱挑,J2ME -> JavaME
2009年,Oracle公司收購SUN游添,交易價格74億美元
2011年,發(fā)布JDK 7.0
2014年找都,發(fā)布JDK 8.0能耻,是繼JDK 5.0以來變化最大的版本
2017年亡驰,發(fā)布JDK 9.0,最大限度實(shí)現(xiàn)模塊化
2018年3月戒职,發(fā)布JDK 10.0透乾,版本號也稱為18.3
2018年9月,發(fā)布JDK 11.0蚓曼,版本號也稱為18.9
3.3JAVA在各領(lǐng)域的應(yīng)用
從JAVA的應(yīng)用領(lǐng)域來分纫版,Java語言的應(yīng)用方向主要表現(xiàn)在以下幾個方面:
企業(yè)級應(yīng)用:主要指復(fù)雜的大企業(yè)的軟件系統(tǒng)客情、各種類型的網(wǎng)站膀斋。Java的安全機(jī)制以及 它的跨平臺的優(yōu)勢,使它在分布式系統(tǒng)領(lǐng)域開發(fā)中有廣泛應(yīng)用糊识。應(yīng)用領(lǐng)域包括金融摔蓝、電信、交通拌滋、電子商務(wù)等猜谚。
Android平臺應(yīng)用:Android應(yīng)用程序使用Java語言編寫。Android開發(fā)水平的高低 很大程度上取決于Java語言核心能力是否扎實(shí)坚芜。
大數(shù)據(jù)平臺開發(fā):各類框架有Hadoop斜姥,spark,storm千贯,flink等搞坝,就這類技術(shù)生態(tài)圈來講桩撮,還有各種中間件如flume峰弹,kafka鞠呈,sqoop等等 ,這些框架以及工具大多數(shù) 是用Java編寫而成旱爆,但提供諸如Java窘茁,scala,Python山林,R等各種語言API供編程。
移動領(lǐng)域應(yīng)用:主要表現(xiàn)在消費(fèi)和嵌入式領(lǐng)域桑孩,是指在各種小型設(shè)備上的應(yīng)用洼怔,包括手 機(jī)左驾、PDA极谊、機(jī)頂盒轻猖、汽車通信設(shè)備等
3.4JAVA語言特征
Java語言是強(qiáng)制面向?qū)ο蟮?/b>域那。Java語言提供類次员、接口和繼承等原語,為了簡單起見市殷, 只支持類之間的單繼承,但支持接口之間的多繼承刹衫,并支持類與接口之間的實(shí)現(xiàn)機(jī)制
Java語言是分布式的醋寝。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編 程接口中有一個網(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語言是健壯的窘面。Java的強(qiáng)類型機(jī)制律歼、異常處理民镜、垃圾的自動收集等是Java程序 健壯性的重要保證。對指針的丟棄是Java的明智選擇险毁。
Java語言是安全的制圈。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此畔况,Java提供了一個安全機(jī) 制以防惡意代碼的攻擊鲸鹦。如:安全防范機(jī)制(類ClassLoader),如分配不同的 名字空間以防替代本地的同名類跷跪、字節(jié)代碼檢查馋嗜。
Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺上被 編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件)吵瞻,然后可以在實(shí)現(xiàn)這個 Java平臺的任何系統(tǒng)中運(yùn)行葛菇。
Java語言是原生支持多線程的甘磨。在Java語言中,線程是一種特殊的對象眯停,它必須 由Thread類或其子(孫)類來創(chuàng)建济舆。
跨平臺性
3.5JAVA語言的主要特點(diǎn)
特點(diǎn)一:面向?qū)ο?
????????兩個基本概念:類、對象
????????三大特性:封裝莺债、繼承滋觉、多態(tài)
特點(diǎn)二:健壯性
????????吸收了C/C++語言的優(yōu)點(diǎn),但去掉了其影響程序健壯性的部分(如指針齐邦、內(nèi)存的申請與
????????釋放等)椎侠,提供了一個相對安全的內(nèi)存管理和訪問機(jī)制
特點(diǎn)三:跨平臺性
????????跨平臺性:通過Java語言編寫的應(yīng)用程序在不同的系統(tǒng)平臺上都可以運(yùn)行
????????原理:只要在需要運(yùn)行 java 應(yīng)用程序的操作系統(tǒng)上,先安裝一個Java虛擬機(jī)即可措拇。由JVM來負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行我纪。
四、JAVA運(yùn)行的核心機(jī)制
4.1JAVA兩種核心機(jī)制
1.JAVA虛擬機(jī)
2.垃圾收集機(jī)制
4.2虛擬機(jī)機(jī)制
核心機(jī)制—Java虛擬機(jī)JVM是一個虛擬的計(jì)算機(jī)儡羔,具有指令集并使用不同的存儲區(qū)域宣羊。負(fù)責(zé)執(zhí)行指令璧诵,管理數(shù)據(jù)汰蜘、內(nèi)存、寄存器之宿。對于不同的平臺族操,有不同的虛擬機(jī)。 只有某平臺提供了對應(yīng)的java虛擬機(jī)比被,java程序才可在此平臺運(yùn)行Java虛擬機(jī)機(jī)制屏蔽了底層運(yùn)行平臺的差別色难,實(shí)現(xiàn)跨平臺運(yùn)行
4.3垃圾回收機(jī)制
在C/C++等語言中,由程序員負(fù)責(zé)回收無用內(nèi)存等缀。
Java 語言消除了程序員回收無用內(nèi)存空間的責(zé)任:它提供一種系統(tǒng)級線程跟蹤存儲空間的分配情況枷莉。并在JVM空閑時,檢查并釋放那些可被釋放的存儲空間尺迂。
垃圾回收在Java程序運(yùn)行過程中自動進(jìn)行笤妙,程序員無法精確控制和干預(yù)。