Java語言概述


Java基礎知識圖解

Java是面對對象編程

軟件開發介紹

軟件開發
軟件,即一系列按照特定順序組織的計算機數據和指令的集合。有系統軟件和應用軟件之分
系統軟件:windows , mac os , linux ,unix,android,ios,....
應用軟件:word ,ppt,畫圖板,...

人機交互方式
圖形化界面(Graphical User Interface GUI)這種方式簡單直觀,使用者易於接受,容易上手操作。
命令行方式(Command Line Interface CLI):需要有一個控制台,輸入特定的指令,讓計算機完成一些操作。較為麻煩,需要記錄住一些命令。

Pascal之父Nicklaus Wirth: “Algorithms+Data Structures=Programs” 應用程序 = 算法 + 數據結構

常用的DOS命令
dir : 列出當前目錄下的文件以及文件夾
md : 創建目錄
rd : 刪除目錄
cd : 進入指定目錄
cd.. : 退回到上一級目錄
cd: 退回到根目錄
del : 刪除文件
exit : 退出 dos 命令行
補充:echo javase>1.doc
常用快捷鍵
← →:移動光標
↑ ↓:調閱歷史操作命令
Delete和Backspace:刪除字符

1.2 計算機編程語言介紹

什么是計算機語言
語言:是人與人之間用於溝通的一種方式。例如:中國人與中國人用普通話溝通。而
中國人要和英國人交流,就要學習英語。
計算機語言:人與計算機交流的方式。
如果人要與計算機交流,那么就要學習計算機語言。
計算機語言有很多種。如:C ,C++ ,Java ,PHP , Kotlin,Python,Scala等。

第一代語言
機器語言。指令以二進制代碼形式存在。
第二代語言
匯編語言。使用助記符表示一條機器指令。

第三代語言:高級語言
C、Pascal、Fortran面向過程的語言
C++面向過程/面向對象
Java跨平台的純面向對象的語言
.NET跨語言的平台
Python、Scala…

1.3 Java語言概述

是SUN(Stanford University Network,斯坦福大學網絡公司 ) 1995年推出的一門高級編程語言。
是一種面向Internet的編程語言。Java一開始富有吸引力是因為Java程序可以在Web瀏覽器中運行。這些Java程序被稱為Java小程序(applet)。applet使用現代的圖形用戶界面與Web用戶進行交互。 applet內嵌在HTML代碼中。
隨着Java技術在web方面的不斷成熟,已經成為Web應用程序的首選開發語言。
后台開發:Java、PHP、Python、Go、Node.js

Java簡史

1991年 Green項目,開發語言最初命名為Oak (橡樹)
1994年,開發組意識到Oak 非常適合於互聯網
1995年,Oak改名java
1996年,發布JDK 1.0,約8.3萬個網頁應用Java技術來制作
1997年,發布JDK 1.1,JavaOne會議召開,創當時全球同類會議規模之最
1998年,發布JDK 1.2,同年發布企業平台J2EE
1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技術誕生
2004年,發布里程碑式版本:JDK 1.5,為突出此版本的重要性,更名為JDK 5.0
2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
2009年,Oracle公司收購SUN,交易價格74億美元
2011年,發布JDK 7.0
2014年,發布JDK 8.0,是繼JDK 5.0以來變化最大的版本
2017年,發布JDK 9.0,最大限度實現模塊化
2018年3月,發布JDK 10.0,版本號也稱為18.3
2018年9月,發布JDK 11.0,版本號也稱為18.9

Java技術體系平台

Java SE(Java Standard Edition)標准版
支持面向桌面級應用(如Windows下的應用程序)的Java平台,提供了完整的Java核心API,此版本以前稱為J2SE
Java EE(Java Enterprise Edition)企業版
是為開發企業環境下的應用程序提供的一套解決方案。該技術體系中包含的技術如:Servlet 、Jsp等,主要針對於Web應用程序開發。版本以前稱為J2EE
Java ME(Java Micro Edition)小型版
支持Java程序運行在移動終端(手機、PDA)上的平台,對Java API有所精簡,並加入了針對移動終端的支持,此版本以前稱為J2ME
Java Card
支持一些Java小程序(Applets)運行在小內存設備(如智能卡)上的平台

Java在各領域的應用

