不同進制的表現形式
* 二進制的數據表現形式* 由0 1組成,以0b開頭
* 八進制的數據表現形式
* 由0-7組成,以0開頭
* 十進制的數據表現形式
* 由0-9組成,整數默認爲十進制
* 十六進制的數據表現形式
* 由0-15組成,以0x開頭
public class Demo1_constant {
public static void main(String[] args){
System.out.println(0b100);//4
System.out.println(0100);//64
System.out.println(100);//100
System.out.println(0x100);//256
}
基本類型:
* byte 佔一個字節 -2^7~2^7-1
* short 佔兩個字節 -2^15~2^15-1
* int 佔四個字節 -2^31~2^31-1
* long 佔八個字節 -2^63~2^63-1
* 浮點型
* float 佔四個字節 單精度 (float比long型大 可以編代碼取值,互相賦值驗證一下)
* double 佔八個字節 雙精度
* 字符型
* char 佔兩個字節 0~2^15-1
* 布爾型
* boolean理論上是佔八分之一個字符。因爲一個開關就可以決定是true或者 false了,但java中沒有明確指定其大小,但c語言中其可以進行運算,0代表false,非0代表true
數據類型的轉換(面試題)
public class Demo2_DtaTypeConversion {
public static void main(String[] args) {
//面試題:看下面的程序是否有問題,如果有問題,請指出並說明理由
byte b1 =3;
byte b2 =4;
byte b3 =(byte)(b1 + b2);
System.out.println(b3);
//byte b3 =b1 + b2;如果不強制轉換成byte則有問題
/*從兩方面回答這個問題
*1.byte與byte(或char,short)進行運算的時候會提升爲int,兩個int類型相加的結果也是int
*2.b1和b2是兩個變量,變量存儲的值是變化,在編譯的時候,JVM無法判斷裏面具體的值,相加有可能超出byte的取值範圍
*
**/
byte b4 =3+4;//java編譯器有常量優化機制,常量計算出來以後在byte的取值範圍之內可以直接判斷輸出
System.out.println(b4);
}
}
字符和字符串參與運算:
* System.out.println('a');//輸出爲a
* System.out.println('a'+1);//輸出爲98 ASCII碼錶
* 通過看結果知道'a'的值是多少,由此引出ASCII碼錶
* B:ASCII碼錶的概述
* 記住三個值:
* '0' 48
* 'A' 65
* 'a' 97
* C:案例演示
* System.out.println("hello"+'a'+1);//輸出爲helloa1 字符串與任何數據類型用+相連接都是一個新的字符串
* System.out.println('a'+1+"hello");//98hello
* D:+在有字符串參與中被稱爲字符串連接符
* System.out.println("5+5="+5+5);//輸出爲5+5=55
* System.out.println("5+5="+(5+5));//輸出爲10
* System.out.println(5+5+"=5+5");//輸出爲10
++,--運算符的作用
* 自加(++)自減(--)運算
* ++:自加。對原有的數據進行+1
* --:自減。對原有的數據進行-1
* B:案例演示
* a:單獨使用:
* 放在操作數的前面和後面效果一樣。(這種用法是我們比較常見的)
a++和++a相同,都是進行自增
* b:參與運算使用:
* 放在操作數的前面,先自增或者自減,然後再參與運算。
* b=++a //先自增,b再取a的值
* 放在操作數的後面,先參與運算,再自增或者自減。
* b=a++ //b先取a的值,a再自增
* 案例演示
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
System.out.println(a);//9
System.out.println(b);//10
System.out.println(c);//8
* B:案例演示
* 請分別計算出x,y的值?
int x = 4;
int y = (x++)+(++x)+(x*10);//y的值爲70
首先取出x的值爲4,接着先自增變成5,++x後變成6,4+6+60=70運算符:
* A:關係運算符有哪些(比較運算符,條件運算符)
* ==,!=,>,>=,<,<=
* 注意事項:
* 無論你的操作是簡單還是複雜,結果是boolean類型。
* 關係運算結果都是布爾類型的值(true(1)、false(0))。
* 邏輯運算符
* &、|、!、^(異或)
* &&(短路與:左面表達式爲false則不再執行)、||(短路或(左面做true則不再執行))