1.Java語言簡介
1.1 Java文法的基本特點:
1)簡單:具有簡潔的物件導向文法,沒有運算子多載、多重繼承等模糊概念,自動垃集
2)物件導向:具有一切物件導向程式設計語言的特點,如封裝、繼承、多態等
3)跨平台:具有與體繫結構無關的位元組碼指令,主流平台都提供了JVM
4)安全:Java不支援指標,避免了指標錯誤和欺騙訪問,具有嚴格的編譯和位元組碼裝載和校正機制
5)多線程:具有功能強大、簡單、與平台無關的線程處理
----------------------------------------------------------------------------
1.2 JVM的基本原理
1)JVM - Java虛擬機器,負責解析和執行Java代碼,JVM可以運行在各種作業系統平台上
2)Java跨平台性:
(Java程式 <-- JVM <-- 作業系統 <-- 電腦硬體 )
不同平台有不同的JVM,主流平台都提供了各自的JVM,所以JAVA位元組可以在所有平台上能夠執行。
在這個意義上Java具有平台無關性,一次編寫,處處運行。
Java是一種跨平台的語言,只要JVM移植到特定的電腦上,就能保證經過編譯的Java代碼能夠在該系統上運行 。
3)Java程式的編譯運行過程:
Step1. 通過Java編譯器將Java源檔案編譯為.class檔案,即位元組碼檔案
Step2. 啟動Java虛擬機器(JVM),每一個java程式都會啟動一個獨立的jvm進程。
Step3. JVM讀取.class檔案,並進行驗證和初始化
驗證:檢查.class檔案是否符合規格
初始化:為變數分配記憶體和初始值
Step4. JVM將.class檔案二次編譯成特定平台相關的機器碼,
運行並輸出結果(Hotspot動態編譯執行)
----------------------------------------------------------------------------
1.3 JDK、JRE、Java API的基本概念
JDK - Java Development Kit(Java開發套件)
JRE - Java Runtime Enviroment(Java運行環境),
JRE = JVM + JavaSE API
JVM - Java Virtual Machine(Java虛擬機器)
Java API - API,Java系統標準類庫
Development Tools:JDK開發工具
JDK java 開發 工具包
|-- 開發工具(命令:java,javac,jar...)
|-- JRE Java運行環境
|-- Java API(應用編程介面,系統類別庫)
|
|-- JVM Java虛擬機器
---------------------------------------
1.4 Java環境的基本配置
JAVA_HOME - JDK主目錄
CLASSPATH - Java類路徑,
一般設定為.;${JAVA_HOME}\lib
PATH - 添加jdk可執行檔的路徑
path=...;${JAVA_HOME}\bin
啟動shell終端,鍵入java -version查看java安裝是否成功
參考:http://linux.chinaunix.net/techdoc/beginner/2009/03/23/1104316.shtml
===============================================================
2.2 package語句
1)package語句用於將類放在特定的包下,位於java源檔案的第一行
Example: package day01;
2)package語句的作用:
用於組織Java中的類;避免命名衝突。
3)檔案需要放在和包名匹配的目錄下
package day01; ----->HelloWorld2.java需要放在day01目錄下
4)編譯執行包下的java程式:
cd ./day01;
javac HelloWorld2.java
cd..
java day01.HelloWorld2
(JVM在目前的目錄下尋找day01子目錄,並載入day01目錄的 HelloWorld2.class)
5)JDK中常用的包
java.lang包 - 提供System類、String類、Integer類
(java.lang包中的類不需要import匯入,是自動匯入的)
java.util包 - 工具包,提供Date類(日期)、Random類(隨機數)、
集合介面和類。
java.io包 - 提供與檔案和流操作有關的類。
java.sql包 - 提供操作資料庫有關的類。
java.net包 - 提供網路編程相關的類。
java.awt包,javax.swing包 - 提供建立圖形介面相關的類
---------------------------------------------------------------------------------- 2.3 import語句
1)import語句用於匯入包中的類,以便在代碼中直接使用。
2)方式一:匯入具體的類,Example: import java.util.Date;
方式二:匯入包下的所有類,Example: import java.util.*;
Question: import java.*;是否可以匯入所有以java開頭的包呢?
(不可以) *只能匯入下一級的包
3)import語句位於package語句之後,class定義之前,
可以有多條import語句。
==================================================================================
3.Elcipse的使用
3.1 理解workspace - 工作區,用來管理多重專案,與目錄對應。
項目通常存放在工作區的目錄下。
3.2 區分Folder和Source Folder
Folder - 檔案夾,用來存放任何的普通檔案,
如notes就是一個folder
Source Folder - 源檔案夾,用來存放Java源檔案,
Eclipse預設提供了一個源檔案夾(src),
源檔案編譯後的.class檔案存放在project/bin目錄下。
一個工程可以根據需要建立建立多個Source Folder
3.3 在Eclipse中管理多個JRE
Step1. window->Preferences->Java
->Installed JREs
Step2. 在工程右鍵菜單中點擊"build path(構建路徑)"
->configure build path->選擇JRE
->remove->add libary->System JRE Library
3.4 Eclipse的快速鍵
Eclipse常用的快速鍵:
Alt+/: content assistant
-------------------------------
main,Alt+/->main方法
sysout,Alt+/->System.out.println()
for,Alt+/->for語句
if,Alt+/->if語句
-------------------------------
F3: open declaration,查看定義
Ctrl+Shift+M: 匯入包
Ctrl+Shift+F: 格式化代碼
Alt+Shift+X,J:運行Java程式
Alt+Up:將代碼上移一行
Alt+Down:將代碼下移一行
Ctrl+/:設定/取消單行注釋
Ctrl+Shift+/:多行注釋
Ctrl+Shift+\:取消多行注釋
Ctrl+D:刪除一行
(設定快速鍵:window->Preferences->Gerneral->Keys)
參考:http://www.blogjava.net/action/articles/17339.html
============================================
4.Java注釋
4.1 注釋的三種類型
1)單行注釋://,Ctrl+/
2)多行注釋:/* .. */,Ctrl+Shift+/
3)文檔注釋:/** .. */
4.2 使用JavaDoc根據文檔注釋產生相關的文檔
Eclispe右鍵菜單export->Java->Javadoc
=============================================
5.變數
3.1 變數用於儲存變化的資料,變數名稱可以包含字母、數字
、_、$,但不能以數字開頭。
Example: sum_100
5.2 變數的聲明:使用變數前需要聲明變數
文法:資料類型 變數名;
Example: int sum_100;
double amount;
5.3 變數的賦值和使用
Example: sum_100 = 0; //賦值
int i=1;
sum_100=i; //使用變數i
5.4 一條重要的規則:局部變數在使用前必須賦初值。
(變數的初始化指的是聲明後第一次賦值)
5.5 變數不能重複定義
5.6 變數的範圍
變數只能在變數定義開始到範圍結束的範圍內使用。
(超出範圍的變數可以再次定義)
==============================================
4.使用Integer類與進位的方法
(Integer類位於java.lang包)
1)int parseInt(String s,[int radix])
--將字串形式的數值轉為十進位的整數,
參數radix指定進位,如2,16等,預設為10進位
2)String toString(int num,int radix);
--返回數值的指定進位的字串形式
==============================================
5.基礎資料型別 (Elementary Data Type)
5.1 基礎資料型別 (Elementary Data Type)有8種:
byte short int long float double char boolean
5.2 整數類型:
(整數類型都是有符號的整數,最高位是符號位,
0代表正數,1代表負數)
byte - 位元組類型,在記憶體中佔用1個位元組,
儲存資料的範圍是-128~127
byte的最小值 1000 0000,最大值0111 1111
對應的類Byte提供兩個常量:
MIN_VALUE - byte類型的最小值
MAX_VALUE - byte類型的最大值
short - 短整型,在記憶體中佔用2個位元組(16位)
儲存資料的範圍是-2^15~ 2^15-1
對應的類Short提供兩個常量:
MIN_VALUE - short類型的最小值
MAX_VALUE - short類型的最大值
int - 整型,在記憶體中佔用4個位元組(32位)
儲存資料的範圍是-2^31~ 2^31-1(20億+)
對應的類Integer提供兩個常量:
MIN_VALUE - int類型的最小值
MAX_VALUE - int類型的最大值
long - 長整型,在記憶體中佔用8個位元組(64),
儲存資料的範圍是-2^63~ 2^63-1
---------------------------------------
5.3 浮點類型
float - 單精確度,在記憶體中佔用4個位元組
double - 雙精確度,在記憶體中佔用8個位元組,
double比float類型更加精確
5.4 字元類型
char - 字元類型,在記憶體中佔用2個位元組,
是一個無符號的16位整數,
範圍是0~65535,採用的unicode編碼
Example:
char c='A';->unicode編碼65
->記憶體中二進位形式:
0000 0000 0100 0001
字元0~9,A~Z,a~z都是連續編碼的
'0'的unicode編碼是48
'A'的unicode編碼是65
'a'的unicode編碼是97
5.5 布爾類型
boolean - 布爾類型,表示真和假,取值為true和false
------------------------------------------
6.java.util.Scanner類的使用簡介
Scanner類用於接收控制台的資料
使用Scanner的步驟:
Step1.通過System.in建立Scanner對象
Scanner sc=new Scanner(System.in);
Step2.通過next()方法擷取輸入的字串
通過nextInt()方法擷取輸入的整數
通過nextDouble()方法擷取輸入的浮點數