[轉載] Java中的變量和常量

參考鏈接: Java中的變量范圍

在程序中存在大量的數據來代表程序的狀態,其中有些數據在程序的運行過程中值會發生改變,有些數據在程序運行過程中值不能發生改變,這些數據在程序中分別被叫做變量和常量。?

在實際的程序中,可以根據數據在程序運行中是否發生改變,來選擇應該是使用變量代表還是常量代表。?

??

變量?

在程序執行的過程中,在某個范圍內其值可以發生改變的量就是變量。?

將內存中的某個內存塊保留下來以供程序使用,里面的內容是可變的。?

變量的作用域:?

作用域從變量定義的位置開始,到該變量所在的那對大括號結束。?

或者可以說變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。?

變量的生命周期:?

變量從定義的位置開始就在內存中活了;?

變量到達它所在的作用域的時候就在內存中消失了。?

什么時候定義變量??

只要是數據不確定的時候,就定義變量。?

變量空間的開辟需要什么要素??

1)這個空間要存儲什么數據?數據類型。?

2)這個空間叫什么名字?變量名稱。?

3)這個空間的第一次的數據是什么? 變量的初始化值。?

??

聲明變量?

由于Java語言是一種強類型的語言,所以變量在使用以前必須首先聲明,在程序中聲明變量的語法格式如下:?

? ? ? ? ? ?數據類型 變量名稱;?

數據類型和變量名稱之間使用空格進行間隔(空格的個數不限,但是至少需要一個),聲明語句使用“;”作為結束。也可以在聲明變量的同時,設定該變量的值,語法格式如下:?

? ? ? ? ? ?數據類型 變量名稱 = 值;?

?在程序中,變量的值代表程序的狀態,在程序中可以通過變量名稱來引用變量中存儲的值,也可以為變量重新賦值。?

int a = 10; // 聲明并初始化a

a = 20;? // 重新給變量a賦值?

當需要聲明多個同類型的變量時,我們還可以使用如下格式:?

? ? ? ? ? 數據類型 變量名稱1 = 值1,變量名稱2 = 值2,……變量名稱n = 值n;?

int a, b, c; // 聲明三個int型整數:a、 b、c

int d = 3, e = 4, f = 5; // 聲明三個整數并賦予初值?

在實際開發過程中,需要聲明什么類型的變量,需要聲明多少個變量,需要為變量賦什么數值,都需要根據程序邏輯決定,這里列舉的只是表達的格式而已。?

??

注意:?

1)相同的作用域中不能定義兩個同名變量。?

2)java 中的每個變量必須先聲明,后使用。?

3)在一行上可以定義多個變量,但建議只定義一個變量。?

4)變量一次只能賦一個值,但可以修改多次?

??

常量?

常量代表程序執行過程中不能改變的數據。?

我們可以把它理解成一種特殊的變量,只不過它的值被設定后,在程序運行過程中不允許被改變。?

常量在程序運行過程中主要作用:?

1)代表常數,便于程序的修改(例如:圓周率的值)?

2)增強程序的可讀性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數值分別是1、2、3和4)?

3)提高代碼的可維護性。例如,在項目開發時需要指定用戶的性別,此時可以定義一個常量 SEX,賦值為 "男",在需要指定用戶性別的地方直接調用此常量即可,避免了由于用戶的不規范賦值導致程序出錯的情況。?

??

常量分類:字面值常量 和 自定義常量?

字面值常量?

之所以稱之為字面值是因為只能用它的值來稱呼它,稱之為常量是因為它的值不能修改。?

只有內置類型存在字面值,沒有類類型的字面值。因此,也沒有任何標準庫類型的字面值。?

對于字面值常量我們分為以下五種:?

類別示例說明整型10、12主要是有進制的區別,默認是十進制,當表示二進制時用0b10(表示二進制用0b或0B愛投)、010(表示八進制用0開頭)、0x10(表示十六進制用0x或0X開頭)浮點型3.1415浮點字面值常量當沒有任何的標志時會存儲成double類型,當要使用float類型時,可在后面加上f或F,例如3.14f 表示該數為float類型字符型‘c’、’1’用兩個單引號括起來,一個字符占2byte。如’A’、’b’ 、’\t’字符串型“changliang”該類型不是基本數據類型,在Java中被稱為引用數據類型布爾型true、false只有這兩個值

注意:?

