目錄
資料型別
運算子
本篇博客主要介紹Java語言中的資料型別與運算子,
資料型別
1.首先我們介紹一下什么是變數
變數指的是程式運行時可變的量. 相當于開辟一塊記憶體空間來保存一些資料.
型別則是對變數的種類進行了劃分, 不同的型別的變數具有不同的特性.
我們所討論的 "變數" 主要和我們的 "記憶體" 這樣的硬體設備密切相關.
2.變數的型別
在Java中變數分為整型變數、浮點型變數、字符型變數、位元組型別變數、布爾型別變數和字串型別變數,
注Java中String也就是字串型別,它是一個類,也就是如下圖的參考型別

3.整型變數:
①int
在Java中一個int占4個位元組,與作業系統無關,不像c語言分32位,64位等~
基本語法格式:
int 變數名 = 初始值;
代碼示例:
public class TestDemo {
public static void main(String[] args) {
int a = 10;
System.out.println(a);
}
}
運行結果:

注:
1.int 表示變數的型別是一個整型
2.變數名是變數的標識后續都是通過這個名字來使用變數
3.Java 中 = 表示賦值(和數學不一樣), 意思是給變數設定一個初始值
4. 初始化操作是可選的, 但是建議創建變數的時候都顯式初始化
5. 最后不要忘記分號, 否則會編譯失敗
我們來測一下int的范圍代碼如下:
public class TestDemo {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);//int的最大值
System.out.println(Integer.MIN_VALUE);//int的最小值
}
}
運行結果是
表示int是4個位元組 4個位元組的范圍是[-2^31,2^31-1]
②long
long與int對變數命名規則類似,Java中long占8個位元組,
long 變數名 = 初始值;//建議數字最后加上大寫的L或者小寫的l,便于區分,
public class TestDemo {
public static void main(String[] args) {
long a = 10L;
System.out.println(a);
System.out.println(Long.MAX_VALUE);//long的最大值
System.out.println(Long.MIN_VALUE);//long的最小值
}
}
運行結果:
表明long 的范圍是[-2^63,2^63-1]
③short
short占2個位元組
short 變數名 = 初始值;
4.浮點型變數
①float
基本格式: 單精度浮點型float,占4個位元組,
float 變數名 = 初始值;//建議初始值后加大寫F或小寫f表示這個數是一個單精度浮點型!
public class TestDemo {
public static void main(String[] args) {
float a = 10L;
System.out.println(a);
}
}
運行結果:

②double
基本格式:雙精度浮點型,占8個位元組,
double 變數名 = 初始值;
public class TestDemo {
public static void main(String[] args) {
double a = 12.5;
System.out.println(a);
}
}
運行結果:

5.字符型變數
char
char占2個位元組!Java中字符都是用Unicode編碼
char 變數名 = 初始值;
代碼示例:
public class TestDemo {
public static void main(String[] args) {
char a ='A';
System.out.println(a);
}
}
運行結果:
![]()
6.位元組型變數
byte
byte 變數名 =初始值;
7.布爾型別變數
boolean
boolean 變數名 = 初始值;
注:boolean只有false和true兩個值!
Java 的 boolean 型別和 int 不能相互轉換, 不存在 1 表示 true, 0 表示 false 這樣的用法
8.字串型別變數
String
串通常是用" "包含;
String 變數名 = 初始值;
public class TestDemo {
public static void main(String[] args) {
String name = "zhangsan";
System.out.println(name);
}
}
Java中可以實作兩個字串"相加",此相加并不是真正的相加,只是將字串拼接到另一個字串的后面,
public class TestDemo {
public static void main(String[] args) {
String name1 = "zhangsan";
String name2 = "lisi";
System.out.println(name1+name2);
}
}
運算子
1.算術運算子 :+ - * / %
代碼如下:
public class TestDemo {
public static void main(String[] args) {
int a=5;
int b=2;
System.out.println(a+b);//加法運算子結果是7
System.out.println(a-b);//減法運算子結果是3
System.out.println(a*b);//乘法運算子結果是10
System.out.println(a/b);//除法運算子結果是2
System.out.println(a%b);//求余運算子結果是1
}
}
注:0不能作為除數!
public class TestDemo {
public static void main(String[] args) {
int a = 5;
int b = 0;
System.out.println(a/b);
}
}

會拋出0不能作為除數的例外!
2.增量運算子:+= -= *= /= %=
public class TestDemo {
public static void main(String[] args) {
int a = 5;
a+=1;//等價于a=a+1;此時a=6;
System.out.println(a);//6
a-=1;//等價于a=a-1;上次執行完a+=1時a已經變成了6,這時執行a-=1 a變成了5
System.out.println(a);//5
a*=2;//等價于a=a*2 此時a=10;
System.out.println(a);//10
a/=2;//等價于a=a/2;此時a=5;
System.out.println(a);//5
a%=2;//等價于a=a%2;此時a=1
System.out.println(a);//1
}
}
3.自增 自減運算子 前綴++ 后綴++ 前綴-- 后綴--
public class TestDemo {
public static void main(String[] args) {
int a=1;
int b=a++;//等價于b=a a=a+1此時b=1 a=2;
System.out.println(b);//1
System.out.println(a);//2
b=++a;//等價于a=a+1 b=a 此時a=3 b=3;
System.out.println(b);//3
System.out.println(a);//3
b=a--;//等價于b=a a=a-1 此時b=3 a=2;
System.out.println(b);//3
System.out.println(a);//2
b=--a;//等價于a=a-1 b=a 此時a=1 b=1
System.out.println(b);//1
System.out.println(a);//
}
}
4.邏輯運算子:&&(與) ||(或) !(非)
邏輯運算子的運算元(運算元往往是關系運算子的結果)和回傳值都是 boolean 也就是說 只有2值 true 或 false
public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b =5;
int c =6;
System.out.println(a>b&&a>c);//T
System.out.println(a>b||a>c);//T
System.out.println(a!=b);//T
System.out.println();
System.out.println(a<b&&a>c);//F短路求值,&&運算子中一假為假!
System.out.println(a<b||a>c);//T 或運算子中一真為真!
}
}
短路求值!
結論: 1. 對于 && , 如果左側運算式值為 位元科技 false, 則運算式的整體的值一定是 false, 無需計算右側運算式
2. 對于 ||, 如果左側運算式值為 true, 則運算式的整體的值一定是 true, 無需計算右側運算式.
5.位運算子
&(按位與) |(按位或) ~(按位取反) ^(按位異或)
位指二進制位
public class TestDemo {
public static void main(String[] args) {
int a=3;
int b=4;
System.out.println(a&b);//0
System.out.println(a|b);//7
System.out.println(a^b);//7
System.out.println(~a);//-4
}
}
我們來看 a和b的二進制表示




以上4張圖是為什么得到這個答案的分析程序,
6.移位運算子
>>(右移):最右位不要了,正數最左側補0,負數補1
<<(左移):最左側位不要了,最右側補0
>>>(無符號右移):最右側不要了,最左側補0
注:>>運算子 相當于除以2 右移n位 相當于除以2的n次方
<<運算子 相當于 乘2 左移n位 相當于乘2的n次方
7.條件運算子
格式:
運算式1?運算式2:運算式3
比如:
public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b = 2;
int c=a>b?a:b;
System.out.println(c);
}
}
答案毫無疑問是10,這是在求2個數的較大值,也就是說運算式1成立執行運算式2,運算式1不成立執行運算式3!
???????感謝觀看!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/272473.html
標籤:java
