Java講課筆記04:變量與常量

      網(wǎng)友投稿 920 2025-04-04

      文章目錄

      零、本講學(xué)習目標

      1、學(xué)會變量的定義

      2、了解變量的數(shù)據(jù)類型

      3、掌握變量類型轉(zhuǎn)換的方式

      4、明確變量的作用域

      5、熟悉Java中的常量

      一、變量(Variable)

      1、變量定義

      (1)變量定義語法格式

      (2)變量定義示例

      (3)變量在內(nèi)存中的狀態(tài)變化圖

      2、變量數(shù)據(jù)類型

      (1)整數(shù)類型變量

      (2)浮點數(shù)類型變量

      (3)字符類型變量

      (4)布爾類型變量

      (5)案例:演示變量數(shù)據(jù)類型

      3、變量類型轉(zhuǎn)換

      (1)自動類型轉(zhuǎn)換

      (2)強制類型轉(zhuǎn)換

      (3)表達式類型自動提升

      (4)強制類型轉(zhuǎn)換格式

      4、變量作用域

      二、常量(Constant)

      1、字面常量(Literal Constant)

      (1)整型常量

      (2)浮點型常量

      (3)字符常量

      (4)字符串常量

      (5)布爾常量

      (6)null常量

      2、符號常量(Symbolic Constant)

      (1)符號常量定義格式

      (2)案例:計算圓面積(采用符號常量PI)

      三、課后作業(yè)

      1、簡述Java基本數(shù)據(jù)類型

      2、輸入兩個實數(shù),編程計算其和差積商。

      四、擴展閱讀:不要像小白用戶那樣提問

      零、本講學(xué)習目標

      1、學(xué)會變量的定義

      2、了解變量的數(shù)據(jù)類型

      3、掌握變量類型轉(zhuǎn)換的方式

      4、明確變量的作用域

      5、熟悉Java中的常量

      編寫程序?qū)?shù)據(jù)進行加工處理,原始數(shù)據(jù)、中間結(jié)果以及最終結(jié)果都需要存放,而變量就是內(nèi)存里用來存放各種數(shù)據(jù)的容器。對于變量,顧名思義,也就是說一個變量里存放的數(shù)據(jù)在程序執(zhí)行過程中是可以不斷變化的。在程序執(zhí)行期間,數(shù)據(jù)保持不變的容器,那就是常量了。

      一、變量(Variable)

      1、變量定義

      (1)變量定義語法格式

      在程序運行期間,隨時可能產(chǎn)生一些臨時數(shù)據(jù),應(yīng)用程序會將這些數(shù)據(jù)保存在一些內(nèi)存單元中,每個內(nèi)存單元都用一個標識符來標識。這些內(nèi)存單元我們稱之為變量,定義的標識符就是變量名,內(nèi)存單元中存儲的數(shù)據(jù)就是變量的值。

      (2)變量定義示例

      (3)變量在內(nèi)存中的狀態(tài)變化圖

      2、變量數(shù)據(jù)類型

      Java是一門強類型的編程語言,它對變量的數(shù)據(jù)類型有嚴格的限定。在定義變量時必須先聲明變量的數(shù)據(jù)類型,在為變量賦值時必須賦予和變量同一種類型的值,否則程序在編譯期間就會出現(xiàn)類型匹配錯誤的問題。

      Java有8種基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean。

      (1)整數(shù)類型變量

      在為一個long類型的變量賦值時,所賦值的后面要加上一個字母“L”(或小寫“l(fā)”),說明賦值為long類型。如果賦的值未超出int型的取值范圍,則可以省略字母“L”(或小寫“l(fā)”)。

      (2)浮點數(shù)類型變量

      一個小數(shù)會被默認為double類型的值,因此在為一個float類型的變量賦值時,所賦值的后面一定要加上字母“F”(或者小寫“f”),而為double類型的變量賦值時,可以在所賦值的后面加上字符“D”(或小寫“d”),也可以不加。

      Java講課筆記04:變量與常量

      (3)字符類型變量

      字符類型變量用于存儲一個單一字符,在Java中用char表示。

      Java中每個char類型的字符變量都會占用2個字節(jié)。

      在給char類型的變量賦值時,需要用一對英文半角格式的單引號(’’)把字符括起來,如’a’,也可以將char類型的變量賦值為0~65535范圍內(nèi)的整數(shù),計算機會自動將這些整數(shù)轉(zhuǎn)化為所對應(yīng)的字符,如數(shù)值97對應(yīng)的字符為’a’。

      (4)布爾類型變量

      布爾類型變量用來存儲布爾值,在Java中用boolean表示,該類型的變量只有兩個值,即true和false。

      (5)案例:演示變量數(shù)據(jù)類型

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      運行程序,查看結(jié)果:

      3、變量類型轉(zhuǎn)換

      在程序中,當把一種數(shù)據(jù)類型的值賦給另一種數(shù)據(jù)類型的變量時,需要進行數(shù)據(jù)類型轉(zhuǎn)換。根據(jù)轉(zhuǎn)換方式的不同,數(shù)據(jù)類型轉(zhuǎn)換可分為兩種:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。

      (1)自動類型轉(zhuǎn)換

      自動類型轉(zhuǎn)換也叫隱式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型在轉(zhuǎn)換的過程中不需要顯式地進行聲明。當把一個類型取值范圍小的數(shù)值直接賦給另一個取值范圍大的數(shù)據(jù)類型變量時,系統(tǒng)就會進行自動類型轉(zhuǎn)換。

      自動類型轉(zhuǎn)換就好比將小瓶水倒入到大瓶的換裝過程。我們將小瓶水倒入到大瓶中時,由于小瓶的容量比大瓶的容量小,所以倒入的水永遠不可能溢出大瓶。

      Java中支持不同數(shù)據(jù)類型之間的自動轉(zhuǎn)換

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      運行程序,結(jié)果如下:

      (2)強制類型轉(zhuǎn)換

      強制類型轉(zhuǎn)換也叫顯式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型之間的轉(zhuǎn)換需要進行顯式地聲明。當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型時,自動類型轉(zhuǎn)換無法進行,這時就需要進行強制類型轉(zhuǎn)換。

      強制類型轉(zhuǎn)換就好比將大瓶水倒入到小瓶中一樣,如果大瓶中的水的容量小于小瓶的大小,那么水是可以完全倒入的;否則多出來的水就會溢出。所以系統(tǒng)默認不支持這種行為,只能由開發(fā)者自己決定是否進行強制類型轉(zhuǎn)換。

      在對變量進行強制類型轉(zhuǎn)換時,會發(fā)生取值范圍較大的數(shù)據(jù)類型向取值范圍較小的數(shù)據(jù)類型的轉(zhuǎn)換情況,如將一個int類型的數(shù)轉(zhuǎn)為byte類型,這樣做極容易造成數(shù)據(jù)精度的丟失。

      出現(xiàn)丟失精度的原因是,變量b為int類型,在內(nèi)存中占用4個字節(jié),而byte類型的數(shù)據(jù)在內(nèi)存中占用1個字節(jié),當將變量b的類型強轉(zhuǎn)為byte類型后,前面3個高位字節(jié)的數(shù)據(jù)已經(jīng)丟失,這樣數(shù)值就發(fā)生了改變。

      (3)表達式類型自動提升

      表達式是指由變量和運算符組成的一個算式。變量在表達式中進行運算時,也有可能發(fā)生自動類型轉(zhuǎn)換,這就是表達式數(shù)據(jù)類型的自動提升,如byte、short和char類型的變量在運算期間類型會自動提升為int,然后再進行運算。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      運行程序,結(jié)果如下:

      如何判斷b+ s + c表達式里的各個變量類型已經(jīng)自動提升到int類型?

      由此可以看到,變量b、s、c自動提升為int類型,其和也是int類型,賦給short或byte類型變量,都是要報錯的。

      (4)強制類型轉(zhuǎn)換格式

      目標類型 變量名 = (目標類型)值;

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      運行程序,結(jié)果如下:

      4、變量作用域

      變量需要在它的作用范圍內(nèi)才可以被使用,這個作用范圍稱為變量的作用域。

      可以看到,在代碼塊里可以訪問在代碼塊之前的變量x。

      但是,我們來看一下,在代碼塊后能否訪問在代碼塊里定義的變量y呢?

      可以看到,變量y的作用域只在代碼塊里,出了代碼塊,變量y就不再存在了,因此提示“無法解析符號y”。

      變量作用域的三個級別:代碼塊級別——>方法級別——>類級別

      低級別范圍可以訪問高級別變量,反之則不能訪問,編譯器會報錯。

      二、常量(Constant)

      常量就是在程序中固定不變的值,是不能改變的數(shù)據(jù)。例如數(shù)字1、字符’a’、浮點數(shù)3.2等。在Java中,常量包括整型常量、浮點數(shù)常量、布爾常量、字符常量等。

      1、字面常量(Literal Constant)

      (1)整型常量

      二進制:由數(shù)字0和1 組成的數(shù)字序列。在JDK 7以后,允許使用二進制字面值來表示整數(shù),此時二進制數(shù)值前面要以0b或0B開頭,目的是為了和十進制進行區(qū)分,如:0b01101100、0B10110101。

      八進制:以0開頭,并且其后由0 ~7范圍(包括0和7)內(nèi)的整數(shù)組成的數(shù)字序列,如:0342。

      十進制:由數(shù)字0~9范圍(包括0和9)內(nèi)的整數(shù)組成的數(shù)字序列。如:198。

      十六進制:以0x或者0X開頭,并且其后由0-9、A-F(包括0和9、A和F)組成的字符序列,如:0x25AF。

      不同進制整數(shù)之間的相互轉(zhuǎn)換:

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      運行程序,結(jié)果如下:

      課堂練習:將十六進制數(shù)7d3e5a轉(zhuǎn)換成其它幾種進制。

      (2)浮點型常量

      浮點數(shù)常量就是在數(shù)學(xué)中用到的小數(shù),分為float單精度浮點數(shù)和double雙精度浮點數(shù)兩種類型。

      2e3f 3.6d 0f 3.84d 5.022e+23f

      單精度浮點數(shù)后面以F或f結(jié)尾,而雙精度浮點數(shù)則以D或d結(jié)尾。當然,在使用浮點數(shù)時也可以在結(jié)尾處不加任何后綴,此時Java虛擬機會將浮點數(shù)默認識別為double雙精度浮點數(shù)。

      (3)字符常量

      字符常量用于表示一個字符,一個字符常量要用一對英文半角格式的單引號(’ ')引起來,它可以是英文字母、數(shù)字、標點符號以及由轉(zhuǎn)義序列來表示的特殊字符。

      ‘a(chǎn)’ ‘1’ ‘&’ ‘\r’ ‘\n’ ‘\t’

      轉(zhuǎn)義字符:

      在字符常量中,反斜杠(\)是一個特殊的字符,被稱為轉(zhuǎn)義符,它的作用是用來轉(zhuǎn)義緊隨其后的一個字符。轉(zhuǎn)義后的字符通常用于表示一個不可見的字符或具有特殊含義的字符,例如“\n”表示換行。

      常見轉(zhuǎn)義字符:

      \r :表示回車,將光標定位到當前行的開頭,不會跳到下一行。

      \n :表示換行,換到下一行的開頭。

      \t :表示制表符,將光標移到下一個制表符的位置,就像在文檔中用Tab鍵一樣。

      \b :表示退格符號,就像鍵盤上的Backspace。

      \’ :表示單引號字符,表示字符的開始和結(jié)束,如果直接寫單引號字符(’),程序會認為前兩個是一對,會報錯,因此需要使用轉(zhuǎn)義(\’)。

      \" :表示雙引號字符,表示字符串的開始和結(jié)束,包含在字符串中的雙引號需要轉(zhuǎn)義,比如"he says,“thank you”."。

      \\ :表示反斜杠轉(zhuǎn)義字符,由于在Java代碼中的斜杠(\)是轉(zhuǎn)義符,因此需要表示字面意義上的\,就需要使用雙斜杠\\。

      (4)字符串常量

      字符串常量用于表示一串連續(xù)的字符,一個字符串常量要用一對英文半角格式的雙引號(" ")引起來。

      “Hello World” “903213” “Welcome to Luzhou~”

      (5)布爾常量

      布爾常量即布爾類型的兩個值true和false,該常量用于區(qū)分一個條件的真假。

      (6)null常量

      null常量只有一個值null,表示對象的引用為空。

      2、符號常量(Symbolic Constant)

      Java符號常量,其實就是特殊的變量,也是固定不變的量,有且只能進行一次賦值。只需要在定義變量的語法基礎(chǔ)上加上一個final關(guān)鍵字修飾即可。

      (1)符號常量定義格式

      final 常量類型 常量名 [= 初始值];

      (2)案例:計算圓面積(采用符號常量PI)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      運行程序,結(jié)果如下:

      本案例,采用了幾種方式來實現(xiàn)保留到小數(shù)點后面兩位。大家可以選擇一種自己喜歡的方式,在后面的教學(xué)案例里還會用到這個東西。

      Python里也有方法實現(xiàn)保留到小數(shù)點后面多少位。

      三、課后作業(yè)

      1、簡述Java基本數(shù)據(jù)類型

      說明每種類型的關(guān)鍵字、占用多少個字節(jié)

      2、輸入兩個實數(shù),編程計算其和差積商。

      提示:加減乘除運算符號分別是+、-、*、/

      四、擴展閱讀:不要像小白用戶那樣提問

      很多人一遇到問題就問人,而且描述不清楚問題,只說簡單的問題現(xiàn)象。比如問:“網(wǎng)站訪問不了怎么回事?”“連接不上服務(wù)器怎么辦?”“程序啟動不了怎么辦?”“程序在本地運行沒有問題,上傳到服務(wù)器運行就有問題,怎么回事?”這些問題讓人無法回答,哪位技術(shù)大牛能回答這些問題?

      要知道你是程序員不是小白用戶。不懂程序的小白用戶看見網(wǎng)站訪問不了,只能反饋給你網(wǎng)站訪問不了。但作為一名程序員,拿這樣的現(xiàn)象去問人,技術(shù)大牛也不知道怎么解答,因為造成網(wǎng)站訪問不了的原因太多了。作為程序員,你是可以提供更多信息的,比如程序的錯誤信息、錯誤碼、是在運行哪行代碼時出錯的,有了這些信息別人解答問題就更容易了。

      我們在學(xué)校時,老師引導(dǎo)我們有問題就問;然而在編程時,有問題馬上問,只看見個別現(xiàn)象就問,反而溝通效率低,自己成長也慢。有問題要先自己找解決方案

      Java 數(shù)據(jù)結(jié)構(gòu)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:標題行重復(fù)什么意思(重復(fù)標題行有什么作用)
      下一篇:解惑Python模塊學(xué)習,該如何著手操作...
      相關(guān)文章
      亚洲综合国产一区二区三区| 亚洲一区无码精品色| 久久久亚洲精品视频| 精品国产日韩亚洲一区| 亚洲AV无码成H人在线观看 | 另类图片亚洲校园小说区| 亚洲人成电影网站色| 亚洲中文字幕无码av永久| 国产亚洲福利在线视频| 亚洲午夜一区二区三区| 亚洲欧美日韩综合久久久久| 亚洲国产精品无码久久98| 日韩国产欧美亚洲v片| 国产成人不卡亚洲精品91| 四虎亚洲国产成人久久精品 | 国产av天堂亚洲国产av天堂 | 亚洲日韩一中文字暮| 亚洲人成无码网站在线观看| 亚洲国产精品成人AV在线| 久久亚洲精品11p| 在线a亚洲v天堂网2018| 亚洲色偷偷狠狠综合网| 亚洲人成网亚洲欧洲无码久久| 亚洲精品无码精品mV在线观看| 亚洲国产精品福利片在线观看 | 亚洲AV无码AV日韩AV网站| 亚洲第一se情网站| 亚洲av午夜成人片精品电影| 亚洲欧洲中文日韩久久AV乱码| 国产精品亚洲αv天堂无码| 国精无码欧精品亚洲一区| 亚洲精品视频在线| 亚洲国产精品成人精品小说| 亚洲综合av一区二区三区| 亚洲av无码成人精品国产| 亚洲欧洲中文日韩久久AV乱码| 精品国产_亚洲人成在线高清| 亚洲一本综合久久| 亚洲香蕉久久一区二区| 亚洲aⅴ无码专区在线观看春色| 亚洲精品国产综合久久一线|