1)默認情況下,整形字面值是int類型,如果要表示一個long類型的常量,就要在整數的后面加上l或L。例如10L,342L。?

2)byte和short沒有常量形式。他們都是接收一個不超過他們取值范圍的int常量(隱式轉換);如果這個int常量超過了他們的取值范圍必須使用強制轉換。?

3)從JDK7開始,可以在整數或浮點數字面值中嵌入一個或多個下劃線,以方便閱讀。例如:129_51_782。?

轉義字符?

Java中允許使用轉義字符‘\’來將其后的字符轉變為特殊字符型常量。?

?轉義字符? 描述? 轉義字符? 描述? 轉義字符? 描述? \f? 換頁? \\? 反斜線? \b? 倒退一格? \’? 單引號? \r? 歸位? \n? 換行? \”? 雙引號? \t? 制表符Tab? ? ? ?

public class Test {

? ? public static void main(String[] args) {

? ? ? ? char ch1 = '\"'; // 定義轉義字符

? ? ? ? char ch2 = '\\'; // 定義轉義字符

? ? ? ? System.out.println("ch1 = " + ch1); // 打印輸出

? ? ? ? System.out.println("ch2 = " + ch2); // 打印輸出

? ? ? ? System.out.println("\"Hello World|\"") ; // 直接輸出轉義字符

? ? }

}

?

執行結果:?

ch1 = "

ch2 = \

"Hello World|"

?

??

自定義常量?

常量的語法格式和變量類似,只需要在變量的語法格式前面添加個關鍵字 final 即可。在Java編碼規范中,要求常量名必須大寫。常量的語法格式如下:?

? ? ? ? ?final 數據類型 常量名稱 = 值;?

? ? ? ? ?final 數據類型 常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n;?

final double PI = 3.14; // 聲明單個double類型的常量并賦值

final char SEX_MALE='男',SEX_FEMALE=‘女’; // 聲明兩個char類型的常量并分別賦值?

在Java語法中,常量也可以首先聲明,然后再進行賦值,但是只能賦值一次,語法格式如下:?

? ? ? ? ?final 數據類型 常量名稱;?

? ? ? ? ?常量名稱 = 值;?

final double PI;? // 先聲明常量

PI = 3.14; // 給已聲明的常量賦值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4.3/4.4 磁盤分區

2019獨角獸企業重金招聘Python工程師標準>>> 添加虛擬磁盤 第一步,選擇虛擬機中的“設置” 第二步,選擇“添加硬盤” 第三步,選擇_SCSI (推薦) # 保持默認 第四步,選擇“創建新的虛擬磁盤…

[轉載] java(三)對象的序列化與static、final關鍵字

參考鏈接: Java中的final最終變量 java對象的序列化 Java序列化是指把Java對象轉換為字節序列的過程;而Java反序列化是指把字節序列恢復為Java對象的過程。java中存有Cloneable接口,實現此接口的類都具有被拷貝能力,比new一個對象…

RoboMaster 2017:機器人版的「王者農藥」,工程師們的競技時代

8月6日晚,第十六屆全國大學生機器人大賽 RoboMaster 2017機甲大師賽在華潤深圳灣體育中心“春繭”體育館舉行,關于這個比賽的盛況已經無需贅述,去年雷鋒網參加上屆比賽時,報道的是「像看了一場演唱會」,如果用演唱會來…

[轉載] 詳解Java中的泛型

參考鏈接: Java中具有泛型的有界類型 1、什么是泛型 泛型,即“參數化類型”。一提到參數,最熟悉的就是定義方法時有形參,然后調用此方法時傳遞實參。那么參數化類型怎么理解呢?顧名思義,就是將類型由原來…

【初學者必讀】:前端工程師的知識體系

下圖是前端工程師圖解: 前端開發的核心是HTML CSS JavaScript。本質上它們構成一個MVC框架,即HTML作為信息模型(Model),CSS控制樣式(View),JavaScript負責調度數據和實現某種展現邏…

[轉載] Java面試題大全(2020版)

參考鏈接: Java中的循環 發現網上很多Java面試題都沒有答案,所以花了很長時間搜集整理出來了這套Java面試題大全,希望對大家有幫助哈~ 本套Java面試題大全,全的不能再全,哈哈~ 博主已將以下這些面試題整理成了一個…

使用Prometheus監控Cloudflare的全球網絡

