數(shù)據(jù)類型
1.首先我們介紹一下什么是變量
變量指的是程序運(yùn)行時(shí)可變的量. 相當(dāng)于開(kāi)辟一塊內(nèi)存空間來(lái)保存一些數(shù)據(jù).
類型則是對(duì)變量的種類進(jìn)行了劃分, 不同的類型的變量具有不同的特性.
我們所討論的 "變量" 主要和我們的 "內(nèi)存" 這樣的硬件設(shè)備密切相關(guān).
2.變量的類型
在Java中變量分為整型變量踪蹬、浮點(diǎn)型變量、字符型變量渺蒿、字節(jié)類型變量筐带、布爾類型變量和字符串類型變量。
注Java中String也就是字符串類型寂呛,它是一個(gè)類怎诫,也就是如下圖的引用類型
3.整型變量:
①int
在Java中一個(gè)int占4個(gè)字節(jié),與操作系統(tǒng)無(wú)關(guān)贷痪,不像c語(yǔ)言分32位幻妓,64位等~
基本語(yǔ)法格式:
int 變量名 = 初始值;
代碼示例:
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? int a = 10;
? ? ? ? System.out.println(a);
? ? }
}
運(yùn)行結(jié)果:
注:
1.int 表示變量的類型是一個(gè)整型
2.變量名是變量的標(biāo)識(shí)后續(xù)都是通過(guò)這個(gè)名字來(lái)使用變量
3.Java 中 = 表示賦值(和數(shù)學(xué)不一樣), 意思是給變量設(shè)置一個(gè)初始值
4. 初始化操作是可選的, 但是建議創(chuàng)建變量的時(shí)候都顯式初始化
5. 最后不要忘記分號(hào), 否則會(huì)編譯失敗
我們來(lái)測(cè)一下int的范圍代碼如下:
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? System.out.println(Integer.MAX_VALUE);//int的最大值
? ? ? ? System.out.println(Integer.MIN_VALUE);//int的最小值
? ? }
}
運(yùn)行結(jié)果是
表示int是4個(gè)字節(jié) 4個(gè)字節(jié)的范圍是[-2^31,2^31-1]
②long
long與int對(duì)變量命名規(guī)則類似,Java中l(wèi)ong占8個(gè)字節(jié)劫拢。
long 變量名 = 初始值;//建議數(shù)字最后加上大寫的L或者小寫的l肉津,便于區(qū)分。
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的最小值
? ? }
}
運(yùn)行結(jié)果:
表明long 的范圍是[-2^63,2^63-1]
③short
short占2個(gè)字節(jié)
short 變量名 = 初始值;
4.浮點(diǎn)型變量
①float
基本格式: 單精度浮點(diǎn)型float舱沧,占4個(gè)字節(jié)妹沙。
float 變量名 = 初始值;//建議初始值后加大寫F或小寫f表示這個(gè)數(shù)是一個(gè)單精度浮點(diǎn)型!
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? float a = 10L;
? ? ? ? System.out.println(a);
? ? }
}
運(yùn)行結(jié)果:
②double
基本格式:雙精度浮點(diǎn)型熟吏,占8個(gè)字節(jié)距糖。
double 變量名 = 初始值;
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? double a = 12.5;
? ? ? ? System.out.println(a);
? ? }
}
運(yùn)行結(jié)果:
5.字符型變量
char
char占2個(gè)字節(jié)玄窝!Java中字符都是用Unicode編碼
char 變量名 = 初始值;
代碼示例:
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? char a ='A';
? ? ? ? System.out.println(a);
? ? }
}
運(yùn)行結(jié)果:
6.字節(jié)型變量
byte
byte 變量名 =初始值;
7.布爾類型變量
boolean
boolean 變量名 = 初始值;
注:boolean只有false和true兩個(gè)值!
Java 的 boolean 類型和 int 不能相互轉(zhuǎn)換, 不存在 1 表示 true, 0 表示 false 這樣的用法
8.字符串類型變量
String
串通常是用" "包含悍引;
String 變量名 = 初始值;
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? String name = "zhangsan";
? ? ? ? System.out.println(name);
? ? }
}
Java中可以實(shí)現(xiàn)兩個(gè)字符串"相加",此相加并不是真正的相加,只是將字符串拼接到另一個(gè)字符串的后面恩脂。
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? String name1 = "zhangsan";
? ? ? ? String name2 = "lisi";
? ? ? ? System.out.println(name1+name2);
? ? }
}
運(yùn)算符
1.算術(shù)運(yùn)算符 :+ - * / %
代碼如下:
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? int a=5;
? ? ? ? int b=2;
? ? ? ? System.out.println(a+b);//加法運(yùn)算符結(jié)果是7
? ? ? ? System.out.println(a-b);//減法運(yùn)算符結(jié)果是3
? ? ? ? System.out.println(a*b);//乘法運(yùn)算符結(jié)果是10
? ? ? ? System.out.println(a/b);//除法運(yùn)算符結(jié)果是2
? ? ? ? System.out.println(a%b);//求余運(yùn)算符結(jié)果是1
? ? }
}
注:0不能作為除數(shù)!
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? int a = 5;
? ? ? ? int b = 0;
? ? ? ? System.out.println(a/b);
? ? }
}
會(huì)拋出0不能作為除數(shù)的異常趣斤!
2.增量運(yùn)算符:+= -= *= /= %=
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? int a = 5;
? ? ? ? a+=1;//等價(jià)于a=a+1;此時(shí)a=6俩块;
? ? ? ? System.out.println(a);//6
? ? ? ? a-=1;//等價(jià)于a=a-1;上次執(zhí)行完a+=1時(shí)a已經(jīng)變成了6,這時(shí)執(zhí)行a-=1 a變成了5
? ? ? ? System.out.println(a);//5
? ? ? ? a*=2;//等價(jià)于a=a*2 此時(shí)a=10浓领;
? ? ? ? System.out.println(a);//10
? ? ? ? a/=2;//等價(jià)于a=a/2;此時(shí)a=5;
? ? ? ? System.out.println(a);//5
? ? ? ? a%=2;//等價(jià)于a=a%2;此時(shí)a=1
? ? ? ? System.out.println(a);//1
? ? }
}
3.自增 自減運(yùn)算符 前綴++ 后綴++ 前綴-- 后綴--
public class TestDemo {
? ? public static void main(String[] args) {
? ? ? ? int a=1;
? ? ? ? int b=a++;//等價(jià)于b=a a=a+1此時(shí)b=1 a=2;
? ? ? ? System.out.println(b);//1
? ? ? ? System.out.println(a);//2
? ? ? ? b=++a;//等價(jià)于a=a+1 b=a 此時(shí)a=3 b=3;
? ? ? ? System.out.println(b);//3
? ? ? ? System.out.println(a);//3
? ? ? ? b=a--;//等價(jià)于b=a a=a-1 此時(shí)b=3 a=2;
? ? ? ? System.out.println(b);//3
? ? ? ? System.out.println(a);//2
? ? ? ? b=--a;//等價(jià)于a=a-1 b=a 此時(shí)a=1 b=1
? ? ? ? System.out.println(b);//1
? ? ? ? System.out.println(a);//
? ? }
}
4.邏輯運(yùn)算符:&&(與) ||(或)? 玉凯!(非)
邏輯運(yùn)算符的操作數(shù)(操作數(shù)往往是關(guān)系運(yùn)算符的結(jié)果)和返回值都是 boolean 也就是說(shuō) 只有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短路求值,&&運(yùn)算符中一假為假联贩!
? ? ? ? System.out.println(a<b||a>c);//T 或運(yùn)算符中一真為真壮啊!
? ? }
}
短路求值!
結(jié)論: 1. 對(duì)于 && , 如果左側(cè)表達(dá)式值為 比特科技 false, 則表達(dá)式的整體的值一定是 false, 無(wú)需計(jì)算右側(cè)表達(dá)式
2. 對(duì)于 ||, 如果左側(cè)表達(dá)式值為 true, 則表達(dá)式的整體的值一定是 true, 無(wú)需計(jì)算右側(cè)表達(dá)式.
5.位運(yùn)算符
&(按位與) |(按位或)? ~(按位取反) ^(按位異或)
位指二進(jìn)制位
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
? ? }