一、重點(diǎn)知識(shí)
1.1方法重載時(shí)參數(shù)列表順序不一樣也可
1.2char? 0-65535
算術(shù)運(yùn)算符中注意? /? ? %的區(qū)別,,,/是取商,%是取余
1.3注意三元運(yùn)算符后面的兩個(gè)表達(dá)式之間用 :鏈接
1.4注意i++先運(yùn)算再自增
舉例
int i = 5;
System.out.println("i++")? ? ? ? ? 結(jié)果為5
可見(jiàn)輸出時(shí)候也遵循此規(guī)律
注意運(yùn)算時(shí)候也是如此,先完成對(duì)應(yīng)運(yùn)算再自增,自增后的i與運(yùn)算再無(wú)關(guān)系,賦值也算運(yùn)算奧,別忘了,也是先賦值再自加
1.5關(guān)系運(yùn)算符的結(jié)果為布爾型
1.6遇到報(bào)錯(cuò),非法字符后面加unicode碼而且數(shù)字較大,說(shuō)明你可能有中文字符
1.7邏輯運(yùn)算符也不一定要用在選擇語(yǔ)句中,Boolean a = b && c && d;? ? ? 也是對(duì)的
1.8運(yùn)算符的優(yōu)先級(jí)為:算術(shù)運(yùn)算符,連接運(yùn)算符,關(guān)系運(yùn)算符,邏輯運(yùn)算符。
1.9一元運(yùn)算符意思是操作數(shù)就一個(gè)
2.0[10,99]隨機(jī)數(shù)? ? ? ? ? ? 公式:(int)(Math.random() * (99 - 10 + 1) + 10)
2.1只要前面有一個(gè)字符串,后面的加號(hào)都只起到連接作用? ? 沒(méi)遇到之前正常計(jì)算
2.2scanner會(huì)導(dǎo)致程序阻塞,只有完成輸入操作后,程序才能繼續(xù)執(zhí)行
2.3next().charAt(0)? ? 獲取單個(gè)字符
二、重點(diǎn)問(wèn)題
i++? 與? ++i
int a = 2;
System.out.println(a++);? ? ? ? ? ? 結(jié)果任然為2
System.out.println(++a);? ? ? ? ? ? 結(jié)果為3
也就意味著輸出操作中,i也是先輸出再自增一
三、本節(jié)內(nèi)容
3.1、運(yùn)算符
算術(shù)運(yùn)算符:+,-,*,/,%,++,--
/:兩個(gè)數(shù)相除,取商
%:兩個(gè)數(shù)相除,取余數(shù)
++:給變量自增1
i++:都是給i加1。i++的值還是當(dāng)i來(lái)算。
i++:先計(jì)算,再加1
++i:也是給i加1。++i的值相當(dāng)于加1之后
++i:先加1,再運(yùn)算
--:給變量自減1
都是給i進(jìn)行減1。
i--,值相當(dāng)于i本身。最終執(zhí)行之后給i減1。
先計(jì)算,再減1
--i,值相當(dāng)于i-1了。
先減1,再計(jì)算。
賦值運(yùn)算符:=,+=,-=,*=,/=,%=
=:將=右側(cè)的數(shù)據(jù),賦值給=左側(cè)的變量
+=:求和后再賦值:a += b;相當(dāng)于a = a + b
關(guān)系運(yùn)算符:也叫比較運(yùn)算符,比較兩個(gè)數(shù)值的關(guān)系的。計(jì)算結(jié)果是boolean類(lèi)型
<,>,<=,>=,==,!=
==,比較兩個(gè)數(shù)值,是否相等,如果相等,就是true,否則就是false。
!=,比較兩個(gè)數(shù)值,是否不等,如果不等,就是true,否則就是false。
邏輯運(yùn)算符:操作數(shù)是boolean類(lèi)型,計(jì)算結(jié)果也是boolean類(lèi)型。
&&:"與操作",表示并且的意思。
運(yùn)算規(guī)則:在參加計(jì)算的操作數(shù)中,如果都為true,結(jié)果就為true。有一個(gè)為false,結(jié)果就為false。
總結(jié):一假則假,全真才真。
||:"或操作",表示或者的意思。
運(yùn)算規(guī)則:在參加計(jì)算的操作數(shù)中,如果都為false,結(jié)果才為false,有一個(gè)為true,結(jié)果就為true。
總結(jié):一真則真,全假才假。
!:"取非、取反",一元的運(yùn)算符。
運(yùn)算規(guī)則:原來(lái)是true,取反后就是false,如果原來(lái)是false,取反后就是true
三元運(yùn)算符:根據(jù)條件獲取一個(gè)結(jié)果。
語(yǔ)法:X ? Y:Z
X是一個(gè)boolean類(lèi)型的表達(dá)式,如果值為true,整個(gè)三元運(yùn)算符取Y的值,否則取Z的值
3.2、表達(dá)式
表達(dá)式:操作數(shù)和運(yùn)算符組成一個(gè)式子。
表達(dá)式的值和類(lèi)型:將表達(dá)式進(jìn)行計(jì)算得到的結(jié)果就是表達(dá)式的值。
3.3自動(dòng)類(lèi)型提升
當(dāng)容量小的數(shù)據(jù)類(lèi)型的變量與容量大的數(shù)據(jù)類(lèi)型的變量做運(yùn)算時(shí),結(jié)果自動(dòng)提升為容量大的數(shù)據(jù)類(lèi)型。
byte 、char 、short --> int --> long --> float --> double
特別的:當(dāng)byte、char、short三種類(lèi)型的變量做運(yùn)算時(shí),結(jié)果為int型
說(shuō)明:此時(shí)的容量大小指的是,表示數(shù)的范圍的大和小。比如:float容量要大于long的容量
3.4強(qiáng)制類(lèi)型轉(zhuǎn)換
(只涉及7種基本數(shù)據(jù)類(lèi)型):自動(dòng)類(lèi)型提升運(yùn)算的逆運(yùn)算。
1.需要使用強(qiáng)轉(zhuǎn)符:()
2.注意點(diǎn):強(qiáng)制類(lèi)型轉(zhuǎn)換,可能導(dǎo)致精度損失。
3.5 String與8種基本數(shù)據(jù)類(lèi)型間的運(yùn)算
1. String屬于引用數(shù)據(jù)類(lèi)型,翻譯為:字符串
2. 聲明String類(lèi)型變量時(shí),使用一對(duì)""
3. String可以和8種基本數(shù)據(jù)類(lèi)型變量做運(yùn)算,且運(yùn)算只能是連接運(yùn)算:+
4. 運(yùn)算的結(jié)果仍然是String類(lèi)型
3.6、控制臺(tái)輸入
讀取控制臺(tái)上輸入的數(shù)據(jù)。
//step1:導(dǎo)入Scanenr這個(gè)掃描器
import java.util.Scanner;
//step2:創(chuàng)建Scanner掃描器
Scannersc=newScanner(System.in);
//step3:使用sc調(diào)用對(duì)應(yīng)的方法,來(lái)讀取鍵盤(pán)的輸入
intnum1=sc.nextInt();//讀取一個(gè)int類(lèi)型的數(shù)據(jù)
doublenum2=sc.nextDouble();//讀取一個(gè)double類(lèi)型的數(shù)據(jù)
Stringstr=sc.next();//讀取一個(gè)String類(lèi)型的數(shù)據(jù)
charc=sc.next().charAt(0);//讀取一個(gè)char類(lèi)型的字符串