Matt Bostock在SRECON 2017歐洲大會的演講中,介紹了如何使用Prometheus實現對CloudFlare分布于全球的架構和網絡的監控。Prometheus是一種基于度量進行監控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服務提供商。\\基…

[轉載] Java-forEach增強for循環是值傳遞規則詳解

參考鏈接: Java中的for-each循環 1. 引入 正如Java語法意義,變量的傳遞只有值傳遞,雖然變量分為引用變量和基本類型變量,前者更像C中的地址概念。 在學習Lambda表達式的時候,遇到了試圖在增強for循環中對原鏈表元素重…

開始吧

2019獨角獸企業重金招聘Python工程師標準>>> 寫C三年有余,在技術方面也算小有所成。準備在這里分享一些C進階、Python、Golang技術文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 轉載于:https://my.oschina.net/u…

[轉載] 常用應屆生Java開發筆試面試題(更新中)

參考鏈接: Java中的循環的重要事項 Java開發面試題 Java基礎篇Java8大基本數據類型Java的三大特性面向對象如果讓你推銷一款Java產品,你會怎么推銷呢?(java的特點)JVM與字節碼JDK與JREStringBuilder和StringBuffer的區…

java/javascript 時間操作工具類

一、java 時間操作工具類 import org.springframework.util.StringUtils;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List;/*** 時間操作工具類** author zwq**/ public …

[轉載] java語言程序設計-基礎篇

參考鏈接: Java中的決策制定(if,if-else,switch,break,continue,jump) 第1章,計算機、程序和Java概述 包括【每個java初學者都應該搞懂的問題】 http://blog.csdn.net/haobo920/article/detai…

Exchange server 2013(十四)WSUS部署及組策略設置(2)

我們繼續上一節未完的博客,繼續我們的WSUS設置。[上一章節標題:Exchange server 2013(十四)WSUS部署及組策略設置(1) 網址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先單擊自動審批,來修改審批規則,也就是說當wsus偵測到新的更…

[轉載] Python中的switch語句的替代品

參考鏈接: Java中的switch語句 Python 中沒有 switch語句。 一般用if-else 語句可以替代switch語句,今天學習了使用字典的映射來代替switch語句。Mark一下 day 8; def get_sunday(): return sunday def get_monday(): return monday def get_tues…

“□” 表情無法在 Android 設備顯示? 快試試 EmojiCompact 表情兼容庫

有了支持庫 v26 下的 Compact 庫,基于 API 19 及更高版本開發的應用就能獲得 emoji 的向下兼容,再也不會看到顯示失敗的 “豆腐塊” 啦。如要使用 EmojiCompact,需要在應用啟動時通過下載或者打包字體來初始化庫。通過集成小插件,…

[轉載] jstl獲取Parameter參數及switch使用

參考鏈接&#xff1a; Java中的字符串使用switch <% taglib uri"/WEB-INF/tld/c.tld" prefix"c" %> param 獲取 Parameter參數 <c:choose> <c:when test"${empty param.name}"> Please enter your name. …

syslinux 制作多系統啟動U盤

syslinux 制作多系統啟動U盤標簽&#xff1a;u盤使用 syslinux 制作多系統啟動U盤 syslinux 能加載虛擬內存盤&#xff0c;能引導各種鏡像文件&#xff0c;適合用于制作多系統啟動U盤&#xff0c; 但是我按照網上說的步驟&#xff0c;總是不能制作成功&#xff1a; 1. 格式化…

[轉載] JAVA基礎----java中E,T,?的區別?

batch_size 1 layout "NHWC" target tvm.target.Target("cuda") dtype "float32" log_file "%s-%s-B%d.json" % (network, layout, batch_size)

用MATLAB結合四種方法搜尋羅馬尼亞度假問題

選修了cs的AI課&#xff0c;開始有點不適應&#xff0c;只能用matlab硬著頭皮上了&#xff0c;不過matlab代碼全網僅此一份&#xff0c;倒有點小自豪。 一、練習題目 分別用寬度優先、深度優先、貪婪算法和 A*算法求解“羅馬利亞度假問題”。具體地圖我這里不給出了&#xff0c…

[轉載] Java中文與ASCII碼的轉換

參考鏈接&#xff1a; 擴展Java中的原始轉換 今天在研究Java中編碼的時候&#xff0c;看到了Java中ascii碼的強大。寫了一個CoderUtils.java&#xff0c;以后會擴展它。 package com.xingxd.study.test; import java.io.File; import java.io.FileWriter; import java.io.I…