2018年——完整的Java基礎(chǔ)筆記整理

Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言逼纸。Java 技術(shù)具有卓越的通用性借帘、高效性蜘渣、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC肺然、數(shù)據(jù)中心蔫缸、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)际起、移動(dòng)電話和互聯(lián)網(wǎng)拾碌,同時(shí)擁有全球最大的開發(fā)者專業(yè)社群吐葱。

給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

常量的概述和使用

詳解進(jìn)制轉(zhuǎn)換原理。

原碼補(bǔ)碼

變量的的格式和使用

數(shù)據(jù)類型的概述的轉(zhuǎn)換

算術(shù)運(yùn)算符的使用

賦值運(yùn)算符的使用

關(guān)系運(yùn)算符的使用

常量的概述和使用

A:什么是常量

在程序執(zhí)行的過程中其值不可以發(fā)生改變

B:Java中常量的分類

字面值常量

自定義常量(面向?qū)ο蟛糠种v)

C:字面值常量的分類(6種常量)

字符串常量 用雙引號(hào)括起來的內(nèi)容

整數(shù)常量所有整數(shù)(無限個(gè))

小數(shù)常量所有小數(shù)

字符常量 用單引號(hào)括起來的內(nèi)容,里面只能放單個(gè)數(shù)字,單個(gè)字母或單個(gè)符號(hào)

‘10’,’ab’非法的校翔。

布爾常量較為特殊弟跑,只有true和false

空常量 null(數(shù)組部分講解)

D:案例演示

用輸出語句輸出各種常量。null不演示

classDemo1{

publicstaticvoidmain(String[] args){

//字符串常量

System.out.println("Hello World!");

//整數(shù)常量

System.out.println(100);

//小數(shù)常量

//默認(rèn)是Double精度類型

System.out.println(12.3);

//字符常量

//單個(gè)數(shù)字,單個(gè)字母,或單個(gè)符號(hào),一個(gè)也沒有不可以,超過也一個(gè)不可以防症。

System.out.println(' ');

//布爾常量

//true和false都是關(guān)鍵字

System.out.println(true);

//null常量不演示孟辑,后續(xù)會(huì)詳細(xì)講

//在字符常量中'100','ab',''均為非法,只能單個(gè)蔫敲,否則報(bào)錯(cuò)未結(jié)束的字符串

}

}

進(jìn)制概述和二,八,十六進(jìn)制圖解

A:什么是進(jìn)制

進(jìn)制:就是進(jìn)位制饲嗽,是人們規(guī)定的一種進(jìn)位方法。 對(duì)于任何一種進(jìn)制–X進(jìn)制奈嘿,就表示某一位置上的數(shù)運(yùn)算時(shí)是逢X進(jìn)一位貌虾。二進(jìn)制就是逢二進(jìn)一,八進(jìn)制是逢八進(jìn)一指么,十進(jìn)制是逢十進(jìn)一酝惧,十六進(jìn)制是逢十六進(jìn)一。

例如一周有七天,七進(jìn)制,一年有十二個(gè)月,十二進(jìn)制

B:二進(jìn)制的由來

其實(shí)二進(jìn)制來源與中國,請(qǐng)看史料記載

18世紀(jì)德國數(shù)理哲學(xué)大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本《易經(jīng)》中伯诬,讀到了八卦的組成結(jié)構(gòu)晚唇,驚奇地發(fā)現(xiàn)其基本素?cái)?shù)(0)(1),即《易經(jīng)》的陰爻yao- -和__陽爻盗似,其進(jìn)位制就是二進(jìn)制哩陕,并認(rèn)為這是世界上數(shù)學(xué)進(jìn)制中最先進(jìn)的。20世紀(jì)被稱作第三次科技革命的重要標(biāo)志之一的計(jì)算機(jī)的發(fā)明與應(yīng)用赫舒,其運(yùn)算模式正是二進(jìn)制悍及。它不但證明了萊布尼茲的原理是正確的,同時(shí)也證明了《易經(jīng)》數(shù)理學(xué)是很了不起的接癌。

C:八進(jìn)制的由來

