基本數據類型
Java有8中基本數據類型:byte short float int long double boolean char
整數類型:byte short int long
浮點型:float double
字符型:char
布爾型:boolean
數值類型
byte 1個字節 8位二進制數
short 2個字節 16位二進制數
float 4個字節 32位二進制數
int 4個字節 32位二進制數
long 8個字節 64位二進制數
double 8個字節 64位二進制數
非數值類型
boolean 1/8個字節 1位二進制數
char 2個字節 8位二進制數
數值類型裝換
自動類型轉換
自動類型轉換隻能由低向高位轉換,反之則不行。浮點型可以對數值進行更加精準的描述,所以任何整型都可以自動轉換爲浮點型。
自動類型轉換值使用於數值類型不包括boolean、char
數值類型自動轉換的關係如下:byte->short->int->long->float->double
強制類型轉換
double num = 10.6;
int num1 = (int)num;
運算符
賦值運算符
int a = 1;
int b = 2;
System.out.println("交換之前a=" + a + " b=" + b);
int c = a;
a = b;
b = c;
System.out.println("交換之後a=" + a + " b=" + b);
基本算術運算符
+、-、*、/、%、++、--
int a = 10;
int b = 2;
System.out.println("a+b=" + (a + b));//求出變量A和變量B相加之和
System.out.println("a-b=" + (a - b));//求兩數之差
System.out.println("a*b=" + (a * b));//求兩數之積
System.out.println("a/b=" + (a / b));//求兩數之商
System.out.println("a%b=" + (a % b));//求餘數
System.out.println("a++=" + (a++));//求出變量A+1,需要注意的是++在後是先用在加1
System.out.println("++a=" + (++a));//求出變量A+1,需要注意的是++在前是先加1再使用
System.out.println("a--=" + (a--));//求出變量A-1,需要注意的是--在後是先用在減1
System.out.println("--a=" + (--a));//求出變量A-1,需要注意的是--在前是先減1再使用
整合小案例
//取當前變量的對應的位數及位數之和
int num = 678;
int hundreds = num/100;
System.out.println("百位數字是:"+hundreds);
int tens = num%100/10;
System.out.println("十位數字是:"+tens);
int ones = num%10;
System.out.println("個位數字是:"+ones);
int sum = hundreds+tens+ones;
System.out.println(num+"各位數字之和是:"+sum);
複合算術運算符
+=、-=、*=、/=、%=
int a=100;
System.out.println(a+=10);
System.out.println(a-=10);
System.out.println(a*=10);
System.out.println(a/=10);
System.out.println(a%=10);
關係運算符
==、!=、>、<、>=、<=
關係只能用作數值類型的比較,判斷條件的時候使用
int a=20;
int b=10;
if(a>b){
System.out.println("a>b");
}
if(b<a){
System.out.println("b<a");
}
if(b!=a){
System.out.println("b!=a");
}
邏輯運算符
&、|、&&、||、!
邏輯運算符只能用於 boolean 類型的數據運算,判斷boolean數據之間的邏輯關係,包括與、或、非這3種關係。
&與&&的區別
int a=100;
int b=10;
if ((a == b) && (1 / 0 == 0)) {
System.out.println("1");
}else{
System.out.println("執行不報錯");
}
執行結果是不報錯 因爲條件一不成立 後面的一個條件被短路了 直接就進入else中了
int a=100;
int b=10;
if ((a == b) & (1 / 0 == 0)) {
System.out.println("1");
}else{
System.out.println("執行不報錯");}
}
直接報錯/by zero 由此瞭解到&運算符判斷的是所有的條件。
|與||的區別
int a = 100;
int b = 100;
if ((a == b) || (1 / 0 == 0)) {
System.out.println("1");
} else {
System.out.println("執行不報錯");
}
執行結果爲1 ||運算符第一個條件達到條件就成立
int a = 100;
int b = 100;
if ((a == b) | (1 / 0 == 0)) {
System.out.println("1");
} else {
System.out.println("執行不報錯");
}
直接報錯/by zero 由此瞭解到|運算符也是判斷所有的條件。
!的使用
boolean c=true;
if(c){
System.out.println("true");
}else{
System.out.println("false");
}
//輸出爲true
boolean c=true;
if(!c){
System.out.println("true");
}else{
System.out.println("false");
}
// 輸出爲false
條件運算符
條件運算符也叫三元運算符,可以完成給變量賦值的操作,根據不同的條件給同⼀個變量賦不同的值,
基本語法:
String name="張三";
System.out.println("張三".equals(name)?"姓名匹配":"姓名不匹配");
位運算符
十進制和二進制的轉換。
十進制轉二進制:目標數除以二,如果能除盡,則該位計作零,如果除不盡,則該位計作一,再對
商繼續除以二,以此類推,直到商爲零,然後將每一位的結果進反序組合就是對應的二進制結果,
位預算符包括:&(按位與)、|(按位或)、^(按位異或)、<<(左移)、>>(右移)
&算符每一位的數值一一對應,若都爲1,則該位計作1,否則計作0
/**
*結果輸出0 20的二進制是10100
* 8的二進制位 1000
* 00000
*/
System.out.println(20&8);
|算符每一位的數值一一對應,只要有1個爲1,該位計作1,否則計作0。
/**
*結果輸出28 20的二進制是10100
* 8的二進制位 1000
* 11100
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28
*/
System.out.println(20|8);
^算符每一位的數值一一對應,相同計作0,不同計作1。
/**
*結果輸出28 20的二進制是10100
* 8的二進制位 1000
* 11100
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28
*/
System.out.println(20^8);
//<<算符
System.out.println(20<<8); //結果輸出5120 結果就是20*258
//>>算符
System.out.println(20>>8); //結果輸出0 結果就是20/258
如有整理的不足之處,多多指點!!