0基礎學Java,老薛帶你學Java數(shù)據(jù)類型以及賦值方式(二)

2.2.5 浮點數(shù)(雙精度)

  • 注意事項
表示方式 所占空間 精度范圍
double 8字節(jié) 精確到15-16位
  • 案例分析
public class DataTypeTest05 {
    public static void main(String[] args) {
        //①: 聲明一個double類型的變量
        double num = 3.14;
        System.out.println("double類型num的值是:"+num);
        //②: 通過相除得到一個double類型的值
        num = 10/3.0;
        System.out.println(num);
    }
}
  • 結論

小數(shù)的數(shù)據(jù)類型通過double指定闸天,占內(nèi)存8個字節(jié),能夠代表的數(shù)的精度范圍是15到16位适袜;這里注意看上述代碼的第二次賦值哲泊,此時num=10/3.0得到的結果是3.33….35,這里要注意一點剩蟀,Java中通過double存儲的小數(shù)本身是存在問題的。如果對于數(shù)據(jù)的精確到要求較高切威,或者可能做一些貨幣計算育特,那么推薦大家使用BigDecimal。

2.2.6 浮點數(shù)(單精度)

  • 注意事項
表示方式 所占空間 精度范圍
float 4字節(jié) 精確到6-7位
  • 案例分析
public class DataTypeTest06 {
    public static void main(String[] args) {
        //①: 聲明一個float類型的變量
        float num = 3.14;
        System.out.println("float類型num的值是:"+num);
    }
}
  • 結論

這里要千萬注意先朦,默認情況下在Java中所有的小數(shù)的默認類型是double類型且预,所以當給float賦值時,本身賦值的數(shù)是double類型烙无;編譯器覺得賦值的右邊是double類型而左邊是float類型,所以報錯Type mismatch: cannot convert from double to float遍尺。

解決辦法: 在小數(shù)字面值的后面加"F"(推薦)或者是"f"截酷。

public class DataTypeTest06 {
    public static void main(String[] args) {
        //①: 聲明一個float類型的變量
        float num = 3.14F;
        System.out.println("float類型num的值是:"+num);
    }
}

2.2.7 字符型

  • 注意事項
表示方式 所占空間
char 2字節(jié)
  • 案例分析1
public class DataTypeTest07 {
    public static void main(String[] args) {
        //聲明一個char類型的變量
        char ch = '薛';
        System.out.println("char類型的變量ch是:"+ch);
    } 
}
  • 結論1

這里要千萬注意,char類型的變量賦值的時候乾戏,需要通過單引號引起來的單個字符迂苛。注意不能是0個也不能是多個三热,更不能是雙引號。PS:雙引號引起來的是字符串三幻,是一組字符序列就漾。通過String類型去指定

  • 常見報錯信息
編寫方式 報錯信息
char ch = 'ab'念搬; Invalid character constant 無效的字符常量
char ch = ''; Invalid character constant 無效的字符常量
char ch = "a"; Type mismatch: cannot convert from String to char 類型不匹配抑堡,無法將字符轉為字符
  • 案例分析2

我們之前帶大家分析過,Java采用的是Unicode字符集合朗徊,所以對于字符類型的數(shù)值而言首妖,除了通過單引號賦值單個字符之外還可以通過轉義字符和Unicode的值來進行賦值操作。

  • 通過轉義字符賦值
企業(yè)微信截圖_15536914461553.png

注意看紅色區(qū)域爷恳,對于某些字符是可以通過\字符這樣的方式進行賦值操作的有缆。比如:

什么是轉義字符?

在Java中,通過\對于原本的字符的含義讓其發(fā)生改變温亲,我們稱之為轉義字符棚壁。

舉例

public class DataTypeTest06 {
    public static void main(String[] args) {
        char ch1 = 't';
        System.out.println("字符ch1的值是:"+ch1);
        
        char ch2 = '\t';
        System.out.println("字符ch2的值是:"+ch2+"。");
    } 
}

輸出

字符ch1的值是:t
字符ch2的值是:   栈虚。

常見轉義字符以及含義