任何數(shù)據(jù)在計(jì)算機(jī)中都是以二進(jìn)制的形式存在的心赶。二進(jìn)制早期由電信號(hào)開關(guān)演變而來。一個(gè)整數(shù)在內(nèi)存中一樣也是二進(jìn)制的缺猛,但是使用一大串的1或者0組成的數(shù)值進(jìn)行使用很麻煩缨叫。

所以就想把一大串縮短點(diǎn),將二進(jìn)制中的三位用一位表示荔燎。這三位可以取到的最大值就是7.超過7就進(jìn)位了耻姥,這就是八進(jìn)制。

D:十六進(jìn)制的由來

但是對(duì)于過長(zhǎng)的二進(jìn)制變成八進(jìn)制還是較長(zhǎng)有咨,所以出現(xiàn)的用4個(gè)二進(jìn)制位表示一位的情況琐簇,四個(gè)二進(jìn)制位最大是15,這就是十六進(jìn)制座享。

E:不同進(jìn)制表現(xiàn)同一個(gè)數(shù)據(jù)的形式特點(diǎn)

進(jìn)制越大婉商,表現(xiàn)形式越短

不同進(jìn)制數(shù)據(jù)的表現(xiàn)形式

小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零似忧,五五四,六零七 】据某,無論你是大牛還是小白橡娄,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具癣籽,很多干貨和技術(shù)資料分享挽唉!

system-min.png

二進(jìn)制是所有進(jìn)制的基礎(chǔ)。8421筷狼,2的次方數(shù)瓶籽。

A:二進(jìn)制的數(shù)據(jù)表現(xiàn)形式

由0,1組成。以0b(b可以大寫也可以小寫)開頭(JDK1.7版本可以表示二進(jìn)制了)

B:八進(jìn)制的數(shù)據(jù)表現(xiàn)形式

由0,1,…7組成埂材。以0開頭

C:十進(jìn)制的數(shù)據(jù)表現(xiàn)形式

由0,1,…9組成塑顺。整數(shù)默認(rèn)是十進(jìn)制的

D:十六進(jìn)制的數(shù)據(jù)表現(xiàn)形式

由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭

E:案例演示

classDemo2JinZhi{

publicstaticvoidmain(String[] args){

//二進(jìn)制,1.7版本前面加上0b表示二進(jìn)制,b大寫小寫都可以

System.out.println(0b100);

//八進(jìn)制

System.out.println(074);

//十進(jìn)制

System.out.println(100);

//十六進(jìn)制,10到15分別用a到f表示,大小寫都可以

System.out.println(0x3c);

// 0b1010101 052 0x52

}

}

* 輸出不同進(jìn)制表現(xiàn)100的數(shù)據(jù)俏险。

*0b100//二進(jìn)制 0b開頭

*0100//八進(jìn)制 0開頭

*100// 十進(jìn)制

*0x100//16進(jìn)制0x開頭

任意進(jìn)制到十進(jìn)制的轉(zhuǎn)換圖解

A:任意進(jìn)制到十進(jìn)制的轉(zhuǎn)換原理

系數(shù):就是每一位上的數(shù)據(jù)严拒。

基數(shù):X進(jìn)制,基數(shù)就是X竖独。

權(quán):在右邊裤唠,從0開始編號(hào),對(duì)應(yīng)位上的編號(hào)即為該位的權(quán)莹痢。

結(jié)果:把系數(shù)*基數(shù)的權(quán)次冪相加即可种蘸。

B:畫圖練習(xí)

二進(jìn)制–十進(jìn)制

八進(jìn)制–十進(jìn)制

十六進(jìn)制–十進(jìn)制

進(jìn)制互相轉(zhuǎn)換原理圖

注意去權(quán)次冪的時(shí)候,從0開始要數(shù)到系數(shù)的位置竞膳,從1開始的話航瞭,要少數(shù)一位。

十進(jìn)制到任意進(jìn)制的轉(zhuǎn)換圖解

A:十進(jìn)制到任意進(jìn)制的轉(zhuǎn)換原理

除積倒取余

B:畫圖練習(xí)

十進(jìn)制–二進(jìn)制

