Java中的關(guān)鍵字_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java中常用關(guān)鍵字:
與數(shù)據(jù)類型相關(guān)(10)

與流程控制相關(guān)(13)
if: 表示條件判斷,一般用法if(關(guān)系表達(dá)式),后跟else或{……}
else: 條件轉(zhuǎn)折,如if (關(guān)系表達(dá)式){語(yǔ)句塊1}else{語(yǔ)句塊2},如果關(guān)系表達(dá)式的值為true,則執(zhí)行語(yǔ)句塊1,否則執(zhí)行語(yǔ)句塊2.
do……while……:do和while一般一起使用,用于表示循環(huán)語(yǔ)句。do{……}while(關(guān)系表達(dá)式)……;當(dāng)關(guān)系表達(dá)式的值為true是繼續(xù)循環(huán)。
for:用于表示循環(huán),for循環(huán)是最常使用的循環(huán),格式for(表達(dá)式a; 表達(dá)式b; 表達(dá)式c)括號(hào)里面的書通常用于控制循環(huán)的次數(shù),一般會(huì)用一個(gè)int類型的變量類計(jì)數(shù),如(int i=0; i<10; i++)表達(dá)式a用于流程控制的開始值,表達(dá)式b表示循環(huán)終止條件,表達(dá)式c用于計(jì)數(shù)。
switch(條件a)case……:switch和case合起來(lái)用于表示條件分支流程。如:
while(int c) {
case 1: {語(yǔ)句塊1}
case 2: {語(yǔ)句塊2}
……?????? ……
case n: {語(yǔ)句塊n}
default:exit(0);
}
如果c為1,則執(zhí)行語(yǔ)句塊1;如果c為2,則執(zhí)行語(yǔ)句塊2;以此類推,如果c為n,則執(zhí)行語(yǔ)句塊n。default表示除case以外出現(xiàn)的情況。
default:在switch……case……分支語(yǔ)句可知,default是在所有case條件下都不成立時(shí)使用。用于包表示s“rc”文件夾下的當(dāng)前包;如果用于類,表示只可被本文件內(nèi)的其它類訪問(wèn)。
break:用于結(jié)束本層循環(huán),或跳出某層循環(huán)。
continue:用于跳出本次循環(huán),而break跳出本層循環(huán)。Break和continue可以實(shí)現(xiàn)類似于C\C++中g(shù)oto語(yǔ)句的用法:
label0:
{
for (int k = 0; k < 10; k++) {
..........
label1:
for (int j = 0; j < 10; j++) {
................
break label0; //跳轉(zhuǎn)至label0
}
...........
label2:
for (int kk = 0; kk < 10; kk++) {
..............
break label0; //跳至label2
}
}
return:返回一個(gè)值,通常用于函數(shù)中,返回一個(gè)具有特定類型的值。如:
public int fuction()
{
int a;
……
return a;//返回int型的值
}
try……catch……finally……:用于異常處理,使用形式如:
try{
……
}catch(類型b){
……
}finally{
……
}
try{……}中放置可能會(huì)發(fā)生異常的的語(yǔ)句塊,catch(){……}用于抓住異常,{}定義當(dāng)出現(xiàn)異常時(shí)的處理方法。finally{……}表示不管異常是否發(fā)生,都得進(jìn)行finally{}中的處理。
與修飾符相關(guān)(12)
不同訪問(wèn)修飾符的訪問(wèn)權(quán)限
|
范圍
|
本類
|
同軟件包
|
不同包中子類
|
不同包且無(wú)繼承
|
作用(含義)
|
|
public
|
可以
|
可以
|
可以
|
可以
|
公有的
|
|
protect
|
可以
|
可以
|
可以
|
|
受保護(hù)的
|
|
default(無(wú)權(quán)限修飾符)
|
可以
|
可以
|
|
|
當(dāng)前的
|
|
private
|
可以
|
|
|
|
私有的
|
如:
一個(gè)".java"后綴名的文件里面只能一個(gè)public型的class類。如com.bjpowernode包下有HelloWorld.java 文件,該文件下有如下代碼:
package com.bjpowernode;
public class HelloWorld {
public void show() {
System.out.println("HelloWorld!");
}
}
在default包下有如下代碼:
import com.bjpowernode.*;//引入所需要的包里的所有類
public class Test {
public static void main(String args[]) {
HelloWorld h = new HelloWorld();
h.show();
}
}
此時(shí)運(yùn)行正常,結(jié)果:HelloWorld!
如果把public class HelloWorld改成privateclass HelloWorld則會(huì)運(yùn)行錯(cuò)誤,因?yàn)閜rivate是私有的不能被其他包內(nèi)的對(duì)象所引用。
final:(類似于C++中的const),用法如下:
a,final的變量的值不能被改變;
b,final的方法不能被重寫;
c,final的類不能被繼承。
void:空類型,用于函數(shù)前表示空返回值。
static:可用于定義靜態(tài)成員變量或方法
strictfp:意思是FP-strict,也就是說(shuō)精確浮點(diǎn)的意思。在Java虛擬機(jī)進(jìn)行浮點(diǎn)運(yùn)算時(shí),如果沒(méi)有指定strictfp關(guān)鍵字時(shí),Java的編譯器以及運(yùn)行環(huán)境在對(duì)浮點(diǎn)運(yùn)算的表達(dá)式是采取一種近似于我行我素的行為來(lái)完成這些操作,以致于得到的結(jié)果往往無(wú)法令你滿意。而一旦使用了strictfp來(lái)聲明一個(gè)類、接口或者方法時(shí),那么所聲明的范圍內(nèi)Java的編譯器以及運(yùn)行環(huán)境會(huì)完全依照浮點(diǎn)規(guī)范IEEE-754來(lái)執(zhí)行。因此如果你想讓你的浮點(diǎn)運(yùn)算更加精確,而且不會(huì)因?yàn)椴煌挠布脚_(tái)所執(zhí)行的結(jié)果不一致的話,那就請(qǐng)用關(guān)鍵字strictfp。
你可以將一個(gè)類、接口以及方法聲明為strictfp,但是不允許對(duì)接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字,例如下面的代碼:
1. 合法的使用關(guān)鍵字strictfp
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 錯(cuò)誤的使用方法
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}
一旦使用了關(guān)鍵字strictfp來(lái)聲明某個(gè)類、接口或者方法時(shí),那么在這個(gè)關(guān)鍵字所聲明的范圍內(nèi)所有浮點(diǎn)運(yùn)算都是精確的,符合IEEE-754規(guī)范的。例如一個(gè)類被聲明為strictfp,那么該類中所有的方法都是strictfp的。
abstract:抽象的意思,可以用定義抽象類,抽象函數(shù)。抽象類的用法規(guī)則如下:
a,用abstract關(guān)鍵字來(lái)修飾一個(gè)類時(shí),這個(gè)類叫做抽象類;用abstract來(lái)修飾一個(gè)方法時(shí),這個(gè)方法叫做抽象方法;
b,含有抽象方法的類必須被聲明為抽象類,抽象類必須被繼承,抽象方法必須被重寫;
c,抽象類不能被實(shí)例化;
d,抽象方法只需聲明,而不需實(shí)現(xiàn)。
transient: Java語(yǔ)言的關(guān)鍵字,用來(lái)表示一個(gè)域不是該對(duì)象串行化的一部分。當(dāng)一個(gè)對(duì)象被串行化的時(shí)候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進(jìn)去的。
使用對(duì)象:字段
介紹:字段不是對(duì)象持久的一部分,不應(yīng)該字段和對(duì)象一起串起。
synchronized:鎖定當(dāng)前對(duì)象,在執(zhí)行當(dāng)前這個(gè)對(duì)象時(shí)不應(yīng)許其他線程打斷插入。使用的方式有:
這是我在暑假學(xué)習(xí)做的筆記
(1),
class Timer {
private static int num = 0;
public synchronized void add(String name) { //執(zhí)行這個(gè)方法的過(guò)程中鎖定當(dāng)前對(duì)象。
num ++;
try {
Thread.sleep(1);
} catch( InterruptedException e) {
return;
}
System.out.println(name + ",你是第" + num +"使用Timer的線程。");
}
}
(2),
class Timer {
private static int num = 0;
public void add(String name) {
synchronized(this) { //鎖定大括號(hào)這個(gè)區(qū)域的代碼段
num ++;
try {
Thread.sleep(1);
} catch( InterruptedException e) {
return;
}
System.out.println(name + ",你是第" + num +"使用Timer的線程。");
}
}
}
volatile:volatile變量一個(gè)時(shí)間只有一個(gè)線程可以訪問(wèn)。 保證線程安全。
可以被寫入 volatile 變量的這些有效值獨(dú)立于任何程序的狀態(tài),包括變量的當(dāng)前狀態(tài)。
所以,Volatile 變量是一種非常簡(jiǎn)單但同時(shí)又非常脆弱的同步機(jī)制,它在某些情況下將提供優(yōu)于鎖的性能和伸縮性。
native:是用作java 和其他語(yǔ)言(如c++)進(jìn)行協(xié)作時(shí)用的也就是native 后的函數(shù)的實(shí)現(xiàn)不是用java寫的, native的意思就是通知操作系統(tǒng),這個(gè)函數(shù)你必須給我實(shí)現(xiàn),因?yàn)槲乙褂谩K詎ative關(guān)鍵字的函數(shù)都是操作系統(tǒng)實(shí)現(xiàn)的, java只能調(diào)用。
與動(dòng)作相關(guān)(10)
package:打包,把java程序?qū)懺谝粋€(gè)包中。
import:引入報(bào)名,用法:
a,寫全包名:jsxt.java140.Cat c = new com.bjsxt.java140.Cat
a,引入一個(gè)包中的具體某個(gè)對(duì)象:xt.java140.Cat;
b,引入一個(gè)包中的所有象:import com.bjsxt.java140.Cat.*;
throw:拋出用戶自己定義的異常
throws:拋出系統(tǒng)異常
extends:繼承(類繼承類,或接口繼承接口)
implements:實(shí)現(xiàn),通過(guò)類來(lái)實(shí)現(xiàn)接口
this:是指向該對(duì)象自身的標(biāo)示符
super:調(diào)用基類的構(gòu)造函數(shù)
instanceof:判斷某個(gè)對(duì)象是否為自己所要的對(duì)象
new:用于新建一個(gè)對(duì)象,即類的實(shí)例化
其他(5)
true:表示boolean類型的真值
false:表示boolean類型的假值,即不成立的情況
null:表示空值,如果是對(duì)象,則表示此對(duì)象為空,如果是數(shù)據(jù)類型,在表示相應(yīng)數(shù)據(jù)類型的默認(rèn)值,如int的默認(rèn)值為0。
goto:C\C++中實(shí)現(xiàn)無(wú)條件轉(zhuǎn)向語(yǔ)句,為了結(jié)構(gòu)化程序設(shè)計(jì)java中現(xiàn)在一般不用。
const:和const一樣,在Java中,const是作為保留字以備擴(kuò)充??梢杂胒inal替換const,一般C++中用const,java中用final。
相關(guān)文章
eclipse+maven+spring mvc項(xiàng)目基本搭建過(guò)程
這篇文章主要介紹了eclipse+maven+spring mvc項(xiàng)目基本搭建過(guò)程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Java開發(fā)中讀取XML與properties配置文件的方法
這篇文章主要介紹了Java開發(fā)中讀取XML與properties配置文件的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
Java 中的 DataInputStream 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
DataInputStream 是數(shù)據(jù)輸入流。它繼承于FilterInputStream。接下來(lái)通過(guò)本文給大家介紹Java 中的 DataInputStream的相關(guān)知識(shí),需要的朋友參考下吧2017-05-05
使用C3P0改造JDBC對(duì)數(shù)據(jù)庫(kù)的連接
這篇文章主要為大家詳細(xì)介紹了使用C3P0改造JDBC對(duì)數(shù)據(jù)庫(kù)的連接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
最新springboot中必須要了解的自動(dòng)裝配原理
本文給大家介紹springboot中必須要了解的自動(dòng)裝配原理,spring-boot-dependencies:核心依賴都在父工程中,這個(gè)里面主要是管理項(xiàng)目的資源過(guò)濾及插件,本文對(duì)springboot自動(dòng)裝配原理給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-05-05
原來(lái)Java接口多實(shí)現(xiàn)還可以這樣玩
JAVA中類不直接支持多繼承,因?yàn)闀?huì)出現(xiàn)調(diào)用的不確定性,所以JAVA將多繼承機(jī)制進(jìn)行改良,在JAVA中變成了多實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于Java接口多實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2021-09-09
Java并發(fā)編程中的ReentrantLock類詳解
這篇文章主要介紹了Java并發(fā)編程中的ReentrantLock類詳解,ReentrantLock是juc.locks包中的一個(gè)獨(dú)占式可重入鎖,相比synchronized,它可以創(chuàng)建多個(gè)條件等待隊(duì)列,還支持公平/非公平鎖、可中斷、超時(shí)、輪詢等特性,需要的朋友可以參考下2023-12-12
SpringBoot整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄的示例代碼
本文主要介紹了SpringBoot整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

