進製轉換:
二進位制 0b 八進位制0 十六進製制0x
int i = 10;
int i2 = 010;//八進位制0
int i3 = 0x10;//十六進製制0x 0~9 a~f
int i4 = 0b10;
system.out.println(i);//10
system.out.println(i2);//1*16^1+0*16^0=16
system.out.println(i3);//1*8^1+0*8^0=8
system.out.println(i4);//1*2^1+0*2^0=2
銀行業務怎麼表示? 會用bigdecimal 數學工具類
因為float型別是有限的,離散的,有捨入誤差是大約的是接近但不等於的所以最好完全避免使用浮點數進行比較
最好完全避免使用浮點數進行比較
最好完全避免使用浮點數進行比較
最好完全避免使用浮點數進行比較
float f = 0.1f;
double d = 1.0/10;
system.out.println(f==d);//false
system.out.println(f);
system.out.println(d);
float d1 = 101011010101010f;
float d2 = d1+1;
system.out.println(d1==d2);//true
通過以上測試表明float 和 double這兩種型別有誤差所以不能使用
char c1 = 'a';
char c2 = '中';
system.out.println(c1);//a
system.out.println((int)c1);//強制轉換 97
system.out.println(c2);//中
system.out.println((int)c2);//20013
這表明所有字元本質還是數字
編碼用的是 unicode 2位元組 0-65536 有人測試過excel是 2^16=65536
unicode的編碼 u0000~uffff
char c3 = '\u0061';
system.out.println(c3);//a
轉義字元有 \t 製表符 、\n 換行符等。。。。。
system.out.println("hello\n");//hello+換行
system.out.println("hello\tworld");//hello world
string sa = new string("hello");
string sb = new string("hello");
string sc ="hello";
string sd ="hello";
system.out.println(sa);//hello
system.out.println(sb);//hello
system.out.println(sa==sb);//false
system.out.println(sc==sd);//true
此處涉及到物件導向sa和sb都是輸出hello但它們是不同的物件
boolean flag = true;
if(flag==true){}//不夠簡潔
if (flag){}//簡潔
以上兩種表達都是一樣的
但**要精簡易讀
dede擴充套件資料型別 資料型別擴充套件
資料型別擴充套件 整數擴充套件 整數的進製有二進位制 0b 八進位制 0 十進位制,十六進製制 0x 例 int num1 10 int num2 0b10 int num3 010 int num4 0x10 system.out.println num1 system.out.println n...
資料型別擴充套件
進製 二進位制0b 十進位制 八進位制0 十六進製制0x int i1 0 int i2 0b10 二進位制 int i3 010 八進位制 int i4 0x10 十六進製制 system.out.println i1 0 system.out.println i2 2 system.out.pr...
資料型別擴充套件
浮點型 float 與 double 特點 有限 離散 捨入誤差 大約 接近但不等於 float a 0.1f double b 1.0 10 system.out.println f d false float d1 12354554212f float d2 d1 1 system.out.pr...