十進(jìn)制–八進(jìn)制

十進(jìn)制–十六進(jìn)制

jinzhi.png

快速的進(jìn)制轉(zhuǎn)換法

A:8421碼及特點(diǎn)

8421碼是中國大陸的叫法坦辟,8421碼是BCD代碼中最常用的一種刊侯。在這種編碼方式中每一位二值代碼的1都是代表一個(gè)固定數(shù)值,把每一位的1代表的十進(jìn)制數(shù)加起來锉走,得到的結(jié)果就是它所代表的十進(jìn)制數(shù)碼滔吠。

B:通過8421碼的方式進(jìn)行二進(jìn)制和十進(jìn)制的相互轉(zhuǎn)換

C:二進(jìn)制到八進(jìn)制的簡(jiǎn)易方式

D:二進(jìn)制到十六進(jìn)制的簡(jiǎn)易方式

8421ma-min.png

八進(jìn)制數(shù)字 三個(gè)bit位為一組。

十六進(jìn)制挠日,四個(gè)bit位為一組翰舌。

一個(gè)字節(jié)占八個(gè)個(gè)bit位嚣潜。

一個(gè)字椅贱,兩個(gè)字節(jié),16個(gè)bit位置舍悯。

原碼反碼補(bǔ)碼

A:為什么要講解有符號(hào)數(shù)據(jù)表示法

后面學(xué)習(xí)數(shù)據(jù)類型的時(shí)候,要學(xué)習(xí)強(qiáng)制類型轉(zhuǎn)換,如果不知道有原反補(bǔ)會(huì)看不懂結(jié)果

B:有符號(hào)數(shù)據(jù)表示法的幾種方式

原碼

就是二進(jìn)制定點(diǎn)表示法萌衬,即最高位為符號(hào)位,“0”表示正它抱,“1”表示負(fù)秕豫,其余位表示數(shù)值的大小。

通過一個(gè)字節(jié),也就是8個(gè)二進(jìn)制位表示+7和-7

0(符號(hào)位)0000111

1(符號(hào)位)0000111

反碼

正數(shù)的反碼與其原碼相同观蓄;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反混移,但符號(hào)位除外。

補(bǔ)碼

正數(shù)的補(bǔ)碼與其原碼相同侮穿;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1歌径。

YuanMaFanMaBuMa-min.png

在計(jì)算機(jī)系統(tǒng)里面,存儲(chǔ)采用的是原碼的形式撮珠,計(jì)算采用的都是補(bǔ)碼的形式沮脖,進(jìn)行運(yùn)算。

原碼->反碼->補(bǔ)碼

原碼反碼補(bǔ)碼的練習(xí)

A:已知原碼求補(bǔ)碼(加一取反)

0b10110100

0b11001100

B:已知補(bǔ)碼求原碼

0b11101110 (減1取反)

ob10010010


YuanMaBuMaLianxi-min.png

變量的概述及格式

A:什么是變量

在程序執(zhí)行的過程中芯急,在某個(gè)范圍內(nèi)其值可以發(fā)生改變的量(ex:數(shù)學(xué)的未知數(shù))

B:變量的定義格式

數(shù)據(jù)類型 變量名 = 變量值;

C:為什么要定義變量

用來不斷的存放同一類型的常量勺届,并可以重復(fù)使用

數(shù)據(jù)類型的概述和分類

A:為什么有數(shù)據(jù)類型

Java語言是強(qiáng)類型語言,對(duì)于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型娶耍,在內(nèi)存總分配了不同大小的內(nèi)存空間

B:Java中數(shù)據(jù)類型的分類

基本數(shù)據(jù)類型

引用數(shù)據(jù)類型

面向?qū)ο蟛糠种v解

C:基本數(shù)據(jù)類型分類(4類8種)

整數(shù)型

byte,short,int,long

浮點(diǎn)型

float,double

字符型

char

布爾型

boolean

D:引用數(shù)據(jù)類型

類(class)免姿、接口(interface)、數(shù)組([]).

