Java基礎(chǔ)之常量姓言、變量

四莽龟、常量

4.1 概述:

-在程序執(zhí)行的過程中其值不可以發(fā)生改變

4.2 分類:

-字面值常量
      字符串常量
      整數(shù)常量:Java對整數(shù)常量提供了4中表現(xiàn)形式(二邓萨、八地梨、十、十六進(jìn)制)先誉;
      小數(shù)常量
      字符常量
      布爾常量
      空常量

4.3 關(guān)于進(jìn)制:

4.3.1 概述:
-就是進(jìn)位制湿刽,是人們規(guī)定的一種進(jìn)位方法。
-規(guī)則:X進(jìn)制褐耳,則表示逢X進(jìn)一位;

計(jì)算機(jī)的電子元件的狀態(tài):開關(guān)
僅僅開關(guān)兩個(gè)狀態(tài)是不夠表達(dá)我們常見的數(shù)據(jù)的:英文字母渴庆,數(shù)字铃芦,標(biāo)點(diǎn)符號等。為了能便是更多的數(shù)據(jù)襟雷,國際化組織就規(guī)定:用8個(gè)這樣的信號(開關(guān))來表示一個(gè)數(shù)據(jù)刃滓,這個(gè)數(shù)據(jù)單位叫:字節(jié)。
后來耸弄,通過數(shù)字1咧虎,0來表示開和關(guān);那么1個(gè)字節(jié) 等于有8位(bit)计呈。
由這樣的1砰诵,0組成的數(shù)據(jù)就是二進(jìn)制數(shù)據(jù);

單位轉(zhuǎn)換:
1byte = 8bit
1k = 1024byte
1m = 1024k
1g = 1024g
1t = 1024g

4.3.2表現(xiàn)形式:

二進(jìn)制:有這樣的1捌显,0組成的數(shù)據(jù)就是二進(jìn)制茁彭。以0b開頭。

八進(jìn)制:Octal扶歪,縮寫OCT或O理肺,一種以8為基數(shù)的計(jì)數(shù)法,采用0善镰,1妹萨,2,3炫欺,4乎完,5,6竣稽,7八個(gè)數(shù)字囱怕,逢八進(jìn)1霍弹。以0開頭

十進(jìn)制:由0,1娃弓,2...9組成典格。整數(shù)默認(rèn)是十進(jìn)制。

十六進(jìn)制:它由0-9台丛,A-F組成耍缴,字母不區(qū)分大小寫。與10進(jìn)制的對應(yīng)關(guān)系是:0-9對應(yīng)0-9挽霉;A-F對應(yīng)10-15防嗡;N進(jìn)制的數(shù)可以用0~(N-1)的數(shù)表示,超過9的用字母A-F侠坎。以0x開頭

4.3.3相互轉(zhuǎn)換:

1)二進(jìn)制轉(zhuǎn)化成八進(jìn)制

-A.把二進(jìn)制的數(shù)據(jù)蚁趁,從右開始,每三位一組合实胸,最左邊不夠的時(shí)候補(bǔ)0他嫡。
-B.分別計(jì)算出對應(yīng)的十進(jìn)制數(shù)值,
-C.再把每個(gè)十進(jìn)制的數(shù)據(jù)組合起來庐完,就是一個(gè)八進(jìn)制钢属。
二進(jìn)制轉(zhuǎn)八進(jìn)制

2)二進(jìn)制轉(zhuǎn)化成十六進(jìn)制

-A.把二進(jìn)制的數(shù)據(jù),從右開始门躯,每四位一組合淆党,最左邊不夠的時(shí)候補(bǔ)0。
-B.分別計(jì)算出對應(yīng)的十進(jìn)制數(shù)值讶凉,
-C.再把每個(gè)十進(jìn)制的數(shù)據(jù)組合起來染乌,就是一個(gè)十六進(jìn)制。
二進(jìn)制轉(zhuǎn)十六進(jìn)制

3)任意進(jìn)制轉(zhuǎn)化為十進(jìn)制

按權(quán)求和:
系數(shù):每一個(gè)位上的數(shù)據(jù)值本身就是系數(shù)缀遍。
基數(shù):x進(jìn)制的基數(shù)就是x
權(quán):針對每一個(gè)位上的數(shù)據(jù)進(jìn)行編號慕匠,從右邊并且是從0開始編號,這個(gè)編號就是該位上數(shù)據(jù)的權(quán)值
x進(jìn)制轉(zhuǎn)化成十進(jìn)制:每一個(gè)位上的系數(shù)*基數(shù)的權(quán)次冪 之和域醇。
十進(jìn)制轉(zhuǎn)化十進(jìn)制台谊,推導(dǎo)出規(guī)律


按權(quán)求和的推導(dǎo)

4)十進(jìn)制他轉(zhuǎn)化其他進(jìn)制

