c++变量重新赋值_Java基础二:一文讲透变量与数据类型
什么是變量:
java是強(qiáng)類型語(yǔ)言,所有的變量都必須先聲明才能使用,聲明變量時(shí)必須指定變量存儲(chǔ)信息的類型。變量的聲明一般使用名值對(duì)的方式,包含變量名和變量值,通過(guò)變量名可以引用變量值,也可以修改變量名的值。
首先,聲明一個(gè)變量的基本格式是:
數(shù)據(jù)類型 變量名;
int type;boolean flag;
float score;
上面提到變量的聲明一般使用名值對(duì)的格式,具體格式如下:
數(shù)據(jù)類型 變量名 = 數(shù)值;
int box=100;int a=300;
boolean f=true;
可以在同一行同時(shí)聲明多個(gè)同一類型的變量,這樣可以簡(jiǎn)化我們的代碼,提高可閱讀性,具體格式如下:
int a,b,c;上面例子中,同時(shí)聲明了三個(gè)整型變量(a,b,c),變量和變量之間使用英文逗號(hào)(,)隔開(kāi)。當(dāng)然我們也是可以想上面介紹的,為變量賦予初始值。如下面這個(gè)例子:
//變量a和變量c分別賦予了初始值。int a=100,b,c=20;
變量聲明后,我們就可以通過(guò)變量名引用變量值或者修改變量名所存儲(chǔ)的值了。在同一作用域下,變量只能聲明一次,但是可以多次的賦值,不斷根據(jù)程序的需要修改變量原來(lái)存儲(chǔ)的變量值。具體格式如下:
變量名 = 新的數(shù)值;
引用該變量名的值就更簡(jiǎn)單了,直接使用變量名即可。如下面這個(gè)例子:
//聲明變量a,并同時(shí)賦初始化值是100;int a=100;
//引用變量a,這時(shí)候輸出的是變量所存儲(chǔ)的值,應(yīng)該是100
System.out.println(a);
//為賦值200
a=200;
//再次引用變量a,輸出的也是變量所存儲(chǔ)的值,但這時(shí)候應(yīng)該是200了
System.out.println(a);
三、變量的命名規(guī)范
Java語(yǔ)言中,變量命名要符合一定規(guī)則。標(biāo)識(shí)符是賦予變量、類或方法的名稱。標(biāo)識(shí)符可從一個(gè)字母、下劃線(_)或美元符號(hào)($)開(kāi)始,隨后也可跟數(shù)字。標(biāo)識(shí)符是大小寫(xiě)區(qū)別對(duì)待的并且未規(guī)定最大長(zhǎng)度。
有效標(biāo)識(shí)符如下:
identifier , userName ,User_name , _sys_varl ,$change
無(wú)效標(biāo)識(shí)符如下:
123abc , abc¥5 ,abc ert , add34)
java的變量命名還有很多約定俗成的習(xí)慣,雖然你不按照這樣的命名習(xí)慣也不會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,不過(guò)為了提高程序的可讀性,我們建議你還是使用下面的這幾個(gè)習(xí)慣。
基本數(shù)據(jù)類型基本數(shù)據(jù)類型:
基本數(shù)據(jù)類型是CPU可以直接進(jìn)行運(yùn)算的類型。Java定義了以下幾種基本數(shù)據(jù)類型:
整數(shù)類型:byte,short,int,long
浮點(diǎn)數(shù)類型:float,double
字符類型:char
布爾類型:boolean
Java定義的這些基本數(shù)據(jù)類型有什么區(qū)別呢?要了解這些區(qū)別,我們就必須簡(jiǎn)單了解一下計(jì)算機(jī)內(nèi)存的基本結(jié)構(gòu)。
計(jì)算機(jī)內(nèi)存的最小存儲(chǔ)單元是字節(jié)(byte),一個(gè)字節(jié)就是一個(gè)8位二進(jìn)制數(shù),即8個(gè)bit。它的二進(jìn)制表示范圍從00000000~11111111,換算成十進(jìn)制是0~255,換算成十六進(jìn)制是00~ff。
內(nèi)存單元從0開(kāi)始編號(hào),稱為內(nèi)存地址。每個(gè)內(nèi)存單元可以看作一間房間,內(nèi)存地址就是門(mén)牌號(hào)。
0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ?...┌───┬───┬───┬───┬───┬───┬───┐
│ ? │ ? │ ? │ ? │ ? │ ? │ ? │...
└───┴───┴───┴───┴───┴───┴───┘
一個(gè)字節(jié)是1byte,1024字節(jié)是1K,1024K是1M,1024M是1G,1024G是1T。一個(gè)擁有4T內(nèi)存的計(jì)算機(jī)的字節(jié)數(shù)量就是:
4T = 4 x 1024G? = 4 x 1024 x 1024M
? = 4 x 1024 x 1024 x 1024K
? = 4 x 1024 x 1024 x 1024 x 1024
? = 4398046511104
不同的數(shù)據(jù)類型占用的字節(jié)數(shù)不一樣。我們看一下Java基本數(shù)據(jù)類型占用的字節(jié)數(shù):
? ? ? ┌───┐?byte │ ? │
? ? ? └───┘
? ? ? ┌───┬───┐
short │ ? │ ? │
? ? ? └───┴───┘
? ? ? ┌───┬───┬───┬───┐
? int │ ? │ ? │ ? │ ? │
? ? ? └───┴───┴───┴───┘
? ? ? ┌───┬───┬───┬───┬───┬───┬───┬───┐
?long │ ? │ ? │ ? │ ? │ ? │ ? │ ? │ ? │
? ? ? └───┴───┴───┴───┴───┴───┴───┴───┘
? ? ? ┌───┬───┬───┬───┐
float │ ? │ ? │ ? │ ? │
? ? ? └───┴───┴───┴───┘
? ? ? ┌───┬───┬───┬───┬───┬───┬───┬───┐
double │ ? │ ? │ ? │ ? │ ? │ ? │ ? │ ? │
? ? ? └───┴───┴───┴───┴───┴───┴───┴───┘
? ? ? ┌───┬───┐
?char │ ? │ ? │
? ? ? └───┴───┘
byte恰好就是一個(gè)字節(jié),而long和double需要8個(gè)字節(jié)。
整型
對(duì)于整型類型,Java只定義了帶符號(hào)的整型,因此,最高位的bit表示符號(hào)位(0表示正數(shù),1表示負(fù)數(shù))。各種整型能表示的最大范圍如下:
byte:-128 ~ 127
short: -32768 ~ 32767
int: -2147483648 ~ 2147483647
long: -9223372036854775808 ~ 9223372036854775807
我們來(lái)看定義整型的例子:
15=0xf=0b1111。浮點(diǎn)型
浮點(diǎn)類型的數(shù)就是小數(shù),因?yàn)樾?shù)用科學(xué)計(jì)數(shù)法表示的時(shí)候,小數(shù)點(diǎn)是可以“浮動(dòng)”的,如1234.5可以表示成12.345x102,也可以表示成1.2345x103,所以稱為浮點(diǎn)數(shù)。
下面是定義浮點(diǎn)數(shù)的例子:
float f1 = float f2 = double d = double d2 = -double d3 =對(duì)于float類型,需要加上f后綴。
浮點(diǎn)數(shù)可表示的范圍非常大,float類型可最大表示3.4x1038,而double類型可最大表示1.79x10308。
布爾類型
布爾類型boolean只有true和false兩個(gè)值,布爾類型總是關(guān)系運(yùn)算的計(jì)算結(jié)果:
boolean b1 = boolean b2 = boolean isGreater = int age = boolean isAdult = age >=Java語(yǔ)言對(duì)布爾類型的存儲(chǔ)并沒(méi)有做規(guī)定,因?yàn)槔碚撋洗鎯?chǔ)布爾類型只需要1 bit,但是通常JVM內(nèi)部會(huì)把boolean表示為4字節(jié)整數(shù)。
字符類型
字符類型char表示一個(gè)字符。Java的char類型除了可表示標(biāo)準(zhǔn)的ASCII外,還可以表示一個(gè)Unicode字符:
注意char類型使用單引號(hào)',且僅有一個(gè)字符,要和雙引號(hào)"的字符串類型區(qū)分開(kāi)。
引用類型
除了上述基本類型的變量,剩下的都是引用類型。例如,引用類型最常用的就是String字符串:
String s = "hello";引用類型的變量類似于C語(yǔ)言的指針,它內(nèi)部存儲(chǔ)一個(gè)“地址”,指向某個(gè)對(duì)象在內(nèi)存的位置,后續(xù)我們介紹類的概念時(shí)會(huì)詳細(xì)討論。
常量
定義變量的時(shí)候,如果加上final修飾符,這個(gè)變量就變成了常量:
final double r = double area = PI * r * r;常量在定義時(shí)進(jìn)行初始化后就不可再次賦值,再次賦值會(huì)導(dǎo)致編譯錯(cuò)誤。
常量的作用是用有意義的變量名來(lái)避免魔術(shù)數(shù)字(Magic number),例如,不要在代碼中到處寫(xiě)3.14,而是定義一個(gè)常量。如果將來(lái)需要提高計(jì)算精度,我們只需要在常量的定義處修改,例如,改成3.1416,而不必在所有地方替換3.14。
根據(jù)習(xí)慣,常量名通常全部大寫(xiě)。
var關(guān)鍵字
有些時(shí)候,類型的名字太長(zhǎng),寫(xiě)起來(lái)比較麻煩。例如:
new StringBuilder();這個(gè)時(shí)候,如果想省略變量類型,可以使用var關(guān)鍵字:
var sb =編譯器會(huì)根據(jù)賦值語(yǔ)句自動(dòng)推斷出變量sb的類型是StringBuilder。對(duì)編譯器來(lái)說(shuō),語(yǔ)句:
var sb =實(shí)際上會(huì)自動(dòng)變成:
new StringBuilder();因此,使用var定義變量,僅僅是少寫(xiě)了變量類型而已。
變量的作用范圍
在Java中,多行語(yǔ)句用{ }括起來(lái)。很多控制語(yǔ)句,例如條件判斷和循環(huán),都以{ }作為它們自身的范圍,例如:
只要正確地嵌套這些{ },編譯器就能識(shí)別出語(yǔ)句塊的開(kāi)始和結(jié)束。而在語(yǔ)句塊中定義的變量,它有一個(gè)作用域,就是從定義處開(kāi)始,到語(yǔ)句塊結(jié)束。超出了作用域引用這些變量,編譯器會(huì)報(bào)錯(cuò)。舉個(gè)例子:
定義變量時(shí),要遵循作用域最小化原則,盡量將變量定義在盡可能小的作用域,并且,不要重復(fù)使用變量名。
小結(jié):Java提供了兩種變量類型:基本類型和引用類型
基本類型包括整型,浮點(diǎn)型,布爾型,字符型。
變量可重新賦值,等號(hào)是賦值語(yǔ)句,不是數(shù)學(xué)意義的等號(hào)。
常量在初始化后不可重新賦值,使用常量便于理解程序意圖。
掃碼關(guān)注我們更多精彩等待你發(fā)現(xiàn) 與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的c++变量重新赋值_Java基础二:一文讲透变量与数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: antd option宽度自适应_网站自
- 下一篇: linux启动docker_10分钟快速