classDemo1{

publicstaticvoidmain(String[] args){

//整數(shù)類型byte,short,int,long

/*

byte占的是1個(gè)字節(jié) = 8個(gè)bit

0 1111111 = 1 + 2 + 4 + 8 + 16 + 32 + 64 = 127

1 1111111 = -127

1 0000000 取反

1 0000001 -127的補(bǔ)碼

1 0000000 -128的補(bǔ)碼

0 0000001 減去1

-------------

1 1111111

1 0000000 -128的原碼

byte取值范圍是-128到127 -128到-1 0到127 256個(gè)數(shù)

short占的2個(gè)字節(jié) = 16個(gè)bit

int 占的4個(gè)字節(jié) = 32個(gè)bit //int是整數(shù)類型的默認(rèn)類型

long占的8個(gè)字節(jié) = 64個(gè)bit

*/

//浮點(diǎn)類型 float和double

/*

float占的是4個(gè)字節(jié)單精度

double占的是8個(gè)字節(jié)雙精度 double是浮點(diǎn)數(shù)的默認(rèn)類型

*/

//字符類型

/*

char占的兩個(gè)字節(jié) 0到65535之間

*/

//布爾類型

/*

布爾類型占幾個(gè)字節(jié)?

按照bit位算的話,應(yīng)該占的是八分之一個(gè)字節(jié)

java中沒有明確布爾類的大小榕酒。

*/

}

}

定義不同數(shù)據(jù)類型的變量

A:案例演示

定義不同基本數(shù)據(jù)類型的變量胚膊,并輸出

賦值時(shí)候注意float類型,long類型

classDemo2DateType{

publicstaticvoidmain(String[] args){

//整數(shù)類型

byteb =100;

shorts =1000;

inti =10000;

longl =123456789012345678L;

//System.out.println(12345+5432l);

//切記如果想標(biāo)識(shí)long類型的數(shù),超過了int的取值范圍

//需要在末尾加上L,最好是大寫,因?yàn)樾懙奶?這個(gè)數(shù)字;

//浮點(diǎn)類型

//13.4后面的d可以省略,d可以是大寫也可以是小寫

//默認(rèn)的double類型

floatf =12.3f;

doubled =13.4d;

//字符類型

charc1 ='a';

charc2 ='0';

charc3 ='中';

//字符是否可以存儲(chǔ)中文?

//可以,java是unicode編碼,char類型占的兩個(gè)字節(jié),、

//而一個(gè)中文占的也是兩個(gè)字節(jié)

//System.out.println(c3);

//布爾類型

booleanb1 =true;

booleanb2 =false;

}

}

附上一個(gè)截圖想鹰,不同數(shù)據(jù)類型的取值范圍

小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零紊婉,五五四,六零七 】辑舷,無論你是大牛還是小白喻犁,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享肢础!

fanwei-min.PNG

整型的取值范圍默認(rèn)是int还栓,浮點(diǎn)型默認(rèn)是double,所以當(dāng)使用float單精度定義數(shù)據(jù)時(shí)候必須帶有f,數(shù)字過于大的話传轰,需要在末尾帶有L(小寫容易混淆)剩盒。

使用變量的注意事項(xiàng)

A:案例演示

a:作用域問題

同一個(gè)區(qū)域不能使用相同的變量名

b:初始化值問題

局部變量在使用之前必須賦值

c:一條語句可以定義幾個(gè)變量

int a,b,c…;

