1、JDK與JRE
JDK:Java Development Kit
JRE:Java Runtime Environment
它提供一層殼,包裹操作系統(tǒng)。
JVM:Java Virtual Machine
一臺在JRE中運行的虛擬電腦。

jdk文件夾比jre文件夾,多了一個javac.exe的文件。
編譯:翻譯。將用類似英語的自然語言書寫的文字(程序)翻譯成電腦所能識別的0和1(機(jī)器語言)。

2、java的特點
- 面向?qū)ο?/li>
- 跨平臺(Write Once, Run anywhere)

3、開發(fā)java程序3步曲

- xx.java
- javac xx.java
- java xx
4、常用格式控制符

5、數(shù)據(jù)類型
用來確定要存儲在內(nèi)存單元中的數(shù)據(jù)的類型。
(1)原始數(shù)據(jù)類型 / 基本數(shù)據(jù)類型


(2)引用數(shù)據(jù)類型
數(shù)組、String、使用class定義的類型

6、變量命名規(guī)則

7、類型轉(zhuǎn)換(Type Convert)
(1)自動類型轉(zhuǎn)換
條件:
- 兩種類型兼容。
例如:int和double兼容 - 目標(biāo)類型大于源類型
例如:double型大于int型
對于表達(dá)式而言,如果一個操作數(shù)為double型,則整個表達(dá)式都提升為double型。
(2)強(qiáng)制類型轉(zhuǎn)換
條件:
- 兩種類型兼容。
例如:int和double兼容 - 目標(biāo)類型小于源類型
例如:int型小于double型
8、邏輯運算符

Java提供了兩個在其它計算機(jī)語言中沒有的邏輯運算符,這就是邏輯與和邏輯或的短路版本。

9、控制流語句
(1)break
用于do-while、while、for等循環(huán)語句中時,可跳出循環(huán)而執(zhí)行循環(huán)后面的語句。

(2)continue
只能用在循環(huán)里。用于跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)。

10、數(shù)組
數(shù)組是一個變量,存儲相同數(shù)據(jù)類型的一組數(shù)據(jù)。
(1)數(shù)組使用4步曲
-
聲明數(shù)組:告訴計算機(jī)數(shù)據(jù)類型是什么。
int[] a; 數(shù)據(jù)類型[] 數(shù)組名 int a[]; 數(shù)據(jù)類型 數(shù)組名[] -
分配空間:告訴計算機(jī)分配幾個格子
a = new int[5]; int a = new int[5]; 數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[大小]; -
賦值:向分配的格子里放數(shù)據(jù)
a[0] = 8; -
處理數(shù)據(jù)
a[0] = a[0] * 10;
(2)關(guān)于數(shù)組長度
C語言不檢查數(shù)組的邊界,數(shù)組索引完全由程序員掌握。
而在Java中,程序員可以不再關(guān)注數(shù)組的長度,數(shù)組自帶的length屬性將負(fù)責(zé)保管數(shù)組的長度;
Java對數(shù)組下標(biāo)越界情況強(qiáng)加約束。如果試圖訪問不在有效索引以內(nèi)的元素,將會引發(fā)運行錯誤。
(3)new關(guān)鍵字
在C語言中,從存儲方式上講,聲明數(shù)組有兩種情況:
在棧內(nèi)存中分配空間,如:
int arr[10]; //聲明有10個整型元素的數(shù)組
在堆內(nèi)存中分配空間,如:
int *p = NULL; //聲明整型指針
p = (int*)malloc(10 * sizeof(int)); //指針指向堆空間
C語言允許有棧數(shù)組,也允許有堆數(shù)組。
在Java中,數(shù)組是引用數(shù)據(jù)類型,不允許將數(shù)組分配在棧內(nèi)存中,只能分配在堆內(nèi)存中。
Java中沒有類似于malloc、calloc、realloc和free等函數(shù),取而代之的是new關(guān)鍵字。
new是Java中內(nèi)置的操作符。
new操作符用來從堆中分配指定類型的內(nèi)存空間,并返回相應(yīng)類型的引用。其作用類似于malloc函數(shù)。
11、main函數(shù)的命令行參數(shù)
在命令行使用java命令執(zhí)行程序時,可以將一些參數(shù)傳遞給main函數(shù);可以從命令行傳遞任意多個字符串給main函數(shù),其間使用空格隔開,也可以不傳遞任何參數(shù);這些傳遞進(jìn)來的多個字符串最后以字符串?dāng)?shù)組的形式,供main函數(shù)中加以使用。
main函數(shù)攜帶的String[](字符串?dāng)?shù)組)類型的形參args正是為了接收這些來自命令行的參數(shù)。
例:
public class ArgumentDemo
{
public static void main(String[] args)
{
int len = args.length; //獲得命令行參數(shù)的個數(shù)
if (len > 0) //判斷是否有命令行參數(shù)
{
//如果有,將其逐一打印到控制臺
System.out.println(len + "個命令行參數(shù),具體如下:");
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i]);
}
}
else
{
//否則給出提示信息
System.out.println("您沒有傳遞任何命令行參數(shù)。");
}
}
}
12、輸入與輸出
(1)從命令行接收輸入
Scanner scan = new Sanner(System.in);
例:
public class ArgumentDemo
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in); //定義一個引用變量
int num = scan.nextInt();
System.out.println(num);
}
}
(2)打印到屏幕上
System.out.println():換行輸出
System.out.print():輸出但不換行
無論輸出什么類型的數(shù)據(jù),只需將數(shù)據(jù)作為參數(shù)傳遞給它們即可,而無需像C語言中那樣,使用%s、%d之類的控制字符,如:
int a = 10;
float f = 3.14f;
System.out.println(a);
System.out.print(f);
System.out.println('X');