Java Web開發:后台開發
大數據開發:
Android應用程序開發:客戶端開發

  • 企業級應用:主要指復雜的大企業的軟件系統、各種類型的網站。Java的安全機制以及它的跨平台的優勢,使它在分布式系統領域開發中有廣泛應用。應用領域包括融、電信、交通、電子商務等。
  • Android平台應用:Android應用程序使用Java語言編寫。Android開發水平的高低很大程度上取決於Java語言核心能力是否扎實。
  • 大數據平台開發:各類框架有Hadoop,spark,storm,flink等,就這類技術生態圈來講,還有各種中間件如flume,kafka,sqoop等等 ,這些框架以及工具大多數
  • 是用Java編寫而成,但提供諸如Java,scala,Python,R等各種語言API供編程。
  • 移動領域應用:主要表現在消費和嵌入式領域,是指在各種小型設備上的應用,包括手機、PDA、機頂盒、汽車通信設備等

Java語言的誕生

java之父James Gosling團隊在開發”Green”項目時,發現C缺少垃圾回收系統,還有可移植的安全性、分布程序設計和多線程功能。最后,他們想要一種易於移植各種設備上的平台。
Java確實是從C語言和C++語言繼承了許多成份,甚至可以將Java看
成是類C語言發展和衍生的產物(C++--)。比如Java語言的變量聲明,操作符
形式,參數傳遞,流程控制等方面和C語言、C++語言完全相同。但同
時,Java是一個純粹的面向對象的程序設計語言,它繼承了C++語言
面向對象技術的核心。Java舍棄了C語言中容易引起錯誤的指針(以
引用取代)、運算符重載(operator overloading)、多重繼承
(以接口取代)等特性增加了垃圾回收器功能用於回收不再被引用
的對象所占據的內存空間。JDK1.5又引入了泛型編程(Generic
Programming)、類型安全的枚舉、不定長參數和自動裝/拆箱

Java語言的主要特性

•Java語言是易學的。Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。
• Java語言是強制面向對象的。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,並支持類與接口之間的實現機制(關鍵字為implements)。
• Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
• Java語言是健壯的。Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。
• Java語言是安全的。Java通常被用在網絡環境中,為此,Java提供了一個安全機
制以防惡意代碼的攻擊。如:安全防范機制(類加載器ClassLoader),如分配不同的
名字空間以防替代本地的同名類、字節代碼檢查。
• Java語言是體系結構中立的。Java程序(后綴為java的文件)在Java平台上被編譯為體系結構中立的字節碼格式(后綴為class的文件),然后可以在實現這個Java平台(Jvm)的任何系統中運行。
• Java語言是解釋型的。如前所述,Java程序在Java平台上被編譯為字節碼格式,然后可以在實現這個Java平台的任何系統的解釋器中運行。(后面發展半編譯半解釋)
• Java是性能略高的。與那些解釋型的高級腳本語言相比,Java的性能還是較優的。
• Java語言是原生支持多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。

1.4 Java語言運行機制及運行過程

面向對象性:
兩個要素:類、對象
三個特征:封裝、繼承、多態
健壯性:① 去除了C語言中的指針 ②自動的垃圾回收機制 -->仍然會出現內存溢出、內存泄漏
跨平台型:write once,run anywhere:一次編譯,到處運行
原理:只要在需要運行 java 應用程序的操作系統上,先安裝一個Java虛擬機 (JVM JavaVirtual Machine) 即可。由JVM來負責Java程序在該系統中的運行。

Java語言的特點:跨平台性

因為有了JVM,同一個Java 程序在三個不同的操作系統中都可以執行。這樣就實現了Java 程序的跨平台性。

Java兩種核心機制

Java虛擬機 (Java Virtal Machine)
垃圾收集機制 (Garbage Collection)

核心機制—Java虛擬機

JVM是一個虛擬的計算機,具有指令集並使用不同的存儲區域。負責執行指令,管理數據、內存、寄存器。
對於不同的平台,有不同的虛擬機。
只有某平台提供了對應的java虛擬機,java程序才可在此平台運行
Java虛擬機機制屏蔽了底層運行平台的差別,實現了“一次編譯,到處運行”

核心機制—垃圾回收

不再使用的內存空間應回收—— 垃圾回收。
在C/C++等語言中,由程序員負責回收無用內存。
Java 語言消除了程序員回收無用內存空間的責任:它提供一種系統級線程跟蹤存儲空間的分配情況。並在JVM空閑時,檢查並釋放那些可被釋放的存儲空間。
垃圾回收在Java程序運行過程中自動進行,程序員無法精確控制和干預。
Java程序還會出現內存泄漏和內存溢出問題嗎?Yes!

Java語言的環境搭建

明確什么是JDK, JRE
下載 JDK
安裝 JDK
配置環境變量
path:windows系統執行命令時要搜尋的路徑。
驗證是否成功:javac java
選擇合適的文本編輯器或 IDE 開發

