java程序開發三步驟:編寫、編譯、運行
.java -> .class(java字節碼文件)
javac.exe編譯 java.exe運行
HelloWorld代碼
(1)編寫
用記事本編寫,修改文件後綴名爲.java,文件名與程序名一定嚴格一致(注意大小寫)
//多行註釋
/*
第一行的第三個單詞必須和所在的文件名稱完全一樣,大小寫也要一樣
public class後面代表定義一個類的名稱,類是java當中所有源代碼的基本組織單位
*/
public class HelloWorld{ //單行註釋
//第二行的內容是萬年不變的固定寫法,代表main方法
//這一行代表程序執行的起點
public static void main(String[] args){
//第三行代表打印輸出語句
System.out.println("hello,world!!!");
}
}
(2)對HelloWorld.java文件進行編譯和運行
注意:對源代碼進行修改後,要再次編譯,這樣編譯得到的.class文件再次更新
關鍵字
關鍵字的特點
1、完全小寫的字母,如public
2、增強型記事本中有特殊顏色
標識符
指在程序當中,自己定義的內容,比如類的名字、方法的名字和變量的名字
命名規則(硬性要求)
1、可包含英文字母、0-9數字】$和_
2、不能以數字開頭
3、不能是關鍵字
命名規則(軟性要求)
1、類名規範:首字母大寫,後面每個單詞首字母大寫(大駝峯式)HelloWorld
2、變量名規則:首字母小寫,後面每個單詞首字母大寫(小駝峯式)helloWorld
3、方法名規則:同變量名
常量
在運行期間,固定不變的量
常量的分類
1、字符串常量:凡是用雙引號引起來的部分,叫做字符串常量。例如"abc"
2、整數常量:直接寫上的數字。例如:100、200、-300
3、浮點數常量:直接寫上的數字,有小數點。例如:2.5
4、字符常量:凡是用單引號引起來的單個字符。例如:‘A’、‘中’、‘9’
5、布爾常量:只有兩種取值,true、false
6、空常量:null。代表沒有任何數據
public class Demo01Const{
public static void main(String[] args){
//字符串常量
System.out.print("abc");
System.out.println("");
//整數常量
System.out.println(30);
System.out.println(-20);
//浮點數常量
System.out.println(2.34);
//字符常量(兩單引號)
System.out.println('A');
//System.out.println('');//沒有不行!
//System.out.println('AAA');//有多個不行
//布爾常量
System.out.println(true);
System.out.println(false);
//空常量,不能直接用來打印輸出
//System.out.println(null);//錯誤
}
}
數據類型
1、基本數據類型(四類八種)
整數型 byte short int (默認) long
浮點型 float double(默認) 浮點數都是近似值
字符型 char
布爾型 bollean
注意事項
1、字符串不是基本類型,而是引用類型
2、浮點型可能只是近似值,並非精確的值
3、數據範圍與字節數不一定相關,例如float數據範圍比long更加廣泛,而float是4字節,long是8字節
4、浮點數中默認類型是double,如果一定要使用float類型,需要加上一個後綴F
如果是整數,默認爲int類型,如果一定要使用long類型,需要加上一個後綴L,推薦使用大寫字母后綴
2、引用數據類型
變量
程序運行期間,可以發生改變的量
public class Demo02Variable{
public static void main(String[] args){
//創建一個變量
int num1;
//向變量當中存入一個數據
num1 = 10;
System.out.println(num1);
//改變變量當中本來的數字
num1 = 20;
System.out.println(num1);
//一步到位的格式
int num2 = 30; //不能重複創建num1
System.out.println(num2);
System.out.println("******************");
byte num3 = 32;//注意:右側數值的取值範圍不能超過左側數據類型的取值範圍
short num4 = 50;
long num5 = 1000000000L;//必須加L
System.out.println(num5);
float num6 = 2.5F;//必須加F
System.out.println(num6);
double num7 = 1.2;
System.out.println(num7);
char zifu1 = '中';
System.out.println(zifu1);
boolean var1 = true;
System.out.println(var1);
//將一個變量的數據內容,賦值交給另一個變量
boolean var2 = var1;
System.out.println(var2);
}
}
注意事項
1、變量不能重複定義
2、對於float和long類型,後綴F和L不能省略
3、使用byte或short類型的變量,右側的數據值不能超過左側類型的範圍
4、沒有進行賦值的變量,不能直接使用,一定要賦值之後,才能使用。
5、變量使用不能超過作用域的範圍
【作用域】從定義變量的一行開始,一直到直接所屬的大括號結束爲止
6、可以通過一個語句創建多個變量,但是一般不推薦這麼做
public class Demo02Variable{
public static void main(String[] args){
{
int num1 = 90;
}
int num1=90;//可以再次創建
System.out.println(num1);//已經超出大括號的範圍
int a,b,c;
//各自賦值
a = 10;
b = 20;
c = 30;
//同時創建並賦值
int x = 100,y = 200,z = 300;
}
}
數據類型轉換
當數據類型不一樣時,將會發生數據類型轉換
自動類型轉換(隱式)
1、特點:代碼不需要進行特殊處理,自動完成
2、規則:數據範圍從小到大
public class Demo01DataType{
public static void main(String[] args){
System.out.println(1024);
System.out.println(3.14);
//左邊是long類型,右邊是默認的int類型,左右不一樣
//int --> long 符合數據範圍從小到大的要求
long num1 = 100;//發生了自動類型轉換
System.out.println(num1);
//float --> double
double num2 = 2.5F;//發生了自動類型轉換
//long --> float 範圍上float更大,符合要求
float num3 = 30L;
System.out.println(num3);
}
}
強制類型轉換
1、特點:代碼需要進行特殊的格式處理,不能自動完成
2、範圍小的類型 範圍小的變量 = (範圍小的類型)原本範圍大的數據
注意事項:
1、強制類型轉換一般不推薦使用
2、byte/short/char這三種類型都可以發生數學運算
3、byte/short/char這三種類型在運算的時候,都會被首先提升爲int類型,然後再計算
4、布爾類型不能發生數據類型轉換
public class Demo02DataType{
public static void main(String[] args){
//強制類型轉換
int num = (int)100L;
System.out.println(num);
int num2 = (int)6000000000L;//出現的結果不是6000000000,因爲int裝不下,產生數據溢出
System.out.println(num2);
int num3 = (int)3.5;
System.out.println(num3);//小數位會被捨棄掉
char zifu1 = 'A';
System.out.println(zifu1+1);
byte num4 = 40;
byte num5 = 50;
//byte+byte --> int+int --> int
//byte result1 = num4+num5;//這個不對
int result1 = num4+num5;
System.out.println(result1);
short num6 = 60;
short result2 = (short)(num4+num6);
}
}
數字和字符的對照關係表(編碼表):
ASCII碼錶
Unicode碼錶:萬國碼,也是數字和符號的對照關係,開頭0~127的部分和ASCII一樣,但是從128開始包含更多字符
記住:
48 - ‘0’
65 - ‘A’
97 - ‘a’
public class Demo03DataType{
public static void main(String[] args){
char zifu1 = '1';
System.out.println(zifu1+0);//可以顯示ASCII碼
//char --> int 從小到大
int num = zifu1;
System.out.println(num);
char num2 = '中';
System.out.println(num2+0);//結果是20013
}
}