classDemo3DateType{

publicstaticvoidmain(String[] args){//作用域

intx =10;

//賦值將原來10覆蓋掉

x =20;

//System.out.println(x);

inty;

//變量在使用之前必須賦值

y =30;

//System.out.println(y);

//一條語句可以聲明多個(gè)變量

inta,b,c;

a =10;

b =20;

c =30;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

數(shù)據(jù)類型轉(zhuǎn)換之隱式轉(zhuǎn)換

A:案例演示

a:int + int

b:byte + int 的結(jié)果分別用byte和int類型接收,看效果

B:Java中的默認(rèn)轉(zhuǎn)換規(guī)則

C:畫圖解釋byte+int類型的問題


leixing-min.png

由于java中整型的數(shù)據(jù)默認(rèn)是int類型慨蛙,因此 short btye類型的數(shù)據(jù)和int類型的進(jìn)行運(yùn)算的時(shí)候辽聊,會(huì)被自動(dòng)提升稱為int類型。

int和long等更高精度的數(shù)據(jù)運(yùn)算時(shí)股淡,會(huì)提升成為long等更高精度的數(shù)據(jù)類型身隐,為了確保精度。

數(shù)據(jù)類型轉(zhuǎn)換之強(qiáng)制轉(zhuǎn)換

A:強(qiáng)制轉(zhuǎn)換問題

int a = 10;

byte b = 20;

b = a + b;

B:強(qiáng)制轉(zhuǎn)換的格式

b = (byte)(a + b);

C:強(qiáng)制轉(zhuǎn)換的注意事項(xiàng)

如果超出了被賦值的數(shù)據(jù)類型的取值范圍得到的結(jié)果會(huì)與你期望的結(jié)果不同

classDemo4DateType{

publicstaticvoidmain(String[] args){

/*int i = 100;

byte b = 50;

//自動(dòng)類型提升(隱式轉(zhuǎn)換)

i = i + b;

System.out.println(i);*/

//int類型的150

//00000000 00000000 00000000 10010110

// 用byte強(qiáng)轉(zhuǎn)150后的結(jié)果唯灵,運(yùn)算中都是使用補(bǔ)碼(只截取最后八位)

//10010110

//0 1101010106

//1 1101010-106的原碼

//1 0010101-106的反碼

//0 0000001 +1

//1 0010110-106的補(bǔ)碼

inti =100;

byteb =50;

b = (byte)(i + b);//強(qiáng)制類型轉(zhuǎn)換(丟失精度)

System.out.println(b);

byteb2 = (byte)300;

System.out.println(b2);

//300的二進(jìn)制表現(xiàn)形式贾铝,本應(yīng)該占32位

//00000000 00000000 00000001 00101100

//00101100強(qiáng)轉(zhuǎn)成了byte,精度丟失埠帕。

}

}

面試題之變量相加和常量相加的區(qū)別

A:案例演示

面試題:看下面的程序是否有問題垢揩,如果有問題,請(qǐng)指出并說明理由敛瓷。

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;(報(bào)錯(cuò))

從兩方面去回答這個(gè)題

b1和b2是兩個(gè)變量,變量里面存儲(chǔ)的值都是變化的,所以在程序運(yùn)行中JVM是無法判斷里面具體的值

byte類型的變量在進(jìn)行運(yùn)算的時(shí)候,會(huì)自動(dòng)類型提升為int類型 叁巨,所相當(dāng)于把一個(gè)int的值給了byte,編譯報(bào)錯(cuò)

byte b4 = 3 + 4;(沒問題)

3和4都是常量,java有常量?jī)?yōu)化機(jī)制,就是在編譯的的時(shí)候直接把3和4的結(jié)果賦值給b4了

//面試題(數(shù)據(jù)類型轉(zhuǎn)換)

classDemo5DateType{

publicstaticvoidmain(String[] args){

byteb,b1,b2;

b1 =3;

b2 =4;

//b = b1 + b2;

b =3+4;

//這兩種哪種會(huì)報(bào)錯(cuò),為什么

//b1和b2是兩個(gè)byte類型的變量,

//在進(jìn)行運(yùn)算的會(huì)自動(dòng)類型提升為int類型

//b1和b2是兩個(gè)變量,jvm無法判斷里面具體的值

//3和4是兩個(gè)常量,java有一個(gè)常量?jī)?yōu)化機(jī)制,在編譯直接講常量相加的結(jié)果算出并賦值

System.out.println(b);

bytex =100;

}

}

數(shù)據(jù)類型中補(bǔ)充的幾個(gè)小問題

A:在定義long或者float類型的變量的時(shí)候呐籽,需要在末尾跟上L和F锋勺;

因?yàn)槟J(rèn)的數(shù)據(jù)類型是int和double

byte和short在定義的時(shí)候,他們接收的實(shí)際上是一個(gè)int類型值狡蝶,越界就會(huì)報(bào)錯(cuò)