除基取余,直到商為0譬挚,余數(shù)反轉(zhuǎn)锅铅;
52轉(zhuǎn)二進(jìn)制:0b110100
52 / 2 = 26 余0
26 / 2 = 13 余0
13 / 2 = 6 余1
6 / 2 = 3 余0
3 / 2 = 1 余1
1 / 2 = 0 余1
52轉(zhuǎn)八進(jìn)制:064
52 / 8 = 6 余4
6 / 8 =0 余6
52轉(zhuǎn)十六進(jìn)制:0x34
52 / 16 = 3 余4
3 / 16 = 0 余3

5)任意的x進(jìn)制到y(tǒng)進(jìn)制的轉(zhuǎn)換?

以十進(jìn)制為橋梁:
x進(jìn)制 轉(zhuǎn) 十進(jìn)制
十進(jìn)制 轉(zhuǎn) y進(jìn)制

6)二進(jìn)制與十進(jìn)制之間的快速轉(zhuǎn)換法:8421碼
(一知半解减宣,暫不考慮)

4.4 有符號的數(shù)據(jù)表示法:

4.4.1 概述:
-在計(jì)算機(jī)內(nèi)盐须,有符號數(shù)據(jù)的表示法:原碼、反碼漆腌、補(bǔ)碼贼邓。
-所有數(shù)據(jù)的運(yùn)算都是采用數(shù)據(jù)對應(yīng)的二進(jìn)制的補(bǔ)碼進(jìn)行的阶冈。
4.4.2 原碼、反碼塑径、補(bǔ)碼:
原碼女坑、反碼、補(bǔ)碼定義.png
原碼统舀、反碼匆骗、補(bǔ)碼練習(xí):
練習(xí)1

練習(xí)2

五、變量

5.1 概述:

-在程序執(zhí)行過程中誉简,在某個(gè)范圍內(nèi)變化的量
-可以理解成變量就是在內(nèi)存中的一小塊區(qū)域碉就,使用變量名來訪問這一塊區(qū)域,區(qū)域中的內(nèi)容就是變量的值闷串;

5.2 格式:

數(shù)據(jù)類型 變量名 = 初始化值瓮钥;此格式是固定的;

5.3 關(guān)于數(shù)據(jù)類型

5.3.1 概述:

Java是強(qiáng)類型語言窿克,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型骏庸,在內(nèi)存中分配了不同的大小的內(nèi)存空間。

數(shù)據(jù)類型
基本數(shù)據(jù)類型及其字節(jié)數(shù)
5.3.2 注意事項(xiàng):

A.整數(shù)類型默認(rèn)值是int年叮,浮點(diǎn)類型默認(rèn)是double。(在運(yùn)算是會(huì)把byte轉(zhuǎn)換成int再運(yùn)算)

B.聲明long類型時(shí)玻募,后面要加上“L”或者"l";

C.聲明float類型只损,后加“F”或"f",否則可能損失精度七咧,因浮點(diǎn)數(shù)據(jù)默認(rèn)是double的跃惫。

D.默認(rèn)轉(zhuǎn)換:1)byte,short,char--int--long--float--double(從小字節(jié)轉(zhuǎn)到大字節(jié),避免可能損失精度)

2)byte,short,char之間不能相互轉(zhuǎn)換艾栋,他們參與運(yùn)算首先轉(zhuǎn)成int類型爆存;
char在轉(zhuǎn)化int類型時(shí)對應(yīng)一張ASCII表,其中有3個(gè)關(guān)健對應(yīng)值須記住
'0'-----48
'A'-----65
'a'-----97

練習(xí):

衍生:當(dāng)字符串+其他類型時(shí)
字符串+其他類型

E.強(qiáng)制轉(zhuǎn)換:目標(biāo)類型 變量名 = (目標(biāo)類型)(被轉(zhuǎn)換的數(shù)據(jù))

F.運(yùn)算時(shí)直接是常量想加蝗砾,查看注意A中的圖的解釋

5.3.3 練習(xí)

5.4 使用變量的主意事項(xiàng):

A.作用域:變量定義的位置決定了他的作用域先较,定義在方法內(nèi),作用域就是這個(gè)方法體悼粮,定義在類中作用域就是這個(gè)類闲勺。相同的作用域中不能丁兩個(gè)同名變量。
B.初始化值:沒有初始化值不能直接使用扣猫。
C.在一行上建議之定義一個(gè)變量菜循。可以多個(gè)不算錯(cuò)申尤,書寫不規(guī)范癌幕。

5.5 思考:

1.變量相加和常量相加的區(qū)別衙耕?答案:注意A與F
2.強(qiáng)制轉(zhuǎn)換數(shù)據(jù)移除后的結(jié)果怎么算?答案:練習(xí)

byte,short他們接收的其實(shí)是int類型的值勺远,它們會(huì)自己做一個(gè)檢測橙喘,如果超出他們所能表達(dá)的數(shù)值范圍則就報(bào)錯(cuò)了。byte b = 128;//就報(bào)錯(cuò)谚中。

byte臨界值的問題(-128~127)
byte b1 = 127;//無錯(cuò)
byte b2 = 128;//打印出來的是-128
byte b3 = 129;//打印出來的是-127
byte b4 = 130;//打印出來的是-126
128的二進(jìn)制是10000000渴杆,-128的二進(jìn)制也可以是:10000000(這個(gè)的1既是符號位也是數(shù)值位),其他類型的臨界值也是這樣的宪塔;

