每日熱聞!Java基礎(chǔ)一(Java語(yǔ)言概述)

2022-12-14 14:13:44 來(lái)源:51CTO博客


(資料圖片僅供參考)

一、軟件開(kāi)發(fā)介紹

軟件,即一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合。有系統(tǒng)軟 件和應(yīng)用軟件之分。人機(jī)交互方式圖形化界面(Graphical User Interface GUI)這種方式簡(jiǎn)單直觀,使用 者易于接受,容易上手操作。命令行方式(Command Line Interface CLI):需要有一個(gè)控制臺(tái),輸 入特定的指令,讓計(jì)算機(jī)完成一些操作。常用的DOS命令
dirmdrdcdcd ..cd \delexit

二、計(jì)算機(jī)編程語(yǔ)言介紹

第一代語(yǔ)言:機(jī)器語(yǔ)言。指令以二進(jìn)制代碼形式存在。第二代語(yǔ)言:機(jī)器語(yǔ)言。指令以二進(jìn)制代碼形式存在。第三代語(yǔ)言:高級(jí)語(yǔ)言C、Pascal、Fortran面向過(guò)程的語(yǔ)言C++面向過(guò)程/面向?qū)ο驤ava跨平臺(tái)的純面向?qū)ο蟮恼Z(yǔ)言.NET跨語(yǔ)言的平臺(tái)Python、Scala、go…

三、Java語(yǔ)言概述

是SUN(Stanford University Network,斯坦福大學(xué)網(wǎng)絡(luò)公司 ) 1995年推出的一 門(mén)高級(jí)編程語(yǔ)言。是一種面向Internet的編程語(yǔ)言。Java一開(kāi)始富有吸引力是因?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)用程序的首選開(kāi)發(fā)語(yǔ)言。
1.Java簡(jiǎn)史
1991年 Green項(xiàng)目,開(kāi)發(fā)語(yǔ)言最初命名為Oak (橡樹(shù))1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技術(shù)誕生2004年,發(fā)布里程碑式版本:JDK 1.5,為突出此版本的重要性,更名為JDK 5.02014年,發(fā)布JDK 8.0,是繼JDK 5.0以來(lái)變化最大的版本2018年9月,發(fā)布JDK 11.0,版本號(hào)也稱為18.9

四、Java語(yǔ)言運(yùn)行機(jī)制及運(yùn)行過(guò)程

1.Java語(yǔ)言的特點(diǎn)
面向?qū)ο髢蓚€(gè)基本概念:類、對(duì)象三大特性:封裝、繼承、多態(tài)健壯性吸收了C/C++語(yǔ)言的優(yōu)點(diǎn),但去掉了其影響程序健壯性的部分(如指針、內(nèi)存的申請(qǐng)與 釋放等),提供了一個(gè)相對(duì)安全的內(nèi)存管理和訪問(wèn)機(jī)制跨平臺(tái)性跨平臺(tái)性:通過(guò)Java語(yǔ)言編寫(xiě)的應(yīng)用程序在不同的系統(tǒng)平臺(tái)上都可以運(yùn)行?!癢rite once , Run Anywhere”原理:只要在需要運(yùn)行 java 應(yīng)用程序的操作系統(tǒng)上,先安裝一個(gè)Java虛擬機(jī) (JVM Java Virtual Machine) 即可。由JVM來(lái)負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行。
2.Java語(yǔ)言的特點(diǎn):跨平臺(tái)性

因?yàn)橛辛薐VM,同一個(gè)Java 程序在三個(gè)不同的操作系統(tǒng)中都可以執(zhí)行。這 樣就實(shí)現(xiàn)了Java 程序的跨平臺(tái)性。

3.Java兩種核心機(jī)制
Java虛擬機(jī) (Java Virtal Machine)垃圾收集機(jī)制 (Garbage Collection)
核心機(jī)制—Java虛擬機(jī)
JVM是一個(gè)虛擬的計(jì)算機(jī),具有指令集并使用不同的存儲(chǔ)區(qū)域。負(fù)責(zé)執(zhí)行指 令,管理數(shù)據(jù)、內(nèi)存、寄存器。對(duì)于不同的平臺(tái),有不同的虛擬機(jī)。只有某平臺(tái)提供了對(duì)應(yīng)的java虛擬機(jī),java程序才可在此平臺(tái)運(yùn)行Java虛擬機(jī)機(jī)制屏蔽了底層運(yùn)行平臺(tái)的差別,實(shí)現(xiàn)了“一次編譯,到處運(yùn)行”
核心機(jī)制—垃圾回收
不再使用的內(nèi)存空間應(yīng)回收—— 垃圾回收。在C/C++等語(yǔ)言中,由程序員負(fù)責(zé)回收無(wú)用內(nèi)存。Java 語(yǔ)言消除了程序員回收無(wú)用內(nèi)存空間的責(zé)任:它提供一種系統(tǒng)級(jí)線程跟蹤存儲(chǔ)空 間的分配情況。并在JVM空閑時(shí),檢查并釋放那些可被釋放的存儲(chǔ)空間。垃圾回收在Java程序運(yùn)行過(guò)程中自動(dòng)進(jìn)行,程序員無(wú)法精確控制和干預(yù)。Java程序還會(huì)出現(xiàn)內(nèi)存泄漏和內(nèi)存溢出問(wèn)題嗎?Yes!