B: Byte的值問題

byte b1 =127;

byte b2 =(byte)300; //損失精度

byte b4 =(byte)130; //損失精度庶橱,此外計(jì)算機(jī)在進(jìn)行運(yùn)算的時(shí)候,都是使用補(bǔ)碼

byte的取值范圍 -128~127贪惹;

C: 數(shù)據(jù)類型轉(zhuǎn)換之默認(rèn)轉(zhuǎn)換

進(jìn)行混合運(yùn)算的時(shí)候,byte,short,char不會(huì)相互轉(zhuǎn)換,都會(huì)自動(dòng)類型提升為int類型,其他類型進(jìn)行混合運(yùn)算的是小的數(shù)據(jù)類型提升為大的

byte,short,char – int – long – float – double

long: 8個(gè)字節(jié)

float:4個(gè)字節(jié)

IEEE754 國際制定的標(biāo)準(zhǔn)

4個(gè)字節(jié)是32個(gè)二進(jìn)制位

1位是符號(hào)位 1是負(fù)數(shù)苏章,0是正數(shù)

8位是指數(shù)位

00000000 11111111

0到255

1到254

每個(gè)指數(shù)位減去127

-126到127

23位是尾數(shù)位(無限接近1)

A:它們底層的存儲(chǔ)結(jié)構(gòu)不同。

B:float表示的數(shù)據(jù)范圍比long的范圍要大

long:2^63-1

float:3.410^38 > 210^38 > 28^38 = 22^3^38 = 2*2^114 > 2^63-1

D: java語言中的字符char可以存儲(chǔ)漢字嗎奏瞬?為什么枫绅?

可以的,因?yàn)閖ava語言采用的是Unicode編碼硼端,unicode編碼中每個(gè)字符占用兩個(gè)字節(jié)

所以并淋,java中的字符可以存儲(chǔ)一個(gè)中文漢字。

字符和字符串參與運(yùn)算

A:案例演示

System.out.println(‘a(chǎn)’); //a的acsII碼表 97

System.out.println(‘a(chǎn)’+1);//輸出 98 提升成int類型

System.out.println((char)(’a’+1));//強(qiáng)轉(zhuǎn)輸出 b

System.out.println((char)(98));//強(qiáng)轉(zhuǎn)輸出 b

System.out.println((char)(100));//強(qiáng)轉(zhuǎn)輸出 珍昨? 只用到了127位(Unicode)

通過看結(jié)果知道’a’的值是多少,由此引出ASCII碼表

B:ASCII碼表的概述

記住三個(gè)值:

‘0’ 48

‘A’ 65

‘a(chǎn)’ 97

C:案例演示

System.out.println(“hello”+’a’+1);//輸出:helloa1 任何數(shù)據(jù)用+與字符串連接最后都會(huì)產(chǎn)生新的字符串

System.out.println(‘a(chǎn)’+1+”hello”);//輸出: 98 hello

D:+在有字符串參與中被稱為字符串連接符

System.out.println(“5+5=”+5+5);//輸出 5+5=55

System.out.println(5+5+”=5+5”);//輸出:10=5+5

char數(shù)據(jù)類型

A:char c = 97;

B:Java語言中的字符char可以存儲(chǔ)一個(gè)中文漢字嗎?為什么呢?

可以县耽。因?yàn)镴ava語言采用的是Unicode編碼订咸。Unicode編碼中的每個(gè)字符占用兩個(gè)字節(jié)。

所以酬诀,Java中的字符可以存儲(chǔ)一個(gè)中文漢字

算術(shù)運(yùn)算符的基本用法

A:什么是運(yùn)算符

B:運(yùn)算符的分類

C:算數(shù)運(yùn)算符有哪些

D:案例演示

算數(shù)運(yùn)算符的基本用法

注意事項(xiàng):

a:整數(shù)相除只能得到整數(shù)。如果想得到小數(shù)骆撇,必須把數(shù)據(jù)變化為浮點(diǎn)數(shù)類型

b:/獲取的是除法操作的商瞒御,%獲取的是除法操作的余數(shù)

yunsuanfu-min.png

//取模運(yùn)算