數(shù)據(jù)類型的默認(rèn)轉(zhuǎn)換:
byte 磁奖、char、short --int -- long --float --double
其中l(wèi)ong是8字節(jié)某筐,而float是4字節(jié)比搭,為什么long還能默認(rèn)轉(zhuǎn)成float呢?
A.long與float的底層存儲結(jié)構(gòu)不同
1) long是整數(shù)類型南誊,直接是1身诺,08位那么存儲;
2) float是浮點(diǎn)類型抄囚,是帶小數(shù)的二進(jìn)制換算霉赡,存儲的是有效數(shù)字位(科學(xué)計(jì)數(shù)法)
B.float所表示的數(shù)值范圍要大于long類型所表示的數(shù)值范圍的;
1) long表示的數(shù)值范圍:2^63-1
2) float表示的數(shù)值范圍:3.410^38
3.4
10^38 > 210^38 > 28^38 > 22338 = 22^114 > 2^63-1

Java語言中的字符char可以存儲漢字嗎幔托?
可以的穴亏,因?yàn)镴ava中的char是2個(gè)字節(jié)的;一個(gè)漢字是占2個(gè)字節(jié)的重挑;Java的編碼是采用Unicode編碼嗓化;

float類型的數(shù)據(jù)在內(nèi)存中是怎么存儲的?(了解)
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
S表示浮點(diǎn)數(shù)正負(fù)
E指數(shù)加上127后的值得二進(jìn)制數(shù)據(jù)
M底數(shù)
舉例:17.625在內(nèi)存中的存儲
首先要把17.625換算成二進(jìn)制:10001.101
整數(shù)部分谬哀,除以2刺覆,直到商為0,余數(shù)反轉(zhuǎn)史煎。
小數(shù)部分谦屑,乘以2,直到乘位0劲室,進(jìn)位順序取伦仍。
在將10001.101右移,直到小數(shù)點(diǎn)前只剩1位:
1.0001101 * 2^4 因?yàn)橛乙苿?dòng)了四位
這個(gè)時(shí)候很洋,我們的底數(shù)和指數(shù)就出來了
底數(shù):因?yàn)樾?shù)點(diǎn)前必為1充蓝,所以IEEE規(guī)定只記錄小數(shù)點(diǎn)后的就好。所以,此處的底數(shù)為:0001101
指數(shù):實(shí)際為4谓苟,必須加上127(轉(zhuǎn)出的時(shí)候官脓,減去127),所以為131涝焙。也就是10000011
符號部分是整數(shù)卑笨,所以是0
綜上所述,17.625在內(nèi)存中的存儲格式是:
01000001 10001101 00000000 00000000

參考書籍視頻:
-學(xué)習(xí)視頻:黑馬程序員_Java基礎(chǔ)視頻-深入淺出精華版
-閱讀書籍:Java核心技術(shù) 卷I(機(jī)械工業(yè)出版社)
          API1.8
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仑撞,一起剝皮案震驚了整個(gè)濱河市赤兴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隧哮,老刑警劉巖桶良,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沮翔,居然都是意外死亡陨帆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門采蚀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疲牵,“玉大人,你說我怎么就攤上這事榆鼠「侔郑” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵妆够,是天一觀的道長缩焦。 經(jīng)常有香客問我,道長责静,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任盖桥,我火速辦了婚禮灾螃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘揩徊。我一直安慰自己腰鬼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布塑荒。 她就那樣靜靜地躺著熄赡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪齿税。 梳的紋絲不亂的頭發(fā)上彼硫,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼拧篮。 笑死词渤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的串绩。 我是一名探鬼主播缺虐,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼礁凡!你這毒婦竟也來了高氮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顷牌,失蹤者是張志新(化名)和其女友劉穎剪芍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體韧掩,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡紊浩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疗锐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坊谁。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滑臊,靈堂內(nèi)的尸體忽然破棺而出口芍,到底是詐尸還是另有隱情,我是刑警寧澤雇卷,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布鬓椭,位于F島的核電站,受9級特大地震影響关划,放射性物質(zhì)發(fā)生泄漏小染。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一贮折、第九天 我趴在偏房一處隱蔽的房頂上張望裤翩。 院中可真熱鬧,春花似錦调榄、人聲如沸踊赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筐带。三九已至,卻和暖如春缤灵,著一層夾襖步出監(jiān)牢的瞬間伦籍,已是汗流浹背蓝晒。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸽斟,地道東北人拔创。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像富蓄,于是被迫代替她去往敵國和親剩燥。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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

  • 墨語添香閱讀 221評論 0 9
  • 到現(xiàn)在我還幻想著有那么一天立倍,在深夜灭红、清晨或者午后,你會(huì)給我發(fā)一條長長的信息口注,簡短一點(diǎn)也沒關(guān)系告訴我你想回心轉(zhuǎn)意变擒。
    S棟閱讀 185評論 0 0