五、Java語(yǔ)言的環(huán)境搭建:

配置環(huán)境變量 path

在dos命令行中敲入javac,出現(xiàn)錯(cuò)誤提示:錯(cuò)誤原因:當(dāng)前執(zhí)行的程序在當(dāng)前目錄下如果不存在,windows系統(tǒng)會(huì)在系 統(tǒng)中已有的一個(gè)名為path的環(huán)境變量指定的目錄中查找。如果仍未找到,會(huì) 出現(xiàn)以上的錯(cuò)誤提示。所以進(jìn)入到 jdk安裝路徑\bin目錄下,執(zhí)行javac,會(huì) 看到j(luò)avac參數(shù)提示信息。

六、Hello Word

步驟:將 Java 代碼編寫(xiě)到擴(kuò)展名為 .java 的文件中。通過(guò) javac 命令對(duì)該 java 文件進(jìn)行編譯。通過(guò) java 命令對(duì)生成的 class 文件進(jìn)行運(yùn)行
class Demo{  public static void main(String[] args){    System.out.println("mink!!!");  }}

七、常見(jiàn)為問(wèn)題和解決辦法

聲明為public的類應(yīng)與文件名一致,否則編譯失敗

編譯失敗,注意錯(cuò)誤出現(xiàn)的行數(shù),再到源代碼中指定位置改錯(cuò)

總結(jié): 學(xué)習(xí)編程最容易犯的錯(cuò)是語(yǔ)法錯(cuò)誤。Java要求你必須按照語(yǔ)法規(guī)則編寫(xiě)代碼。 如果你的程序違反了語(yǔ)法規(guī)則,例如:忘記了分號(hào)、大括號(hào)、引號(hào),或者拼 錯(cuò)了單詞,java編譯器都會(huì)報(bào)語(yǔ)法錯(cuò)誤。嘗試著去看懂編譯器會(huì)報(bào)告的錯(cuò)誤 信息。

八、注釋

單行注釋 //對(duì)于單行和多行注釋,被注釋的文字,不會(huì)被JVM(java虛擬機(jī))解釋執(zhí)行。多行注釋 /* */多行注釋里面不允許有多行注釋嵌套。文檔注釋 (java特有) /** */注釋內(nèi)容可以被JDK提供的工具 javadoc所解析,生成一套以網(wǎng)頁(yè)文件形 式體現(xiàn)的該程序的說(shuō)明文檔。操作方式
javadoc -d mydoc -author -version Demo.java
Java源文件以“java”為擴(kuò)展名。源文件的基本組成部分是類(class),如 本例中的HelloWorld類。Java語(yǔ)言嚴(yán)格區(qū)分大小寫(xiě)。一個(gè)源文件中最多只能有一個(gè)public類。其它類的個(gè)數(shù)不限,如果源文件包含 一個(gè)public類,則文件名必須按該類名命名

九、Java API文檔

API (Application Programming Interface,應(yīng)用程序編程接口)是 Java 提供 的基本編程接口。Java語(yǔ)言提供了大量的基礎(chǔ)類,因此 Oracle 也為這些基礎(chǔ)類提供了相應(yīng)的 API文檔,用于告訴開(kāi)發(fā)者如何使用這些類,以及這些類里包含的方法。下載API: ??http://www.oracle.com/technetwork/java/javase/downloads/index.html??Additional Resources-Java SE 8 Documentation下載。

十、良好的編程風(fēng)格

正確的注釋和注釋風(fēng)格使用文檔注釋來(lái)注釋整個(gè)類或整個(gè)方法。如果注釋方法中的某一個(gè)步驟,使用單行或多行注釋。正確的縮進(jìn)和空白正確的縮進(jìn)和空白運(yùn)算符兩邊習(xí)慣性各加一個(gè)空格。比如:2 + 4 * 5。塊的風(fēng)格Java API 源代碼選擇了行尾風(fēng)格

章節(jié)練習(xí)題及面試題

1.GC是什么? 為什么要有GC

GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。

2.垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收

對(duì)于GC來(lái)說(shuō),當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi)始監(jiān)控這個(gè)對(duì)象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對(duì)象。通過(guò)這種方式確定哪些對(duì)象是"可達(dá)的",哪些對(duì)象是"不可達(dá)的"。

當(dāng)GC確定一些對(duì)象為"不可達(dá)"時(shí),GC就有責(zé)任回收這些內(nèi)存空間??梢?。程序員可以手動(dòng)執(zhí)行System.gc(),通知GC運(yùn)行,但是Java語(yǔ)言規(guī)范并不保證GC一定會(huì)執(zhí)行。

標(biāo)簽: 垃圾回收 多行注釋 應(yīng)用程序

上一篇:【Python 68個(gè)內(nèi)置函數(shù)】
下一篇:漢諾塔(C語(yǔ)言)