第一節:java語言概述
一、java簡介[了解]
1.java概述
1.1java是什么?
學習之前需要了解,java是什么。java是sun公司推出的面向對象程序設計語言,特別適用于Interent應用程序開發,它的最大特點就是“一次編譯,到處運行”,并且能夠在各種操作系統上運行,例如:windows,linux等。
1.2java名稱的由來
? Java是印度尼西亞爪哇島的英文名稱,因盛產咖啡而聞名。Java語言中的許多庫類名稱,多與咖啡有關,如JavaBeans(咖啡豆)、NetBeans(網絡豆)以及ObjectBeans (對象豆)等等。SUN和JAVA的標識也正是一杯正冒著熱氣的咖啡。Java自1995誕生,至今已經20多年的歷史。
1.3為什么學習java?
?java可以說是無處不在,其市場占有率也在不斷攀升。他已經吸收了全球最大的開發者隊伍---500W+開發者這是全球最大最具活力的開發團隊。
?目前采用java的設備已經超過45億,其中報告8億臺個人計算機、15億部移動電話及其其他手持設備、22億智能卡,以及機頂盒、打印機、網絡照相機、游戲、汽車導航系統、彩票終端、醫療設備、收費站等。
以下是最新的編程語言排行榜:
2019年03月編程語言排行榜TOP 10 榜單
https://hellogithub.com/report/tiobe/?url=/
排名 | 編程語言 | 流行度 | 對比上月 | 年度明星語言 |
---|---|---|---|---|
1 | Java | 14.880% | 0.996% | 2015, 2005 |
2 | C | 13.305% | 0.881% | 2017, 2008 |
3 | Python | 8.262% | 0.688% | 2010, 2007, 2018 |
4 | C++ | 8.126% | 0.682% | 2003 |
5 | Visual Basic .NET | 6.429% | 0.666% | |
6 | C# | 3.267% | 0.421% | |
7 | JavaScript | 2.426% | 0.422% | 2014 |
8 | PHP | 2.420% | 0.149% | 2004 |
9 | SQL | 1.926% | 0.026% | |
10 | Objective-C | 1.681% | 0.234% | 2012, 2011 |
2.java發展史
1995年5月23日,Java語言誕生
1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術
1996年9月,約8.3萬個網頁應用了JAVA技術來制作
1997年2月18日,JDK1.1發布
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
1997年9月,JavaDeveloperConnection社區成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業平臺J2EE發布
2000年5月8日,JDK1.3發布
2000年5月29日,JDK1.4發布
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機
2001年9月24日,J2EE1.3發布
2002年2月26日,J2SE1.4發布,自此Java的計算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5發布,成為Java語言發展史上的又一里程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0
2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名,以取消其中的數字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME
2006年12月,SUN公司發布JRE6.0
2009年4月20日,Oracle以74億美元收購Sun公司,取得了java的版權。
2009年12月,SUN公司發布Java EE 6
2010年11月,由于Oracle公司對于Java社群的不友善,因此Apache揚言將退出JCP
java之父James Gosling 加盟google
2011年7月28日,Oracle公司發布Java SE 7
2014年3月18日,Oracle公司發表Java SE 8
2017年9月21日,Oracle公司發表Java SE 9
2018年3月21日,Oracle公司發表Java SE 10
-
2018年9月25日,Java SE 11發布
?
3.Java語言特點
java語言豐富多彩, 通過這11個詞語來概括java語言的特性,下面來看下每個詞語所代表的含義,大概了解下就可以了。
?1.簡單的(Simple)
風格和C++很像,基本語法和C很像,但是摒棄了C++容易引發錯誤的地方,如指針、內存管理、頭文件等。提供了豐富的類庫。
2.面向對象(Object-Oriented)
簡單的來說,世界萬物皆是對象,它將重點放在了數據(也就是對象)和對象的接口上。
3.分布式的(Distributed)
Java是針對Internet的分布式環境而設計的,所以它包含了一個支持HTTP和FTP等基于TCP/IP協議的子庫,它能處理TCP/IP協議
4.解釋的(Interpreted)
Java解釋器可以在任何移植了解釋器的機器上Java字節碼。現在使用即時編譯器將字節碼翻譯成機器碼。
5.健壯的(Robust)
Java是強制類型的語言,它不僅在運行時檢查代碼,還在編譯時就檢查代碼,消除有出錯傾向的狀態。
6.安全性(Secure)
指針和釋放內存等C++功能被刪除,避免了非法內存操作。
7.結構中立的(Architecture-neutral)
編譯器生成一個體系結構中立的高層次的與機器無關的byte-code格式語言,被設計在Java虛擬機上運行。這是一種編譯過的代碼,只要有Java運行時系統,就可以在許多處理機上運行。
8.可移植的(Portable)
Java定義了獨立于平臺的基本數據類型及其運算。
9.高性能的(High-Performance)
Java通過使用及時編譯器,可以很容易的將字節碼轉換為運行這個應用程序的特定CPU的機器碼。
10.多線程的(Multi-Threaded)
多線程可以提供更好的交互性能和實時控制性能。
11.動態的(Dynamic)
Java的動態性是其面向對象設計方法的拓展,它允許程序動態地裝入運行過程中所需要的類。
其中可以簡單的概括為以下三個重要的特點:
特點一:面向對象
兩個基本概念:類、對象
三大特性:封裝、繼承、多態
特點二:健壯性
吸收了C/C++語言的優點,但去掉了其影響程序健壯性的部分。如:指針、內存的申請與釋放等
特點三:跨平臺性
跨平臺性:通過Java語言編寫的應用程序在不同的系統平臺上都可以運行。
原理:
只要在需要運行 java 應用程序的操作系統上,先安裝一個Java虛擬機 (JVM Java Virtual Machine) 即可。 由JVM來負責Java程序在該系統中的運行。
4.java語言的構成
? 所謂java的構成,就是值java運行環境的組成,從核心到外圍包括 JIT、JVM、JRE、JDK,四種區別如下:
JDK:是Java Develop ToolKit的縮寫,它里面有很多java所編寫的開發工具(如:javac.exe、jar.exe),還包括了一個jre的調試環境。
JRE:是Java Runtime Environment的縮寫,是java運行的基礎,
它提供了java運行的API,Java程序必須有JRE才能正常運行。JVM:是Java Vitual Machine的縮寫,它是java運行的虛擬機環境.
JIT:是Java In Time的縮寫,即java即時編譯器,是JVM的一部分,屬于內核部分。
其中的JVM是java運行的虛擬機環境,它是Java運行環境的重要一環
二、java快速入門[重點]
2.1.基礎常識
人機交互方式:
現實生活中,軟件的主要作用就是幫忙我們解決現實生活中的問題。例如百度提供了搜索能力,淘寶、京東提供了購物的能力。但是具體搜什么和具體買什么,得取決于我們自己告訴了軟件什么樣的指令,所以這里存在 人和軟件進行交互的問題。一般交互主要分為以下兩種情況:
圖形化界面(GraphicalUser Interface GUI)這種方式簡單直觀,使用者易于接受,容易上手操作。
命令行方式(Command Line Interface CLI):需要有一個控制臺,輸入特定的指令,讓計算機完成一些操作。較為麻煩,需要記錄住一些命令。但是一般后期會使用大量的命令。尤其linux操作系統下。目前只需要記住以下常用的基本命令即可。
常用的DOS命令:
dir(directory) : 列出當前目錄下的文件以及文件夾
md(make directory) : 創建目錄
rd(remove directory) : 刪除目錄
cd(change directory): 進入指定目錄
cd.. : 退回到上一級目錄
cd \: 退回到根目錄
exit : 退出 dos 命令行
2.2什么是計算機語言
語言:是人與人之間用于溝通的一種方式。例如:中國人與中國人用普通話溝通。而中國人要和英國人交流,就要學習英語。
計算機語言(編程語言):人與計算機交流的方式。如果人要與計算機交流,那么就要學習計算機語言。計算機語言有很多種,如:C,C++,Java,PHP等。
2.3編寫第一個 Java應用程序
實現步驟:
1.什么是JDK, JRE
2.下載及安裝 JDK
3.編寫第一個 Java 應用程序
a.顯示已知文件類型的擴展名
b.配置環境變量 path
c.main 方法和輸出語句
d.注釋
e.其它細節
2.3.1 什么是JDK, JRE
簡單而言,使用 JDK 的提供的開發工具完成 java 程序的開發,使用 JRE 運行開發好的 Java 應用程序。
JDK(Java Development Kit Java開發工具包):JDK是提供給 Java 開發人員使用的,其中包含了 java 的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了
JRE(Java Runtime Environment Java運行環境) :包括Java虛擬機(JVM:Java Virtual Machine)和 Java 程序所需的核心類庫等,如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。
JDK包含了JRE,JRE包含了JVM.
2.3.2 下載及安裝 JDK
下載: 官方網址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html、
安裝JDK:
? - 傻瓜式安裝,下一步即可。
? - 建議:安裝路徑不要有中文或者特殊符號如空格等。
? - 當提示安裝 JRE 時,可以選擇不安裝。
默認安裝路徑: C:\Program Files\Java
2.3.3配置環境變量:
第一步:打開-計算機-屬性-高級系統設置-環境變量-系統變量
第二步:進行配置(JAVA_HOME,PATH,CLASSPATH)
- a.JAVA_HOME:另似給jdk全路徑取一個別名。然后使用的時候直接使用別名
- b.PATH:通過PATH,在DOS命令行找到對應的命令。java javac
- c.CLASSPATH:JDK1.5之后,可以選擇性安裝,建議安裝。最前面一定要配置一個.(點)
參考配置如下:
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_73
PATH = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.3.4 顯示已知文件的擴展名
查看本地地方文件夾
2.3.5編寫源代碼
- 1.創建文本文件修改后綴為.java;例如:HelloWrold.java
- 2.文件名必須和源代碼中的class類名保持一致
//HelloWorld由于被public 修飾,所有必須和文件名保持一致
public class HelloWorld{
//程序的入口
public static void main(String[] args){
//打印信息到控制臺
System.out.println("hello bj1901.....");
}
}
3.具體細節如下:
- main的方法:
Java應用程序的執行入口是main()方法。它有固定的書寫格式:
public static void main(String[] args) {...}
如果沒有 main 方法則在運行時會拋出如下異常
java.lang.NoSuchMethodError:main】 - 想要和JVM來個互動,只要在main方法中加入一句System.out.println(“Hello World”);
- 一個 Java 源文件中最多只能有一個 public 類。其它類的個數不限,
如果源文件文件包含一個 public 類,它必 須是該類名命名。 - Java 語言嚴格區分大小寫。
- Java方法由一條條語句構成,每個語句以分號結束。
4.java注釋
注釋:用于解釋說明程序的文字、提高了代碼的閱讀性
Java中的注釋類型:
? - 單行注釋
? - 多行注釋
? - 文檔注釋(java 特有)
注釋是一個程序員必須要具有的良好編程習慣。將自己的思想通過注釋先整理出來,再用代碼去體現
單行注釋
格式: //注釋文字
多行注釋
格式: /* 注釋文字 */
對于單行和多行注釋,被注釋的文字,不會被JVM(java虛擬機)解釋執行。多行注釋里面不允許有多行注釋嵌套。
2.3.6 編譯
java提供了javac命令用于編譯:
編譯HelloWorld.java文件,編譯成功會生成HelloWorld.class文件
- javac HelloWorld.java
運行
- java HelloWorld
4.4案例
public class Test01{
public static void main(String [] args){
System.out.println("-------------------------");
//注釋:是一個制表符 tab鍵
System.out.println("\t歡迎光臨家樂福西鄉店");
System.out.println("機:15 \t 人:1082 \t 單:7596");
System.out.println("\t\t\t\t\tRMB");
System.out.println("商品號\t110 清風抽取式面紙 \t\t25.30");
System.out.println("商品號\t111 統一方便面 \t\t12.56");
System.out.println("-------------------------");
System.out.println("總價\t\t\t\t\t37.86");
System.out.println("-------------------------");
}
}
4.5 練習
開發出如下界面:
練習1:
**********************************
魔法飾品分發系統
1.登錄系統
2.退出
**********************************
請選擇輸入數字:
練習2:
魔法飾品分發系統
**********************************
1.賬號信息管理
2.購物結算
3.裝備返點
4.注銷
***********************************
請選擇輸入數字:
三、java語言的運行機制
1.JVM(java虛擬機)
2.GC(垃圾回收器)
2.1 JVM
概念:JVM是一個虛擬的計算機,具有指令集并使用不同的存儲區域。負責執行指令,管理數據、內存、寄存器
java是跨平臺的語言(windows,linux,mac):
怎么實現跨平臺的:因為不同的操作系統(平臺)擁有不同的虛擬機。
2.2.GC 垃圾回收器
1.系統開辟一個線程自動檢測哪些對象不再被使用,然后將這些空閑的對象及資源進行回收。(c,c++需要手動回收)
2.在系統運行的時候,會自動去執行。我們人工無法精確的取控制和干預.
四、eclipse編譯工具 使用
1.解壓直接使用
2.第一次進來選擇工作空間,就是存放代碼的地方(建議放在D盤)
3.修改eclipse的編碼方式(UTF-8:萬國碼,國標碼:GB2312,GBK)
4.修改字體大小
5.新建項目
6.創建具體的java類
選中項目,然后先建class。然后設置class名稱