什么是JDK,JRE

JDK(Java Development Kit Java開發工具包)
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。其中的開發工具:編譯工具(javac.exe) 打包工具(jar.exe)等
JRE(Java Runtime Environment Java運行環境)
包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。

簡單而言,使用JDK的開發工具完成的java程序,交給JRE去運行。

JDK、JRE、JVM關系

JDK = JRE + 開發工具集(例如Javac編譯工具等)
JRE = JVM + Java SE標准類庫

下載並安裝JDK

下載:官網,github
安裝:傻瓜式安裝:JDK 、JRE

建議:安裝路徑不要有中文或者空格等特殊符號。
當提示安裝 JRE 時,正常在JDK安裝時已經裝過了,但是為了后續使用Eclipse等開發工具不報錯,建議也根據提示安裝JRE。

配置環境變量 path

當前執行的程序在當前目錄下如果不存在,windows系統會在系統中已有的一個名為path的環境變量指定的目錄中查找。如果仍未找到,會 出現以上的錯誤提示。所以進入到 jdk安裝路徑\bin目錄下,執行javac,會看到javac參數提示信息。

為什么配置path環境變量?
path環境變量:windows操作系統執行命令時所要搜尋的路徑
為什么要配置path:希望java的開發工具(javac.exe,java.exe)在任何的文件路徑下都可以執行成功。

配置方法:
我的電腦--屬性--高級系統設置--環境變量
編輯 path 環境變量,在變量值開始處加上java工具所在目錄,后面用 “ ; ”和其他值分隔開即可(win10的話直接編輯即可)。
打開DOS命令行,任意目錄下敲入javac。如果出現javac 的參數信息,配置成功。

1.6 開發體驗 — HelloWorld

步驟:

  1. 將 Java 代碼編寫到擴展名為 .java 的文件中。
  2. 通過 javac 命令對該 java 文件進行編譯。
  3. 通過 java 命令對生成的 class 文件進行運行。

步驟一:編寫

特意類名和文件名不一樣
創建一個java源文件:HelloWorld.java

class HelloChina{
   public static void main(String[] args){
   	System.out.println("Hello,World!");
   }
}

編譯:
有了java源文件,通過編譯器將其編譯成JVM可以識別的字節碼文件。
在該源文件目錄下,通過javac編譯工具對Test.java文件進行編譯。
如果程序沒有錯誤,沒有任何提示,但在當前目錄下會出現一個Test.class文件,該文件稱為字節碼文件,也是可以執行的java的程序
javac HelloWorld.java

運行:
java HelloChina

常見問題及解決方法

源文件名不存在或者寫錯
當前路徑錯誤
后綴名隱藏問題

類文件名寫錯,尤其文件名與類名不一致時,要小心
類文件不在當前路徑下,或者不在classpath指定路徑下(如果你配置了classpath)

聲明為public的類應與文件名一致,否知編譯失敗

編譯失敗,注意錯誤出現的行數,再到源代碼中指定位置改錯

總結:
學習編程最容易犯的錯是語法錯誤。Java要求你必須按照語法規則編寫代碼。如果你的程序違反了語法規則,例如:忘記了分號、大括號、引號,或者拼錯了單詞java編譯器都會報語法錯誤。嘗試着去看懂編譯器會報告的錯誤信息

總結第一個程序

  1. java程序編寫-編譯-運行的過程
    編寫:我們將編寫的java代碼保存在以".java"結尾的源文件中
    編譯:使用javac.exe命令編譯我們的java源文件。格式:javac 源文件名.java
    運行:使用java.exe命令解釋運行我們的字節碼文件。 格式:java 類名

在一個java源文件中可以聲明多個class。但是,只能最多有一個類聲明為public的。
而且要求聲明為public的類的類名必須與源文件名相同。
3. 程序的入口是main()方法。格式是固定的。
4. 輸出語句:
System.out.println():先輸出數據,然后換行
System.out.print():只輸出數據
5.每一行執行語句都以";"結束。
6.編譯的過程:編譯以后,會生成一個或多個字節碼文件。字節碼文件的文件名與java源文件中的類名相同。

注 釋(comment)

用於注解說明解釋程序的文字就是注釋。
Java中的注釋類型:
單行注釋
**多行注釋 **
文檔注釋 (java特有)
提高了代碼的閱讀性;調試程序的重要方法
注釋是一個程序員必須要具有的良好編程習慣。
將自己的思想通過注釋先整理出來,再用代碼去體現

