1、JDK與JRE
JDK:Java Development Kit
JRE:Java Runtime Environment
它提供一層殼,包裹操作系統。
JVM:Java Virtual Machine
一臺在JRE中運行的虛擬電腦。
jdk文件夾比jre文件夾,多了一個javac.exe的文件。
編譯:翻譯。將用類似英語的自然語言書寫的文字(程序)翻譯成電腦所能識別的0和1(機器語言)。
2、java的特點
- 面向對象
- 跨平臺(Write Once, Run anywhere)
3、開發java程序3步曲
- xx.java
- javac xx.java
- java xx
4、常用格式控制符
5、數據類型
用來確定要存儲在內存單元中的數據的類型。
(1)原始數據類型 / 基本數據類型
(2)引用數據類型
數組、String、使用class定義的類型
6、變量命名規則
7、類型轉換(Type Convert)
(1)自動類型轉換
條件:
- 兩種類型兼容。
例如:int和double兼容 - 目標類型大于源類型
例如:double型大于int型
對于表達式而言,如果一個操作數為double型,則整個表達式都提升為double型。
(2)強制類型轉換
條件:
- 兩種類型兼容。
例如:int和double兼容 - 目標類型小于源類型
例如:int型小于double型
8、邏輯運算符
Java提供了兩個在其它計算機語言中沒有的邏輯運算符,這就是邏輯與和邏輯或的短路版本。
9、控制流語句
(1)break
用于do-while、while、for等循環語句中時,可跳出循環而執行循環后面的語句。
(2)continue
只能用在循環里。用于跳過循環體中剩余的語句而執行下一次循環。
10、數組
數組是一個變量,存儲相同數據類型的一組數據。
(1)數組使用4步曲
-
聲明數組:告訴計算機數據類型是什么。
int[] a; 數據類型[] 數組名 int a[]; 數據類型 數組名[]
-
分配空間:告訴計算機分配幾個格子
a = new int[5]; int a = new int[5]; 數據類型[] 數組名 = new 數據類型[大小];
-
賦值:向分配的格子里放數據
a[0] = 8;
-
處理數據
a[0] = a[0] * 10;
(2)關于數組長度
C語言不檢查數組的邊界,數組索引完全由程序員掌握。
而在Java中,程序員可以不再關注數組的長度,數組自帶的length屬性將負責保管數組的長度;
Java對數組下標越界情況強加約束。如果試圖訪問不在有效索引以內的元素,將會引發運行錯誤。
(3)new關鍵字
在C語言中,從存儲方式上講,聲明數組有兩種情況:
在棧內存中分配空間,如:
int arr[10]; //聲明有10個整型元素的數組
在堆內存中分配空間,如:
int *p = NULL; //聲明整型指針
p = (int*)malloc(10 * sizeof(int)); //指針指向堆空間
C語言允許有棧數組,也允許有堆數組。
在Java中,數組是引用數據類型,不允許將數組分配在棧內存中,只能分配在堆內存中。
Java中沒有類似于malloc、calloc、realloc和free等函數,取而代之的是new關鍵字。
new是Java中內置的操作符。
new操作符用來從堆中分配指定類型的內存空間,并返回相應類型的引用。其作用類似于malloc函數。
11、main函數的命令行參數
在命令行使用java命令執行程序時,可以將一些參數傳遞給main函數;可以從命令行傳遞任意多個字符串給main函數,其間使用空格隔開,也可以不傳遞任何參數;這些傳遞進來的多個字符串最后以字符串數組的形式,供main函數中加以使用。
main函數攜帶的String[](字符串數組)類型的形參args正是為了接收這些來自命令行的參數。
例:
public class ArgumentDemo
{
public static void main(String[] args)
{
int len = args.length; //獲得命令行參數的個數
if (len > 0) //判斷是否有命令行參數
{
//如果有,將其逐一打印到控制臺
System.out.println(len + "個命令行參數,具體如下:");
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i]);
}
}
else
{
//否則給出提示信息
System.out.println("您沒有傳遞任何命令行參數。");
}
}
}
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():輸出但不換行
無論輸出什么類型的數據,只需將數據作為參數傳遞給它們即可,而無需像C語言中那樣,使用%s、%d之類的控制字符,如:
int a = 10;
float f = 3.14f;
System.out.println(a);
System.out.print(f);
System.out.println('X');