Java程序基礎
變量
Java中變量分爲基本類型和引用類型,都必須先定義後使用,同時可以賦一個初值,主要有如下特點:
-
可以重新賦值;
-
給其他變量賦值;
/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : cunyu
* Email : [email protected]
* Website : https://cunyu1943.github.io
* Date : 2019-11-9 15:07
* Project : JavaLeaning
* Package : PACKAGE_NAME
* Class : Varia
* Desc :
*/
public class Varia {
public static void main(String[] args) {
// 定義變量,並賦予初值,int型
int numInt = 1024;
int num2Int;
// 打印變量的值
System.out.println("numInt = " + numInt);
// 重新賦值並打印
numInt = 2048;
System.out.println("numInt = " + numInt);
// 給其他變量賦值並打印
num2Int = numInt;
System.out.println("num2Int = " + num2Int);
// byte
byte numByte = 1;
// long
long numLong = 10000l;
// float
float numFloat = 3.14f;
// double
double numDouble = 3.4e10;
// boolean
boolean judgeBoolean = true;
// char
char characterChar = 'k';;
// 分別打印各類型變量和所佔字節數
System.out.println("byte:" + numByte + ", 字節數:" + Byte.SIZE / 8);
System.out.println("int:" + numInt + ", 字節數:" + Integer.SIZE / 8);
System.out.println("long:" + numLong + ", 字節數:" + Long.SIZE / 8);
System.out.println("char:" + characterChar + ", 字節數:" + Character.SIZE / 8);
System.out.println("float:" + numFloat + ", 字節數:" + Float.SIZE / 8);
System.out.println("double:" + numDouble + ", 字節數:" + Double.SIZE / 8);
}
}
基本數據類型
-
整形:byte、short、int、long;
-
浮點型:float、double;
-
字符類型:char;
-
布爾類型:boolean;
基本數據類型佔用的字節數
數據類型 | 字節數 | 封裝器類 | 最大範圍 |
---|---|---|---|
byte | 1 | Byte | -128 ~ 127 |
short | 2 | Short | -32768 ~ 32767 |
int | 4 | Integer | -2147483648 ~ 2147483647 |
long | 8 | Long | -9223372036854775808 ~ 9223372036854775807 |
float | 4 | Float | 最大爲 |
double | 8 | Double | 最大爲 |
char | 2 | Character | 除開標準ASCII外,還可表示Unicode字符 |
boolean | 視情況,一般爲4字節 | Boolean | 只有false 和true |
注意
-
long
類型的結尾需要加L
; -
float
類型的結尾需要加f
; -
在定義變量時,加上
final
修飾符,則變成了常量,常量一旦被初始化,則不能再次被賦值; -
使用
var
來省略變量類型,然後編譯器會自動推斷出變量類型;
變量作用範圍
- Java中,多行語句用
{}
括起來,此時在語句塊中的變量有一個作用域,即從定義開始,到語句塊結束,不得超出作用域引用範圍;
引用類型
-
類
-
接口
-
數組
-
枚舉
-
標註
各數據類型間的運算
整數運算
- 運算符優先級
第一級 | () |
---|---|
第二級 | !、~、++、– |
第三級 | *、/、% |
第四級 | +、- |
第五級 | <<、>>、>>> |
第六級 | & |
第七級 | | |
第八級 | +=、-=、*=、/= |
- 相關實例
/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : cunyu
* Email : [email protected]
* Website : https://cunyu1943.github.io
* Date : 2019-11-10 11:29
* Project : JavaLeaning
* Package : PACKAGE_NAME
* Class : Operation
* Desc : 數據類型間的運算
*/
public class Operation {
public static void main(String[] args) {
/**
* 整數運算
* +:加法
* -:減法
* *:乘法
* /:除法
* %:求餘
* ++:自增
* --:自減
* <<:左移
* >>:右移
*/
int numInt = 100 + 200 * 3 - 300 / 4 + 100 % 23;
System.out.println("整數運算:" + numInt);
System.out.println("自增/自減運算:");
// 自增
++numInt;
numInt++;
System.out.println(numInt);
numInt++;
++numInt;
System.out.println(numInt);
// 自減
numInt--;
--numInt;
System.out.println(numInt);
--numInt;
numInt--;
System.out.println(numInt);
System.out.println("移位運算:");
// 右移
numInt = numInt >> 4;
System.out.println(numInt);
// 左移
numInt = numInt << 2;
System.out.println(numInt);
// 位運算
System.out.println("位運算:");
int num2Int;
num2Int = 0 & 1;
System.out.println(num2Int);
num2Int = 1 | 2;
System.out.println(num2Int);
num2Int = 3 ^ 2;
System.out.println(num2Int);
num2Int = ~3;
System.out.println(num2Int);
}
}
布爾運算
- 關係運算符優先級
第一級 | ! |
---|---|
第二級 | >、>=、<、<= |
第三級 | ==、!= |
第四級 | && |
第五級 | | |
- 短路運算
當一個布爾運算的表達式能夠提前確定結果,則後續計算不再執行,直接返回結果;
- 三元運算符
a?x:y
,根據布爾表達式的結果,然後返回後續兩個表達式之一的計算結果;
int n = 10;
int x = n >= 0 ? -n : n;
System.out.println(x)
字符串運算
- 常見轉義字符
表達式 | 含義 |
---|---|
\\ |
字符\ |
\n |
換行符 |
\t |
Tab |
\r |
回車符 |
\u#### |
一個Unicode編碼字符 |
- 字符串連接
使用+
來連接任意字符串和其他數據類型,方便了字符串的處理;
- 多行字符串
字符串用"""..."""
來表示多行字符串,舉例:
String str = """
SELECT * FROM user
WHERE id < 10
ORDER BY score DESC
""";
- 不可變性
Java中字符屬於引用類型,不可以改變,平常我們使用時表面看似變了,但實際上邊的不是字符串,而是字符串變量的指向變了;
- 空值
null
和空字符串""
;
空值null
表示不存在,即該變量不指向任何對象;
數組
-
定義某一類型的數組時,使用
數據類型[] 數組名
,如int[] arrInt = new int[10]
-
數組所有元素初始化爲默認值,整型爲
0
,浮點型爲0.0
,布爾型爲false
; -
數組是統一數據類型的集合,一旦創建之後,其大小就不可以再改變;
-
可以在定義時直接初始化,如
int[] arrInt = new int[] {1,3,5,7,9}
或者int[] arrInt = {1,3,5,7,9}
;