classDemo7Operator{

publicstaticvoidmain(String[] args){

//取模運(yùn)算就是取余數(shù)

//System.out.println(12 % 5);

//如果左邊絕對(duì)值小于右邊就是本身

//System.out.println(-3 % 5);

//如果左邊絕對(duì)值是右邊的倍數(shù)時(shí),結(jié)果為0

//System.out.println(-10 % 5);

//如果左邊的絕對(duì)值大于右邊,結(jié)果是余數(shù),符號(hào)取決于左邊,右邊忽略不計(jì)

//System.out.println(13 % -5);

//一個(gè)數(shù)模與2結(jié)果要么是0,要么是1,可以用來切換條件

//System.out.println(3 % 2);

inta =100;

intb =30;

System.out.println(a / b);//整數(shù)與整數(shù)運(yùn)算結(jié)果肯定是整數(shù),不能是小數(shù) out : 3

}

}

算術(shù)運(yùn)算符++和–的用法

A:++,–運(yùn)算符的作用

自加(++)自減(–)運(yùn)算

++:自加。對(duì)原有的數(shù)據(jù)進(jìn)行+1

–:自減神郊。對(duì)原有的數(shù)據(jù)進(jìn)行-1

B:案例演示

a:單獨(dú)使用:

放在操作數(shù)的前面和后面效果一樣肴裙。(這種用法是我們比較常見的)

b:參與運(yùn)算使用:

放在操作數(shù)的前面,先自增或者自減涌乳,然后再參與運(yùn)算蜻懦。

放在操作數(shù)的后面,先參與運(yùn)算夕晓,再自增或者自減宛乃。

同理a–

classDemo8Operator{

publicstaticvoidmain(String[] args){

/*int a = 4;

a++; a++ 相當(dāng)于a = a+1

//如果++符號(hào)放在變量的后面,是先賦值,再自加

int b = a++;

//無論賦值,還是運(yùn)算,還是打印都是先將變量里的值拿出來,然后在自身+1

//System.out.println("b = " + b);

System.out.println(a++);//輸出4

System.out.println(a);*///輸出 5

inta =4;

++a;//a++和++a單獨(dú)寫沒有區(qū)別

//int b = ++a;//如果++符號(hào)放在變量的前面,是先自加,然后再賦值

//System.out.println("b = " + b);

System.out.println(a);

}

}

算術(shù)運(yùn)算符++和–的練習(xí)

A:案例演示

請(qǐng)分別計(jì)算出a,b,c的值?

int a = 10;

intb =10;

intc =10;

a = b++;//a = 10 b = 11

c = --a;//c = 9 a = 9

b = ++a;//b = 10 a = 10

a = c--;//a = 9 c = 8

B:案例演示

請(qǐng)分別計(jì)算出x,y的值?

intx =4;

inty = (x++)+(++x)+(x*10);

classDemo9Operator{

publicstaticvoidmain(String[] args){

/*int a = 10;

int b = 10;

int c = 10;

a = b++;//a = 10 b = 11

System.out.println(a);//10

c = --a;//c = 9 a = 9

b = ++a;//b = 10 a = 10

a = c--;//a = 9 c = 8

System.out.println("=================================");

System.out.println(a);//9

System.out.println(b);//10

System.out.println(c);//8*/

intx =4;

//4 + 6 + 6 * 10 = 70

inty = (x++)+(++x)+(x*10);

System.out.println(x);

System.out.println(y);

}

}

賦值運(yùn)算符的基本用法

A:賦值運(yùn)算符有哪些

B:案例演示

賦值運(yùn)算符的基本用法

注意事項(xiàng):

a:基本的賦值運(yùn)算符:=

把=右邊的數(shù)據(jù)賦值給左邊。

b:擴(kuò)展的賦值運(yùn)算符:+=,-=,*=,/=,%=

+= 把左邊和右邊做加法蒸辆,然后賦值給左邊征炼。

賦值運(yùn)算符的面試題

A:案例演示

面試題:看下面的程序是否有問題,如果有問題躬贡,請(qǐng)指出并說明理由谆奥。

short s=1;s = s+1;

short s=1;s+=1;

//面試題

classDemo10Operator{

publicstaticvoidmain(String[] args){

inta =10;

//a += 20;//a = a + 20;相當(dāng)于將左右兩邊相加的結(jié)果再賦值給左邊,

//20 += a;//左邊一定是變量

a *=20;

//System.out.println(a);

shorts=1;

//short類型與int類型進(jìn)行運(yùn)算會(huì)提升為int類型,結(jié)果是int類型,不能賦值給short類型

//s = s+1;

// s = (short)(s + 1);+=號(hào)是一個(gè)賦值運(yùn)算符,所以為了能夠保證賦值成功,會(huì)把int類型強(qiáng)轉(zhuǎn)為short類型

s+=1;

System.out.println(s);

}

}

關(guān)系運(yùn)算符的基本用法及其注意事項(xiàng)

A:關(guān)系運(yùn)算符有哪些

B:案例演示

關(guān)系運(yùn)算符的基本用法

注意事項(xiàng):

無論你的操作是簡(jiǎn)單還是復(fù)雜,結(jié)果是boolean類型拂玻。

“==”不能寫成”=”酸些。

小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零,五五四檐蚜,六零七 】魄懂,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)熬甚!裙內(nèi)有開發(fā)工具逢渔,很多干貨和技術(shù)資料分享!


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乡括,一起剝皮案震驚了整個(gè)濱河市肃廓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诲泌,老刑警劉巖盲赊,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異敷扫,居然都是意外死亡哀蘑,警方通過查閱死者的電腦和手機(jī)诚卸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绘迁,“玉大人合溺,你說我怎么就攤上這事∽禾ǎ” “怎么了棠赛?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)膛腐。 經(jīng)常有香客問我睛约,道長(zhǎng),這世上最難降的妖魔是什么哲身? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任辩涝,我火速辦了婚禮,結(jié)果婚禮上勘天,老公的妹妹穿的比我還像新娘怔揩。我一直安慰自己,他們只是感情好误辑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布沧踏。 她就那樣靜靜地躺著,像睡著了一般巾钉。 火紅的嫁衣襯著肌膚如雪翘狱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天砰苍,我揣著相機(jī)與錄音潦匈,去河邊找鬼。 笑死赚导,一個(gè)胖子當(dāng)著我的面吹牛茬缩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吼旧,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼凰锡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了圈暗?” 一聲冷哼從身側(cè)響起掂为,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎员串,沒想到半個(gè)月后勇哗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寸齐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年欲诺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抄谐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扰法,死狀恐怖蛹含,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情塞颁,我是刑警寧澤挣惰,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站殴边,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏珍语。R本人自食惡果不足惜锤岸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望板乙。 院中可真熱鬧是偷,春花似錦、人聲如沸募逞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽放接。三九已至刺啦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纠脾,已是汗流浹背玛瘸。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苟蹈,地道東北人糊渊。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像慧脱,于是被迫代替她去往敵國和親渺绒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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

  • 常量的概述和使用 A:什么是常量在程序執(zhí)行的過程中其值不可以發(fā)生改變 B:Java中常量的分類字面值常量自定義常量...
    野望君閱讀 610評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法菱鸥,類相關(guān)的語法宗兼,內(nèi)部類的語法,繼承相關(guān)的語法采缚,異常的語法针炉,線程的語...
    子非魚_t_閱讀 31,587評(píng)論 18 399
  • 蘇曼在夢(mèng)里看到了一只小貓。 它躺在草地上扳抽,眼睛半瞇著篡帕,黃白相間的毛像嬰兒的頭發(fā)一樣細(xì)細(xì)的殖侵,軟軟的。它的嘴唇和鼻頭都...
    月光觸水寒閱讀 251評(píng)論 1 1
  • 臨時(shí)下了一個(gè)圖 fathing
    魯狂歌閱讀 160評(píng)論 0 0
  • 云水繞岫里镰烧,碧波鯉魚池拢军。 山中草木深,鳥兒長(zhǎng)空戲怔鳖。
    醉夢(mèng)紅塵閱讀 166評(píng)論 1 3