初識(shí)Java基礎(chǔ)之?dāng)?shù)據(jù)類(lèi)型與運(yùn)算符
數(shù)據(jù)類(lèi)型
布爾類(lèi)型
Java當(dāng)中的bool類(lèi)型也是兩個(gè):true(真) 和false(假)
不同于C語(yǔ)言,在C語(yǔ)言中,我們可以將一個(gè)數(shù)字放在bool類(lèi)型中,0為假,非0為真
int fun(){
return 1;
}
bool a = fun();
在Java中,bool類(lèi)型沒(méi)有具體的值,如果按照上述C語(yǔ)言的寫(xiě)法,則會(huì)出錯(cuò),true就是true,false就是false,沒(méi)有其他的值。
System.out.println(true); System.out.println(false);
輸出結(jié)果如下:
true
false
在JVM規(guī)范中,并沒(méi)有規(guī)定bool類(lèi)型大小,但是在有的書(shū)中,bool類(lèi)型是1個(gè)字節(jié)大小,有的書(shū)中是1個(gè)比特位大小。
字符串類(lèi)型String
在Java中,沒(méi)有指針,但是有單獨(dú)的字符串類(lèi)型String
String 也叫引用類(lèi)型
String str = "abcde"; System.out.println(str);
拼接字符'+'
System.out.println("hello"+"world");
執(zhí)行結(jié)果
helloworld
+可以將兩個(gè)字符串拼接
但是如下代碼的執(zhí)行結(jié)果卻不同
System.out.println("hello"+10+20);
System.out.println(10+20+"hello");
System.out.println("hello"+(10+20));
System.out.println(10+""+20+"hello");
執(zhí)行結(jié)果如下:
hello1020//10和20被拼接成了字符串
30hello//10和20先作和,變成30
hello30//括號(hào)括了起來(lái)加和之后變成字符串
1020hello
//變成字符串,因?yàn)?0和20中間有一個(gè)空字符串使得10和20沒(méi)有加和
轉(zhuǎn)義字符
轉(zhuǎn)義字符''和C語(yǔ)言一樣
會(huì)和下一個(gè)字符合為另一個(gè)字符
比如我們熟知的\n換行
如果要打印\n,可以用雙轉(zhuǎn)義
System.out,println("\\n");
輸出結(jié)果如下:
\n
運(yùn)算符
加減乘除
+,-,*,/,是我們最常見(jiàn)的運(yùn)算符,這些運(yùn)算符效果就是你想的那樣,只不過(guò)唯一要注意''號(hào),除號(hào)需要注意除數(shù)不能為0,并且如果涉及到小數(shù)計(jì)算建議使用double,因?yàn)樵谟?jì)算機(jī)語(yǔ)言之中1/2=0,因?yàn)?和2都是整形,結(jié)果也只會(huì)是整形。
模運(yùn)算
‘%'模運(yùn)算,起作用是求余數(shù)
int a = 5%2;
上面代碼中,a的值是1,因?yàn)?/2 == 2余1,所以a等于1.
增量賦值運(yùn)算符
增量賦值運(yùn)算符,+=,-=,*=,/=等等
和C語(yǔ)言之中的混合運(yùn)算符一樣
a+=3 <==>a = a+3;
并且在Java中,增量賦值會(huì)自帶強(qiáng)制類(lèi)型轉(zhuǎn)換。
short a = 2; int s = (int)a+2;//需要強(qiáng)制類(lèi)型轉(zhuǎn)換 int b = 0; b+=a;//不需要,因?yàn)橐呀?jīng)自動(dòng)轉(zhuǎn)換類(lèi)型了
自增運(yùn)算符和自建運(yùn)算符
++和–,其等價(jià)于a+=1和a-=1;
自增運(yùn)算符分為前置和后置
舉個(gè)例子:
int a = 0; int b = a++; //等價(jià)于int b = a;a = a+1; int c = --a; //等價(jià)于 a = a-1;int b = a;
賦值運(yùn)算符
‘='就是賦值運(yùn)算符,其作用是將右邊的值賦給左邊
判斷運(yùn)算符
判斷運(yùn)算符有==,!=,<=,>=,<,>。
其為bool表達(dá)式,結(jié)果是bool類(lèi)型的
int a = 0; boolean c = false; c = a==0;//a==0為真,c = true; c = a!=0;//a==0為假,c = false; c = a>0;//a>0為假,c = false; c = a<0;//a<0為假,c = false; c = a>=0;//a>=0為真,c = true; c = a<=0;//a<=0為真,c = true;
邏輯判斷符
|| :邏輯或
表達(dá)式1||表達(dá)式2||表達(dá)式3……
從左向右判斷,如果有一個(gè)為真,則停止判斷返回真,否則返回假。
&& :邏輯與
表達(dá)式1&&表達(dá)式2&&表達(dá)式3……
從左向右判斷,如果有一個(gè)為假,則停止判斷返回假,否則返回假。
?。哼壿嬋》?/p>
!表達(dá)式1;
如果表達(dá)式1為真,返回false,如果表達(dá)式1為假,返回true。
注意:所有的表達(dá)式必須是bool表達(dá)式?。。?/p>
按位運(yùn)算符
按位與&,按位或|,按位異或^,按位取反~
按位與,a&b,對(duì)于兩個(gè)數(shù)a和b,每一個(gè)二進(jìn)制位,如果均為1則對(duì)應(yīng)二進(jìn)制位也放1,否則放0
1101 & 0011 = 0001
按位或,a|b,對(duì)于兩個(gè)數(shù)a和b,每一個(gè)二進(jìn)制位,如果均為0則對(duì)應(yīng)二進(jìn)制位也放0,否則放0
1101 & 0011 = 1111
按位異或,a^b,對(duì)于兩個(gè)數(shù)a和b,每一個(gè)二進(jìn)制位,如果相同則為0,否則放1
1101 & 0011 = 1110
按位取反,~a,對(duì)于每一個(gè)二進(jìn)制位,除了符號(hào)位也就是第一位,其他所有的位1變0,0變1.
~1101 = 1010
移位運(yùn)算
左移<<,右移>>和無(wú)符號(hào)右移>>>
左移運(yùn)算符,將其二進(jìn)制位左移x個(gè)單位,不足的補(bǔ)0
0101 0101 << 2(左移兩位)
結(jié)果是01 010100
右移運(yùn)算符,將其二進(jìn)制位右移x個(gè)單位,不足的補(bǔ)符號(hào)位
1101 0101 >> 2(右移兩位)
結(jié)果是111101 01
無(wú)符號(hào)右移,將其二進(jìn)制位右移X個(gè)單位,不足的無(wú)論是負(fù)數(shù)也好正數(shù)也好全部補(bǔ)0
1101 0101 >>> 2(無(wú)符號(hào)右移兩位)
結(jié)果是001101 01
PS:沒(méi)有無(wú)符號(hào)左移
條件運(yùn)算符
條件運(yùn)算符就是三目運(yùn)算符
表達(dá)式1 ?表達(dá)式2:表達(dá)式3
表達(dá)式1,2,3必須是bool表達(dá)式
如果表達(dá)式1為真則返回表達(dá)式2,如果表達(dá)式1為假,返回表達(dá)式3.
運(yùn)算符優(yōu)先級(jí)
運(yùn)算符存在優(yōu)先級(jí),但是大多時(shí)候不必去深究,可以通過(guò)括號(hào)來(lái)先計(jì)算內(nèi)部的表達(dá)式,靈活運(yùn)用括號(hào)來(lái)防止運(yùn)算符優(yōu)先級(jí)造成的問(wèn)題。
總結(jié)
到此這篇關(guān)于Java基礎(chǔ)之?dāng)?shù)據(jù)類(lèi)型與運(yùn)算符的文章就介紹到這了,更多相關(guān)Java數(shù)據(jù)類(lèi)型與運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用IDEA搭建SSM框架的詳細(xì)教程(spring + springMVC +MyBatis)
這篇文章主要介紹了使用IDEA搭建SSM框架的詳細(xì)教程 spring + springMVC +MyBatis,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Java 創(chuàng)建URL的常見(jiàn)問(wèn)題及解決方案
這篇文章主要介紹了Java 創(chuàng)建URL的常見(jiàn)問(wèn)題及解決方案的相關(guān)資料,需要的朋友可以參考下2016-10-10
使用springcloud+oauth2攜帶token去請(qǐng)求其他服務(wù)
這篇文章主要介紹了使用springcloud+oauth2攜帶token去請(qǐng)求其他服務(wù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
java8學(xué)習(xí)教程之lambda表達(dá)式的使用方法
Java8最值得學(xué)習(xí)的特性就是Lambda表達(dá)式,下面這篇文章主要給大家介紹了關(guān)于java8學(xué)習(xí)教程之lambda表達(dá)式使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
SpringMvc獲取頁(yè)面中的參數(shù)方法詳解
這篇文章主要介紹了SpringMvc獲取頁(yè)面中的參數(shù)方法詳解,獲取頁(yè)面的參數(shù)通常都是讓類(lèi)實(shí)現(xiàn)設(shè)置HttpServletRequest request接口然后重寫(xiě)接口中的方法的辦法來(lái)得到參數(shù),但是在Springmvc中有其他的獲取方法,需要的朋友可以參考下2023-10-10
Mybatis 一對(duì)多和多對(duì)一關(guān)聯(lián)查詢(xún)問(wèn)題
這篇文章主要介紹了Mybatis 一對(duì)多和多對(duì)一關(guān)聯(lián)查詢(xún)問(wèn)題,需要的朋友可以參考下2017-04-04
Java編寫(xiě)時(shí)間工具類(lèi)ZTDateTimeUtil的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Java編寫(xiě)時(shí)間工具類(lèi)ZTDateTimeUtil,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
SpringBoot中@EnableAutoConfiguration注解的實(shí)現(xiàn)
Spring Boot@EnableAutoConfiguration是一個(gè)強(qiáng)大的工具,可以簡(jiǎn)化配置過(guò)程,從而實(shí)現(xiàn)快速開(kāi)發(fā),本文主要介紹了SpringBoot中@EnableAutoConfiguration注解的實(shí)現(xiàn),感興趣的可以了解一下2024-01-01