轉義字符 說明 代碼示例 顯示
\b 退格 System.out.println("我是\b退格"); 我是退格,會劃分成兩個詞
\n 換行符 System.out.println("我是\n換行"); 我是換行
\r 回車符 System.out.println("我是\r回車符"); 我是<br />回車符
\t 制表符 System.out.println("我是\t回車符"); 我是 制表符
\ " 雙引號 System.out.println("我是\ "雙引號"); 我是"雙引號
\ ' 單引號 System.out.println("我是\ ''單引號"); 我是’單引號
\ \ 反斜杠 System.out.println("我是\ \單引號"); 我是\單引號
  • 案例分析3
public class DataTypeTest07 {
    public static void main(String[] args) {
        //通過Unicode值來給字符類型賦值以\u開頭后跟十六進制數(shù)
        char ch = '\u0021';
        System.out.println("字符ch2的值是:"+ch+"袖外。");
    } 
}
  • 輸出
字符ch2的值是:!
  • 總結

根據(jù)上面ascii表中羅列的十進制的數(shù),可以通過\u后跟一個16進制的數(shù)节芥,表示一個字符的數(shù)值在刺。比如!顯示的十進制的數(shù)是33,轉為16進制是0021头镊,所以通過\u0021顯示的就是蚣驼!

案例分析4

根據(jù)上面的ascii表中的內(nèi)容相艇,我們發(fā)現(xiàn)所有的字符其實在計算機中存儲的都是對應的十進制轉換為的二進制的數(shù)據(jù)颖杏,也就意味著字符會對應的2個字節(jié)的正整數(shù)[0,65535];

public class DataTypeTest08 {
    public static void main(String[] args) {
        //對于字符a進行簡單的+1操作查看結果
        char ch = 'a';
        System.out.println("字符ch的值是:"+(ch+1));
    } 
}
  • 總結

char類型字符,是可以參與四則運算的坛芽,相當于一個16位的無符號整數(shù)留储,表示數(shù)的范圍是[0,65535]。

2.2.1 邏輯型

  • 注意事項
表示方式 表示邏輯 所占空間
邏輯型(boolean) true(真)或者 false(假) 1位
  • 案例分析
    public class DataTypeTest09{
        public static void main(String[] args){
            //1:聲明一個boolean類型的變量
            boolean flag = true;
            System.out.println("boolean類型的變量flag的值是:"+flag);
            //改變flag的值
            flag = false;
             System.out.println("boolean類型的變量flag的值是:"+flag);
        }
    }
  • 結論

邏輯型boolean所占空間是1位咙轩,只存在兩個值获讳,要么為true,要么為false活喊。注意在Java中不能使用0,1代表丐膝;并且其它的基本數(shù)據(jù)類型是無法轉換成為boolean類型的。

強調(diào)一點,boolean類型的變量實際在內(nèi)存中所占的空間是8位帅矗,一個字節(jié)偎肃。這個是大多數(shù)計算機實際的存儲的方式。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浑此,一起剝皮案震驚了整個濱河市累颂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凛俱,老刑警劉巖紊馏,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異最冰,居然都是意外死亡瘦棋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門暖哨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赌朋,“玉大人,你說我怎么就攤上這事篇裁∨媛” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵达布,是天一觀的道長团甲。 經(jīng)常有香客問我,道長黍聂,這世上最難降的妖魔是什么躺苦? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮产还,結果婚禮上匹厘,老公的妹妹穿的比我還像新娘。我一直安慰自己脐区,他們只是感情好愈诚,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牛隅,像睡著了一般炕柔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媒佣,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天匕累,我揣著相機與錄音,去河邊找鬼默伍。 笑死哩罪,一個胖子當著我的面吹牛授霸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播际插,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼显设!你這毒婦竟也來了框弛?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤捕捂,失蹤者是張志新(化名)和其女友劉穎瑟枫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體指攒,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡慷妙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了允悦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膝擂。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖隙弛,靈堂內(nèi)的尸體忽然破棺而出架馋,到底是詐尸還是另有隱情,我是刑警寧澤全闷,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布叉寂,位于F島的核電站,受9級特大地震影響总珠,放射性物質發(fā)生泄漏屏鳍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一局服、第九天 我趴在偏房一處隱蔽的房頂上張望钓瞭。 院中可真熱鬧,春花似錦腌逢、人聲如沸降淮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佳鳖。三九已至,卻和暖如春媒惕,著一層夾襖步出監(jiān)牢的瞬間系吩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工妒蔚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留穿挨,地道東北人月弛。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像科盛,于是被迫代替她去往敵國和親帽衙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容