java變量與運算符

Java變量

1、java中的變量

?? 1.變量先定義,后使用。

?? 2.定義:①聲明,②賦值

?? 3.定義的三要素:數(shù)據(jù)類型 變量名 初始化值

2、變量有以下兩種定義方式:

方式一:數(shù)據(jù)類型 變量名 //聲明

變量名 = 初始化值//賦值

int myInt1;// 聲明

System.out.println(myInt1);//使用

myInt1 = 2;// 賦值

System.out.println(myInt1);//

使用int myInt2, myInt3;// 聲明:

一次聲明多個myInt2 = 3;// 賦值myInt3 = 4;// 賦值

System.out.println(myInt2);//

使用int myInt4, myInt5;// 聲明

myInt4 = myInt5 = 7;// 連續(xù)賦值,使用不多

方式二:數(shù)據(jù)類型 變量名 = 初始化值;

int myInt6 = 9;int myInt7 = 9, myInt8 = 10;// 一次定義多個

3、變量的類型:基本數(shù)據(jù)類型(8種byte short int long float double char boolean)、引用數(shù)據(jù)類型(String)

1、整數(shù)類型:byte(1字節(jié)) short(2字節(jié)) int(4字節(jié)) long(8字節(jié))

byte b = 12;

short s = 12;

int i = 12;

long l = 12l;//long類型變量,值得末尾加L或l

2、浮點類型(帶小數(shù)):float單精度(4) double雙精度(8)

float f = 12.3f;//聲明float類型,末尾要加F或f

?double d = 12.3;

3、字符型:char(2),

有3中表現(xiàn)形式①、用''單引號括起來的單個字符char c = 'a';c = '中';

②轉(zhuǎn)義字符\c = '\n'; //轉(zhuǎn)義字符,/把n轉(zhuǎn)義為換行c = '\t';//代表制表符Tabc = '\"';

③直接使用 Unicode 值來表示字符型常量c = '\u4e2d';//Unicode字符做運算

char c2 = 'A';//65

System.out.println(c2 + 1);

c2 = 'a';//97

System.out.println(c2 + 1);

引用數(shù)據(jù)類型:String,可以取值null

String str = "中國";

str = null;

基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別:基本數(shù)據(jù)類型 內(nèi)存中存儲的是值

引用數(shù)據(jù)類型 內(nèi)存中存儲的是地址,此地址指向?qū)ο螅?/p>

4、類型轉(zhuǎn)換

1)基本數(shù)據(jù)類型之間的轉(zhuǎn)換:boolean不可以轉(zhuǎn)換為其它

基本數(shù)據(jù)類型容量從小到大(參考圖)char-->int-->long-->float-->doublebyte-->short-->

①自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換)定義:容量小的數(shù)據(jù)類型自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型

②強制類型轉(zhuǎn)換定義:自動類型轉(zhuǎn)換的逆過程,將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型。使用時要加上強制轉(zhuǎn)換符()

2)字符串與基本數(shù)據(jù)類型之間的轉(zhuǎn)換

①基本數(shù)據(jù)類型==>字符串:通過連接運算符+,基本類型的值將自動轉(zhuǎn)化為字符串類型

②字符串==>基本數(shù)據(jù)類型:通常,字符串不能直接轉(zhuǎn)換為基本類型,但通過基本類型對應的包裝類則可以實現(xiàn)把字符串轉(zhuǎn)換成基本類型如:

?String a = “43”; int i = Integer.parseInt(a);

容量從小到大char-->int-->long-->float-->doublebyte-->short-->

?*///自動類型轉(zhuǎn)換:容量小的轉(zhuǎn)換為容量大的數(shù)據(jù)類型//

1)賦值運算int i = 2;byte b = 1;i = b;System.out.println(i);short s = 3;i = s;System.out.println(i);char c = 'a';

i = c;

System.out.println(i);//

2)算術(shù)運算:有多種類型的數(shù)據(jù)混合運算時,系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的數(shù)據(jù)類型,然后再進行計算。

?int i2 = 1;

byte b2 = 2;

i2 = b2 + i2;

char c2 = 'b';

i2 = c2 + i2;//注意:byte、short、char之間不會相互轉(zhuǎn)換,他們?nèi)咴谟嬎銜r首先轉(zhuǎn)換為int類型

??? i2 = b2 + c2;//強制類型轉(zhuǎn)換:容量大的轉(zhuǎn)換為容量小的

long l = 12345L;

int i3 = (int)l;

byte b3 = (byte)i3;

System.out.println(Byte.MAX_VALUE);

System.out.println(Byte.MIN_VALUE);

System.out.println(b3);//注意:可能造成精度降低或溢出//-------------------------//

基本數(shù)據(jù)類型===>字符串

int i4 = 3;

String str = i4 + "";

字符串===>基本數(shù)據(jù)類型

str = "2";i4 = Integer.valueOf(str);

System.out.println(i4);}

5、運算符1)算數(shù)運算符:+(正號、加、字符串相加)-(負號、減)*(乘)/(除)%(取模)++ --

//除/int i = 12;

int j = 5;

int k = i / j;

System.out.println(k);//整數(shù)之間做除法時,只保留整數(shù)部分而舍棄小數(shù)部分

double d = i / j; //i / j 結(jié)果為2 int,把int賦值給double,自動類型轉(zhuǎn)換System.out.println(d);//2.0

d = (double)i / j; //(double)i強制類型轉(zhuǎn)換為double,double和int做運算System.out.println(d);//2.4

d = i / 5.0;System.out.println(d);//2.4

//取模%(取余數(shù))

k = 13 % 5;

System.out.println(k);

//++

i = 1;

i++;//i = i + 1;

System.out.println(i);

++i;//i = i + 1;

System.out.println(i);

i = 1;

k = i++;//k=i;i=i+1;

System.out.println(k);

i = 1;

k = ++i;//i=i+1;k=i;

System.out.println(k);

//--

i = 2;

i--;

System.out.println(i);

i = 2;

--i;

System.out.println(i);

i = 2;

k = i--;//k=i;i=i-1;

System.out.println(k);//2

i = 2;

k = --i;//i=i-1;k=i;

System.out.println(k);//1

//字符串相加+

String str = "hel" + "lo";

System.out.println(str);

2)賦值運算符

=:當“=”兩側(cè)數(shù)據(jù)類型不一致時,可以使用自動類型轉(zhuǎn)換或使用強制類型轉(zhuǎn)換原則進行處理。

支持連續(xù)賦值。例如int i; int j; i=j=1;

擴展賦值運算符: +=, -=, *=, /=, %=

public class TestAssign

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

int i,j;

i = j = 1;

int a = 10;

a?= a + 3;

System.out.println(a);

a = 10;

a += 3;

System.out.println(a);

i = 13;

i = i % 5;

i = 13;

i %= 5;

boolean b = false;

if(b = true) { //b = true;if(b)

System.out.println("b是true");

} else {

System.out.println("b是false");}}}

3)比較運算符(關(guān)系運算符)

運算符????? ? 運算? ????? 范例??????? 結(jié)果

==?????????? 相等于??????? 4==3????? false

!=?????????????不等于????? 4!=3????? ?true

<??????????????? 小于??????? 4<3?????????false

>????????????????? 大于????? 4>3??????? ? true

<=????????????? 小于等于?? 4<=3(4<3或4==3) false

?>=??????????? 大于等于??? 4>=3(4>3或4==3) true

instanceof檢查是否是類的對象"Hello" instanceof? String true

說明:比較運算符的結(jié)果都是boolean型;比較運算符“==”不能誤寫成賦值運算符“=”