分類:
單行注釋://
多行注釋:/* /
文檔注釋:/
* */
作用:
① 對所寫的程序進行解釋說明,增強可讀性。方便自己,方便別人
② 調試所寫的代碼
特點:
①單行注釋和多行注釋,注釋了的內容不參與編譯。
換句話說,編譯以后生成的.class結尾的字節碼文件中不包含注釋掉的信息
② 文檔注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。
操作方式:

③ 多行注釋不可以嵌套使用

Java API的文檔

API (Application Programming Interface,應用程序編程接口)是 Java 提供的基本編程接口。
Java語言提供了大量的基礎類,因此 Oracle 也為這些基礎類提供了相應的API文檔,用於告訴開發者如何使用這些類,以及這些類里包含的方法。
API文檔:針對於提供的類庫如何使用,給的一個說明書。類似於《新華字典》

良好的編程風格

正確的注釋和注釋風格
使用文檔注釋來注釋整個類或整個方法。
如果注釋方法中的某一個步驟,使用單行或多行注釋。

正確的縮進和空白
使用一次tab操作,實現縮進
運算符兩邊習慣性各加一個空格。比如:2 + 4 * 5。

塊的風格
Java API 源代碼選擇了行尾風格

常用的Java開發工具

文本編輯工具

大佬專用

記事本
UltraEdit
EditPlus
TextPad
NotePad
Sublime Text 3

Java集成開發環境(IDE)

JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA

Eclipse應該是大多數Java程序員使用的第一個IDE。眾所周知的、最流行、也最受歡迎的Java開發工具。優點很多:免費、更新快、代碼智能化、ANT構建等,擁有眾多插件,完全免費、有中文版、上手比較快。缺點也非常明顯,安裝插件麻煩、插件對版本要求比較嚴格。

IntelliJ IDEA被認為是目前Java開發效率最快的IDE工具。是JetBrains公司的產品,這家公司總部位於捷克共和國的首都布拉格。它整合了開發過程中實用的眾多功能,智能提示錯誤,強大的調試工具,Ant,JavaEE支持,CVS整合,最大程度的加快開發的速度。簡單而又功能強大。與其他的一些繁冗而復雜的IDE工具有鮮明的對比。

雖然idea有的,eclipse都有,但一句話idea更懂你

作業

/**
 @author zcq
@version v1.0
day1作業
制表符的使用:\t
 *               如果\t在行的開頭,是8個空格
 *               前面的輸出內容位數為8的倍數,\t將輸出8個空格
 *               前面輸出內容位數不足8的倍數,\t將補足8位
*/
public class HelloJava
{   //main函數:程序的入口
	public static void main(String[] args){
		//將個人的基本信息(姓名、性別、籍貫、住址)打印到控制台上輸出。各條信息分別占一行。
      System.out.println("姓名: 憨包");
      System.out.println("性別: 男");
	  System.out.println("籍貫: 湖南XX");
	  System.out.println("住址: 湖南xx");
	  //結合\n(換行),\t(制表符),空格等在控制台打印
	  System.out.println("\t*                                 *");
		System.out.println(" *   *        I love Java      *     *");
		System.out.println("\t *                              *");
		System.out.println("\t   *                          *");
		System.out.println("\t     *                     *");
		System.out.println("\t       *                *");
		System.out.println("\t         *           *");
		System.out.println("\t           *      *");
		System.out.println("\t              *");		
		

	}
} 

制表符的使用

制表符的使用:\t如果\t在行的開頭,是8個空格 前面的輸出內容位數為8的倍數,\t將輸出8個空格前面輸出內容位數不足8的倍數,\t將補足8位

* 制表符的使用:\t
 *               如果\t在行的開頭,是8個空格
 *               前面的輸出內容位數為8的倍數,\t將輸出8個空格
 *               前面輸出內容位數不足8的倍數,\t將補足8位
 *               輸出:
                 第一行
1	        第二行
12	        第三行
122	        第四行
1234	第五行
12345	第六行
123456	第七行
1234567	第八行
12345678	第九行
 */
public class TestDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("\t"+"第一行");
        System.out.println("1\t"+"第二行");
        System.out.println("12\t"+"第三行");
        System.out.println("122\t"+"第四行");
        System.out.println("1234\t"+"第五行");
        System.out.println("12345\t" + "第六行");
        System.out.println("123456\t" + "第七行");
        System.out.println("1234567\t" + "第八行");
        System.out.println("12345678\t" + "第九行");
	}

}

editplus

editplus的安裝

傻瓜式安裝

只要改下安裝位置,避免安裝到c盤

editplus的配置

字體設置

editplus配置java環境


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM