資料型別擴展以及面試題講解
整數拓展:進制
-
int i=10;
-
int i2=010; //八進制0
-
int i3=0x10; //十六進制0x 0~9 A~F 16
相關進制轉換自行學習,用的不多
浮點數拓展
銀行業務怎么表示? 錢的問題意味著精準不能出錯
通常實用BigDecimal來表示,這是一個數學工具類
float與double 有有限,離散,接近但不等于,舍入誤差這樣的特點
因此最好不要使用浮點數進行比較
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
?
float d1=22223333333333333f;
float d2=d1+1;
System.out.println(d1==d2);//true
字符拓展
所有的字符本質都是數字,強制轉換,字符型轉整數型時都會被換成數字,這里就涉及到編碼
編碼Unicode表中97=a,占兩個位元組,能表示0~65536的數
很多人都以為Excel是無限的,其實不然,最大也時65536(2的16次方)
在Java中也可以用16進制的寫法
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//強制轉換
System.out.println(c2);
System.out.println((int)c2);//強制轉換
//所有的字符本質還是數字
//編碼 Unicode表中97=a 2位元組 0~65536 Excel 2的16次方=65536
?
//U0000~UFFFF
char c3='\u0061';//里面的61是16進制
System.out.println(c3);
轉義字符總結
| \a | 響鈴(BEL) | 007 |
|---|---|---|
| \b | 退格(BS) ,將當前位置移到前一列 | 008 |
| \f | 換頁(FF),將當前位置移到下頁開頭 | 012 |
| \n | 換行(LF) ,將當前位置移到下一行開頭 | 010 |
| \r | 回車(CR) ,將當前位置移到本行開頭 | 013 |
| \t | 水平制表(HT) (跳到下一個TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \ | 代表一個反斜線字符''' | 092 |
| ' | 代表一個單引號(撇號)字符 | 039 |
| " | 代表一個雙引號字符 | 034 |
| \? | 代表一個問號 | 063 |
| \0 | 空字符(NUL) | 000 |
| \ddd | 1到3位八進制數所代表的任意字符 | 三位八進制 |
| \xhh | 十六進制所代表的任意字符 | 十六進制 |
分析一些東西
前面寫浮點數時,了解了看上去相等的東西其實是不等的,這里利用物件來展示一下
String sa=new String("hello world" );
String sb=new String("hello world");
System.out.println(sa==sb);
?
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);
輸出結果
flase
true
為啥呢,這里涉及到java的一些設定上的東西,java有堆和堆疊的概念
第一個輸出結果是因為兩次創建物件分了不同的記憶體,在這個概念
上sa和sb不是一個東西
第二就是簡單創建兩個變數的結果,呼叫的是同一個記憶體下的東西
布林值拓展
boolean flag=true;
if (flag==true){ }//新手
if (flag){ }//老手
//Less is More! 代碼要精簡易讀
代碼要精簡易讀
以后等你成為大佬了,就不會再看到新手代碼了,但現在,作為一個小白,必須認認真真的寫,不能偷懶哦
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257653.html
標籤:其他
上一篇:例外
