目錄
1.一個簡單的Java應用程式
2.注釋
3.資料型別
4.變數與常量
4.1 宣告變數
4.2 變數初始化
4.3 常量
5.運算子
5.1 算術運算子
5.2 數學函式與常量
5.3 數值型別之間的轉換
5.4 強制型別轉換
5.5 結合賦值和運算子
5.6 自增自減運算子
5.7 邏輯運算子
5.8 位運算子
5.9 移位運算
5.10 條件運算子
6.字串
6.1 子串
6.2 拼接
6.3 檢測字串是否相等
6.4 空串與Null串
7.輸入與輸出
7.1 從鍵盤輸入
7.2 輸出
8.程式邏輯控制
8.1 if 陳述句
8.2 switch陳述句
8.3 回圈結構
8.3.1 while回圈
8.3.2 do while 回圈
8.3.3 for回圈
9.break與continue的區別
1.一個簡單的Java應用程式
public class OneBlogs {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
這個程式雖然簡單,但是基本上所有的Java程式都是具有這種結構的,
下面逐一看這幾行代碼:
public是關鍵字,稱為訪問修飾符,用于控制程式的其他部分對這段代碼的訪問級別,
關鍵字class說明Java程式中的全部內容都包含在類中,
class后緊跟類名,類名采用大駝峰的命名方式,所有單詞的首字母必須大寫,但是不能使用Java保留字(public ,class等)作類名,例如:FirstSample就是一個合法的命名,
源代碼的{ }劃分程式的各個部分(通常稱為塊),任何方法的代碼用 { 開始,用 } 結束,
我們先不用管static void ,暫時把它們當作編譯程式的必要部分,每個程式都必須有一個main方法,格式如下:
public class OneBlogs {
public static void main(String[] args) {
program statements
}
}
下來看這個代碼:
{
System.out.println("Hello world!");
}
一對大括號表示方法體的開始與結束,使用System.out物件呼叫它的println方法,注意:"."用于呼叫方法,Java使用的通用語法是object.method(parameters),這等價于函式呼叫,
2.注釋
Java中有三種表示注釋的方法:
1. // 注釋內容從//開始到本行行尾 2. /* */注釋界定符將一段較長的注釋括起來
3.這種注釋可以用來自動生成檔案,/** */
警告:Java中注釋不能嵌套,
3.資料型別
Java是一種強型別語言,必須為每一個變數宣告一種型別,Java中一共有8中基本型別,其中包括4種整型,2種浮點型別,1種字符型別char(用于表示Unicode編碼的代碼單元),1種表示真值的布爾型別boolean,
| 資料型別 | 關鍵字 | 記憶體占用 | 范圍 |
| 位元組型 | byte | 1位元組 | -128~127 |
| 短整型 | short | 2位元組 | -32768~32767 |
| 整型 | int | 4位元組 | -2^31~2^31-1 |
| 長整型 | long | 8位元組 | -2^63~2^63-1 |
| 單精度浮點數 | float | 4位元組 | |
| 雙精度浮點數 | double | 8位元組 | |
| 字符型 | char | 2位元組 | 0~65535 |
| 布爾型 | boolean | 沒有明確規定 | true和false |
注意:
·不論是16位系統還是32位系統int都占4個位元組,不論是32位系統還是64位系統long占8位元組
·整型和浮點型都是帶有符號的
·整型默認為int型,浮點型默認為double型
什么是位元組?位元組是計算機中表示空間大小的基本單位
4.變數與常量
4.1 宣告變數
格式:資料型別 變數名 例:
int age;
double salary;
long earthPopulation;
boolean done;
從中可以看出,每個宣告都以分號結束,宣告是一條完整的陳述句,分號在這里是必須加的,
tip:$是一個合法的Java字符,但是不要在代碼中使用這個字符,它只在Java編譯器或其他工具生成的名字中,
可以在一行中宣告多個變數:
int i ,j, k; //不提倡這種風格
逐一宣告每個變數提高代碼的可讀性,
4.2 變數初始化
宣告一個變數后必須使用賦值陳述句對變數進行顯式初始化,不能使用未初始化的變數,
否則:
public static void main(String[] args) {
int i;
System.out.println(i);
}
這段代碼會出現如下錯誤:
要想對一個宣告過的變數賦值就得把變數名放在 = 左邊,值或者運算式放在 = 右邊,例:
int age;
age = 10000;
int month;
month = 8;
int week = 6;
tip:在Java中,變數宣告盡量靠近第一次使用的地方,這是一個比較好的編程習慣
4.3 常量
在Java中,利用關鍵字指示常量,例如:
public static void main(String[] args) {
final double P_I_E = 3.14;
System.out.println(P_I_E);
}
tip : final表示的這個變數只能被賦值一次,一旦被賦值便不能再更改,習慣上,常量名全大寫,
還有一種常量被稱為類常量,這個常量可以在一個類的多個方法中使用,可以使用 static final 設定一個類常量,例如:
static final double P_I_E = 3.14;
public static void main(String[] args) {
System.out.println(P_I_E);
}
注意:類常量定義于類方法的外部,
5.運算子
運算子用于連接值
5.1 算術運算子
+ - * / 分別表示加 減 乘 除運算,
整數的取余運算子用 % 表示,例:15 % 7 == 1
當參與 / 運算的兩個運算元都是整數,表示整數除法,否則表示浮點除法,
例:15 / 2 ==7 ;15 / 2.0 == 7.5
5.2 數學函式與常量
在Math類中包含了各種各樣的數學函式,使用前加上這樣一句代碼:
import static java.lang.Math.*;
sqrt :計算一個數的平方根 ,例:
import static java.lang.Math.*;
public class OneBlogs {
public static void main(String[] args) {
double a = 25;
double b = sqrt(a);
System.out.println(b);
}
}
Math類中的sqrt方法不處理任何物件,這樣的方法稱為靜態方法,
pow:表示冪運算 ,格式:pow(a , k)表示a的k次冪,例:
public static void main(String[] args) {
double a = 2;
double b = 3;
double c = pow(a,b);
System.out.println(c);
}
Java還提供兩個用于表示 π 和 e 常量最接近的近似值:Math.PI Math.E
5.3 數值型別之間的轉換

圖中有箭頭實線表示無資料丟失的轉換,無箭頭的實線表示有資料丟失的轉換
Java中,當使用一個二元運算子連接兩個值時,會先將兩個運算元轉換成同一種型別,再計算,
·有一個運算元是double型別,另一個也會轉換成double型別
·有一個運算元是float型別,另一個也會轉換成float型別
·有一個運算元是long型別,另一個也會轉換成long型別
·否則其余都將轉換成int型別
5.4 強制型別轉換
上面提到必要時,int會轉換為double型別,Java中允許經過強制型別轉換將double轉換為int,例:
double a = 3.5678;
int b = (int) a;
這樣經過上述代碼 b的值為3,因為強制型別轉換通過截斷小數部分將浮點值轉化為整型,
如果想對浮點數進行舍入運算,得到最接近的整數,就需要Math.round方法,例:
double a = 9.999;
int b = (int) Math.round(a);
注意:round方法的回傳值為long型別,所以必須使用強制型別轉換(int),
5.5 結合賦值和運算子
+= -= *= /= %=
例:a+=2 等價于 a=a+2
如果運算得到一個值與左側運算元型別不同,就會發生強制型別轉換,例:
int a; //a是int型別
a+=2.2; //是合法的等價于(int)(a+2.2)
5.6 自增自減運算子
++ --
i++與++i的結果都會使i進行加1,但它倆的區別主要在給運算式賦值的地方體現,例:
int i = 1;
int a = ++i; //先進行++再給a賦值,所以a是2
int b = i++; //先賦值再進行++,所以b還是1
-- 與 ++一樣
5.7 邏輯運算子
邏輯與:&& 邏輯或:|| 邏輯非:! 這三個運算結果都是boolean型別,true或false
運算式1 && 運算式2,如果有一個運算式為假,結果就為假
運算式1 || 運算式2,如果有一個運算式為真,結果就為真
邏輯非!,假變真,真變假
5.8 位運算子
按位與 &:如果兩個二進制位都是1,則結果為1,否則結果為0
| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
按位或 |:如果兩個二進制為都為0則結果為0,否則結果為1
按位取反 ~:如果該位為0則變為1,該位為1,則變為0
按位異或 ^:如果兩個二進制位相同結果為0,不同為1
5.9 移位運算
左移<<:最左側位不要了,右邊補0
右移>>:最右側位不要了,左邊補符號位(正數補0,負數補1)
無符號右移>>>:最右側位不要了,左側補0
5.10 條件運算子
條件運算子也是Java中唯一一個三目運算子
運算式1?運算式2:運算式3 運算式1結果為真,則結果為運算式2,否則,為運算式3
代碼示例:得到兩個數的最大值 :
public static void main(String[] args) {
int a = 12;
int b = 23;
int max = a > b ? a : b;
System.out.println(max);
}
6.字串
從概念上Java字串就是Unicode字符序列,Java沒有內置的字串型別,而是在Java類別庫中提供了一個預定義類,叫作String,用雙引號括起來的字串都是String類的實體:
String a = " ";
String names = "huanghe";
6.1 子串
String類的substring方法可以從一個較大的字串提取出一個子串,例如:
String str = "hello world";
String str1 = str.substring(0,3); //會創建"hel"這個字串
注意:在substring中從0開始計數,這里從0開始到3結束(不包括3),也就是復制位置0,1,2
優點:容易計算子串的長度,上述例子中子串的長度為3-0=3,
6.2 拼接
Java允許使用 “+” 連接兩個字串,例:
String str1 = "hello";
String str2 = "world";
String str3 = str1 + str2; //str3 = "helloworld"
注意:單詞之間沒有空格,+號完全按照給定的次序將兩個字串拼接起來,
這種特性常常用于輸出陳述句中,例:
System.out.println("your name is"+name);
6.3 檢測字串是否相等
使用equals方法檢測兩個字串是否相等,格式:str1.equals(str2) , 其結果是布爾型別,可以定義一個布爾型別的變數接收結果,例:
public class OneBlogs {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "world";
String str3 = "hello";
boolean a = str1.equals(str3);
System.out.println(a);
}
}
運行結果:
6.4 空串與Null串
空串" "是字符長度為0的字串,可以呼叫以下代碼檢查一個字串是否為空串
if (str.length()==0) 或者 if(str.equals(""))
String還可以存放一個特殊值為null,表示目前沒有任何物件與該變數關聯,檢查一個字串是否為null使用如下代碼:
if( str == null )
7.輸入與輸出
7.1 從鍵盤輸入
使用Scanner讀取字串,整數,浮點數
首先需要匯入util包:import java .util .Scanner;
還需構造一個與“標準輸入流”System.in關聯的Scanner物件:
Scanner sc = new Scanner(System.in);
例:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println(name);
}
如果想要讀取一個整數,可以呼叫nextInt 方法(這種用的最多)例:
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
7.2 輸出
在這里介紹三種輸出方法:
int age = 20;
System.out.println(age); //第一種:輸出自動換行
System.out.print(age); //第二種:輸出不換行
System.out.printf("%d",age); //第三種:格式化輸出
格式說明符尾部的轉換符指示要格式化的數值的型別:f表示浮點數,s表示字串,d表示十進制數,
8.程式邏輯控制
8.1 if 陳述句
語法格式1:
if(布爾運算式){
陳述句
}
如果布爾運算式結果為true,執行大括號中的陳述句,否則不執行,
語法格式2:
if(布爾運算式){
陳述句1;
}else{
陳述句2;
}
如果布爾運算式結果為true執行陳述句1,否則執行陳述句2,
語法格式3:
if(布爾運算式1){
陳述句1;
}else if(布爾運算式2){
陳述句2;
}else{
陳述句3;
}
運算式1成立執行陳述句1,運算式2成立執行陳述句2,否則執行陳述句3,
注意:if else 陳述句中可以不加大括號,但是只能寫一條陳述句(不建議這樣使用),else與和它最近的 if 相匹配,實際開放中建議加上大括號,
8.2 switch陳述句
基本語法:
switch(運算式){
case 1:
陳述句1;
break;
case 2:
陳述句2;
break;
case 3:
陳述句3;
break;
......
default:
不滿足執行此陳述句;
break;
}
執行流程:先計算運算式的值,然后與case比較,有對應的就執行對應的陳述句,遇到break結束,當運算式的值沒有與之對應,就執行default下面的陳述句,
注意事項:· 多個case后的常量不可以重復
· switch的括號內只能是以下型別的運算式:
基本型別:byte,char,short,int
參考型別:String常量串,列舉型別
·break不要遺漏,否則會失去“多分支選擇”的效果
·switch 雖然支持嵌套,但是不推薦
8.3 回圈結構
8.3.1 while回圈
語法格式:
while(回圈條件){
回圈陳述句;
}
回圈條件為true,執行回圈陳述句,否則結束回圈
代碼實體:計算1-100的和:
public class OneBlogs {
public static void main(String[] args) {
int sum = 0;
int n = 1;
while(n<=100){
sum+=n;
n++;
}
System.out.println(sum);
}
}
注意事項:while下面的陳述句可以不寫{},但只能寫一條陳述句,建議加上{}
while后面的 { 建議和while寫在同一行
while后面不要多寫分號,否則導致回圈不能正確執行
8.3.2 do while 回圈
語法格式:
do{
回圈陳述句;
}while(回圈條件);
先執行回圈陳述句,在判定回圈條件,回圈條件成立繼續執行,否則回圈結束
注意:while后面要加上分號
代碼實體:列印1-10:
public class OneBlogs {
public static void main(String[] args) {
int i = 1;
do{
System.out.println(i);
i++;
}while(i<=10);
}
}
8.3.3 for回圈
基本語法:
for(運算式1;布爾運算式2;運算式3){
回圈陳述句;
}
· 運算式1:用于初始化回圈變數的初始值設定,再回圈的最開始,只執行一次
· 布爾運算式2:回圈條件,滿足回圈繼續,否則回圈結束
· 運算式3:回圈變數的更新方式
代碼示例:列印1-10:
public class OneBlogs {
public static void main(String[] args) {
for(int i=1;i<=10;i++){
System.out.print(i+" ");
}
}
}
注意事項:·for下面的陳述句可以不加{},但是只能執行一條陳述句,建議加上
·for后面的 { 建議寫在同一行
·for后面不要多寫分號,否則導致回圈不能正確執行
9.break與continue的區別
break:break陳述句是終止整個回圈,不會再去判斷回圈條件是否滿足
continue:continue是只終止本次回圈,不是終止整個回圈
舉一個列印1-5的例子體會以下用法:
continue:
public class OneBlogs {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
if(i==3){
continue;
}
System.out.println(i);
}
}
}
列印結果:
break:
public class OneBlogs {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
if(i==3){
break;
}
System.out.println(i);
}
}
}
列印結果:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/298349.html
標籤:java
上一篇:2021-09-07
下一篇:【 JavaSE 】方法的使用