public class TestCompare {

public static void main(String[] args) {

boolean b;b = (4 == 3);

System.out.println(b);

System.out.println(4 == 3);

b = (4 != 3);

b = 4 < 3;

?b = 4 > 3;

?b = 4 <= 3;

?? b = 4 >= 3;

System.out.println(b);

b = "hello" instanceof String;

System.out.println(b);

int i = 13;

//判斷i是否是偶數(shù)

b = (i % 2) == 0;b = (i % 2) != 1;

//判斷i是否是奇數(shù)

b = (i % 2) != 0;b = (i % 2) == 1;

//判斷i是否能被3整除

b = (i % 3) == 0;/

/判斷i是否能被7整除

b = (i % 7) == 0;

int s = 10;int t = 5;

//判斷s是否能被t整除

b = (s % t) == 0;

4)邏輯運算符

&邏輯與????? |邏輯或???????? !邏輯非

&&短路與?????? ||短路或??? ? ^邏輯異或

說明:邏輯運算符用于連接布爾表達式,結(jié)果都是boolean型,也就是要么是true,要么是false

運算結(jié)果:

a???? ?? b??????? ? ? a&b???????? ? ? a&&b???????? ?? a|b ????????????? ?? a||b????????? ? !a????????? ? a^b

?true??? true???????? true?????????????? true??????????? true???????????? ? true?????????????false???? ? false

true???? false????? false??????????? ? false?????????? ? true????????????? true???????????? false??????? true

false???? true??????? false?????????????false??????????? true???????????? true???????????? true????????? true

false??????false?????? false??????????? false????????? ? false????????? ? false???????? ? true???????? false

?public class TestLogic {

public static void main(String[] args) {

boolean a = false, b = true;

System.out.println(a && b);//&&、 &結(jié)果相同

System.out.println(a || b);//|| 、|結(jié)果相同

System.out.println(!a);

System.out.println(a^b);

int x = 5;//x> 3) && (x < 6);

System.out.println(result);

System.out.println((x == 3) || (x == 5));//true

?System.out.println((x == 3) && (x == 5));

System.out.println(!(x == 3));

System.out.println(x <= 3);//x<3 || x==3

System.out.println((x == 3) ^ (x == 5));

?//&& &區(qū)別

/* * &&當左邊表達式為false時,右邊表達式不再進行運算

?* &兩邊表達式都要進行運算 *


a = true; b = true;

if((a = false) && (b = false)) {//a=false;if(a&&(b=false))

System.out.println("1:" + a + b);

?} else {

System.out.println("2:" + a + b);

}

if((a = false) & (b = false)) {//a=false;b=false;if(a&b)

System.out.println("1:" + a + b);

?} else {

System.out.println("2:" + a + b); }

//|| |區(qū)別 } }

?5)三元運算符

?public class TestSanYuan {

public static void main(String[] args) {

int x = 20; int y = 21; int max = (x>y)?x:y;

System.out.println(max);

/* 格式:(條件表達式)?表達式1:表達式2;

如果條件表達式結(jié)果為true,運算后的結(jié)果是表達式1;

?如果條件表達式結(jié)果為false,運算后的結(jié)果是表達式2;

?說明: 三元運算符要求必須返回一個結(jié)果,結(jié)果的數(shù)據(jù)類型、表達式1的數(shù)據(jù)類型、表達式2的數(shù)據(jù)類型要相同

*/ // max = (x>y)?"20":y; //三元運算符可改寫為if-else語句,反之不行(if后的代碼塊可有多個語句)

?if(x>y) { max = x;

} else {

max = y;

}

//下面if語句無法改寫為三元運算符

if(x > y) {

max = x;

System.out.println("x是大于y");

} else {

?max = y;

?}

?6)運算符的優(yōu)先級 運算符有不同的優(yōu)先級,所謂優(yōu)先級就是表達式運算中的運算順序。上一行運算符總優(yōu)先于下一行。 只有單目運算符、三元運算符、賦值運算符是從右向左運算的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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