Java數(shù)據(jù)類型變量與運(yùn)算符
數(shù)據(jù)類型的概述
分類
- 基本數(shù)據(jù)類型:byte/float/double/int/char/boolean/long/short
- 引用數(shù)據(jù)類型
堆膏执、棧、常量池骑素、方法區(qū)
數(shù)據(jù)都存在內(nèi)存中,內(nèi)存又分為如下:
1.堆:heap
* 運(yùn)行時(shí)數(shù)據(jù)區(qū)
* 運(yùn)行時(shí)動(dòng)態(tài)分配內(nèi)存
* 由系統(tǒng)垃圾回收自動(dòng)回收垃圾
* 存取數(shù)據(jù)較慢
2.棧:stack
* 存取數(shù)據(jù)較快
* 數(shù)據(jù)可以共享
* 數(shù)據(jù)大小和生命周期必須固定速客,不靈活
3.方法區(qū):method area
* 用來(lái)存儲(chǔ)類型信息
4.常量池:
* 用來(lái)存儲(chǔ)常量
String a="Hello"
放在常量池骏全。
String a = new String("Hello")
放在堆,引用放在棧非凌。
在函數(shù)(方法)中定義的基本類型變量存儲(chǔ)在 棧 中
引用類型實(shí)例的引用(reference)也存儲(chǔ)在 棧 中
引用類型實(shí)例的成員變量金抡,存儲(chǔ)在 堆 中
基本數(shù)據(jù)類型
基本數(shù)據(jù)類型的位數(shù)大小
轉(zhuǎn)換
- 范圍小->范圍大的(隱式轉(zhuǎn)換)
- 范圍大->范圍小的(顯示轉(zhuǎn)換瀑焦、強(qiáng)轉(zhuǎn),精度丟失)
- 數(shù)值型和boolean型不能轉(zhuǎn)換
賦值
使用=
賦值梗肝,注意不要越界。比如byte b1=129;
超過(guò)127铺董,就會(huì)報(bào)錯(cuò)巫击。
- byte b1=127;
- float f1=1.0f;
- double d1=1.0d;
- boolean isok=false;
- char='a';
- int i1=1;
☆ 思考以下結(jié)果
-
段1
double d1=1.0d; float d2=1.0f; System.out.println("d1==d2 "+(d1==d2)); System.out.println("d1!=d2 "+(d1!=d2)); System.out.println("d1>d2 "+(d1>d2)); System.out.println("d1<d2 "+(d1<d2));
-
段2
double d3=0.3d; float d4=0.3f; System.out.println("d3==d4 "+(d3==d4)); System.out.println("d3!=d4 "+(d3!=d4)); System.out.println("d3>d4 "+(d3>d4)); System.out.println("d3<d4 "+(d3<d4));
標(biāo)志符
變量禀晓、函數(shù)、數(shù)組坝锰、對(duì)象粹懒、類和接口都需要命名,這些名稱就成為標(biāo)識(shí)符顷级。
標(biāo)識(shí)符命名規(guī)則
- 只能由英文字母凫乖、數(shù)字、下劃線“_”和“$”符號(hào)組成弓颈;
- 必須以英文字母帽芽、“_”或“$”開(kāi)頭,即不能以數(shù)字開(kāi)頭翔冀;
- 除“_”和“$”以外导街,不能包含其它任何特殊字符;
- 不能與關(guān)鍵字沖突纤子;
- 嚴(yán)格區(qū)分大小寫(xiě)搬瑰。
關(guān)鍵字:電腦語(yǔ)言里事先定義的,有特別意義的標(biāo)識(shí)符控硼。比如:main
變量
定義
變量:變量就是申請(qǐng)內(nèi)存來(lái)存儲(chǔ)值泽论。變量存在棧中。
作用范圍
變量是有作用范圍的卡乾。
- 題目:有1佩厚,2,3说订,4四個(gè)數(shù)字抄瓦,能組成多少個(gè)不相同且無(wú)重復(fù)的三位數(shù)?
public class ScopeVariable
{
public static void main(String[] args)
{
int count = 0;
for (int i = 1; i <= 4; i++) //在需要使用變量時(shí)聲明
{
for (int j = 1; j <= 4; j++)
{
for (int k = 1; k <= 4; k++)
{
if (i != j && i != k && j!= k)
{
int temp = i * 100 + j * 10 + k;
System.out.print(temp + "\t");
count++;
}
}
}
} /*思考:在此處可以訪問(wèn)到變量k嗎陶冷?*/
System.out.println("\n有:" + count + "個(gè)符合要求的數(shù)");
}
}
輸出語(yǔ)句
- 換行:System.out.println
- 不換行:System.out.print
運(yùn)算符和表達(dá)式
算術(shù)運(yùn)算符
- -:負(fù)數(shù)
- ++:自增
- --:自減
- +:加法
- -:減法
- *:乘法
- /:除法
- %:取模(余數(shù))
關(guān)系運(yùn)算符
- =:等于
- !=:不等于
- >:大于
- <: 小于
- >=:大于等于
- <=:小于等于
邏輯運(yùn)算符
- !:邏輯非
- &:與
- |:或
- &&:短路與
- ||:短路或
短路不短路的區(qū)別:短路就是左邊如果成立了就不再校驗(yàn)右邊
條件運(yùn)算符
-
( ? : )
public class HelloWorld{ public static void main(String[] args) { int score=68; String mark =(68>60)? "及格":"不及格"; System.out.println("考試成績(jī)?nèi)绾危?+mark); } }
賦值運(yùn)算符
- =:賦值
- +=:相加并賦值
- -=:相減并賦值
- *=:相乘并賦值
- /=:相處并賦值
- %=:取模并賦值(a=a%b)