深圳做app網(wǎng)站制作湘潭網(wǎng)站seo磐石網(wǎng)絡(luò)
標(biāo)識(shí)符和關(guān)鍵字的區(qū)別是什么,常用的關(guān)鍵字有哪些?
標(biāo)識(shí)符標(biāo)識(shí)符就是當(dāng)我們給變量,方法,類(lèi)命名時(shí)候的名字,而被賦予特殊含義的標(biāo)識(shí)符就是關(guān)鍵字。例如生活中,當(dāng)我們需要開(kāi)一家店時(shí)候,我們不能將其命名成醫(yī)院或者警察局這樣的具有特殊意義的。
在java中的常用關(guān)鍵字有
訪問(wèn)控制 private、protected、public
類(lèi)、方法、變量修飾符 abstract 、class、extends、final、implements、interface、natice、new、static、synchronized、transient、volatile、enum
程序控制 if、else、for、do、while、return、break、continue、switch、case、default
錯(cuò)誤處理 try、 except、 finally、 throw 、throws
包相關(guān) package、import
變量引用 super 、this、void
等等
自增自減運(yùn)算符
如i++和++i, 兩者雖然都是讓i的值加一,但++放在前邊就表示先自增再賦值而++放在后面就表示先賦值再++。
這里有段代碼
public class IncrementExample { public static void main(String[] args) { int i = 5; int j = 5; int postIncrement = i++; // i++ 先返回i的值,然后i自增 int preIncrement = ++j; // ++j 先自增,然后返回j的新值 System.out.println("Post-increment result: " + postIncrement); // 輸出5,因?yàn)閕++先返回了i的原始值 System.out.println("i after post-increment: " + i); // 輸出6,因?yàn)閕已經(jīng)自增 System.out.println("Pre-increment result: " + preIncrement); // 輸出6,因?yàn)?#43;+j先自增了j System.out.println("j after pre-increment: " + j); // 輸出6,因?yàn)閖已經(jīng)自增 }
}
有關(guān)于移位運(yùn)算符,移位運(yùn)算符是最常用的位置之一,移位運(yùn)算符在jdk和框架源碼之中都應(yīng)用廣泛,例如HashMap中的hash方法的源碼中就用到了移位運(yùn)算符:
static final int hash(object key){int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
key.hashCode():返回散列值也就是hashcode,^:按位異或,>>>:無(wú)符號(hào)右移,忽略符號(hào)位,空位都以0補(bǔ)齊。
java中有三個(gè)移位運(yùn)算符,左移<<、右移>>、無(wú)符號(hào)右移>>>。由于float和double在二進(jìn)制中表現(xiàn)比較特殊,因此不能進(jìn)行移位操作。移位操作符實(shí)際上支持的類(lèi)型只有int和long,編譯器對(duì)byte,short,char進(jìn)行移位時(shí)候都會(huì)將其轉(zhuǎn)換為int。
如果移位的位數(shù)超過(guò)數(shù)值所占有的位數(shù)會(huì)怎樣?
當(dāng)int類(lèi)型左移位數(shù)或者右移位數(shù)大于等于32位操作時(shí)候,會(huì)求余后再進(jìn)行左移或者右移操作,也就是左移32位相當(dāng)于不進(jìn)行移位操作(32%32=0),左移42位(42%32=10)也就是左移10位,當(dāng)long類(lèi)型進(jìn)行左移或者右移操作時(shí)候,由于long對(duì)應(yīng)的二進(jìn)制位是64位,因此求余的基數(shù)也變成了64.
continue、break、return的區(qū)別是什么?
continue:指的是跳出當(dāng)前的這次循環(huán),繼續(xù)下一次循環(huán)。
break:指跳出整個(gè)循環(huán)體,繼續(xù)執(zhí)行循環(huán)下面的語(yǔ)句。
return用于跳出所在方法,結(jié)束該方法的運(yùn)行。return一般有兩種用法:
1.只用使用return結(jié)束方法執(zhí)行。用于沒(méi)有返回值函數(shù)的方法。
2.return value用于返回一個(gè)特定值。
public class NestedLoopExample { public static void main(String[] args) { for (int i = 0; i < 3; i++) { // 外部循環(huán) System.out.println("外部循環(huán): " + i); for (int j = 0; j < 2; j++) { // 內(nèi)部循環(huán) if (j == 1) { break; // 當(dāng)j等于1時(shí),跳出內(nèi)部循環(huán) } System.out.println("內(nèi)部循環(huán): " + j); } System.out.println("內(nèi)部循環(huán)結(jié)束后,外部循環(huán)繼續(xù)"); } }
}
以上代碼輸出結(jié)果:
外部循環(huán): 0
內(nèi)部循環(huán): 0
內(nèi)部循環(huán)結(jié)束后,外部循環(huán)繼續(xù)
外部循環(huán): 1
內(nèi)部循環(huán): 0
內(nèi)部循環(huán)結(jié)束后,外部循環(huán)繼續(xù)
外部循環(huán): 2
內(nèi)部循環(huán): 0
內(nèi)部循環(huán)結(jié)束后,外部循環(huán)繼續(xù)