日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java常见关键字解析

發布時間:2023/12/19 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 Java常见关键字解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java常見關鍵字解析

Java
關鍵字

Java關鍵字與保留字

  1,Java 關鍵字列表 (依字母排序 共50組):

   abstract, assert, boolean, break, byte, case, catch, char, class, const(保留關鍵字), continue, default, do, double, else, enum, extends, final, finally, float, for, goto(保留關鍵字), if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

  2,保留字列表 (依字母排序 共14組),Java保留字是指現有Java版本尚未使用,但以后版本可能會作為關鍵字使用:true,false,null,byValue, cast, future, generic, inner, operator, outer, rest,var, goto (保留關鍵字) , const (保留關鍵字)

  3、goto和const是保留字也是關鍵字。

java標識符

標識符就是用于Java程序中變量,類,方法等命名的符號,
1Java標識符只能由數字、字母、下劃線_或$符號以及Unicode字符集組成
[2]Java標識符必須以字母、下劃線“_”或“$”符號以及Unicode字符集開頭
[3]Java標識符不可以是Java關鍵字、保留字(const、goto)和字面量(true、false、null)
[4]Java標識符區分大小寫,是大小寫敏感的

1、 構造器

1、 this關鍵字

this關鍵字只能在方法內部使用,表示對“調用方法的那個對象”的引用。
類方法不能用this調用。

2、 static關鍵字

static方法就是沒有this的方法。
在static方法內部不能調用非靜態方法;而在非靜態方法中是可以調用靜態方法的,且可以在沒有創建任何對象的前提下。
static不能修飾成員變量,即static修飾字段的語句行不能出現在main方法及其它方法中。Java中靜態變量只能在類主體中定義,不能在方法中定義。 靜態變量屬于類所有而不屬于方法。

2、 訪問控制權限



2.1、 private:你無法訪問的

  只能當前類能夠訪問private修飾的變量或方法

2.2、 default:包訪問權限(默認default)

  同一個包內的所有類都可以訪問沒有修飾符(即默認)的變量或方法。即當前的包中的所有其他類對那個成員都有訪問權限,但對于包之外的類,卻是不能訪問該成員的。

  取得對某成員訪問權的途徑有如下方式:

   1. 用public修飾成員,任何人在任何地方都有訪問權限
   2. 不加訪問權限修飾詞,并將其他類放在同一包內
   3. 繼承,繼承來的類可以訪問父類的public成員和protected成員
   4. 提供get和set方法,以讀取和改變數值(JavaBeans的基本原理)

2.3、 protected:繼承訪問權限

  基類的protected成員只有派生類能夠訪問(同一包內的其他類也可以訪問)

2.4、 public:接口訪問權限

  所有的類都可以訪問。對于接口來說只能使用public修飾。

2.5、 類的訪問權限

為了控制某個類的訪問權限

修飾詞必須出現于class之前(默認修飾(去掉public)為包訪問控制權限)
每個編譯單元(文件)都只能有一個public類。
public類的名稱必須與含有該編譯單元的文件名相同(包括大小寫)
編譯單元內完全不帶public修飾也有可能。在這種情況下可以隨便對文件命名。

注意

類不可以是private,及protected的。只能是public或默認包訪問權限。(實際上內部類可以使private或protected,但這是一個特例)

如果不希望其他任何人對該類有訪問權限,可以把所有的構造器都指定為private,從而阻止任何人創建該類的對象。

在這種情況下可以在該類的static成員內部創建,例如:

		//第一種方式
			class Soup1{
				private Soup1(){
				}
				public static Soup1 makeSoup(){
					return new Soup1();     //通過靜態成員創建該類的對象
				}
			}
		//第二種方式(用到了設計模式-單例模式)
			class Soup2{
				private Soup2(){
				}
				private static Soup2 ps1 = new Soup2();

				public static Soup2 acess(){
					return new Soup1();     //通過靜態成員創建該類的對象
				}
				pubblic void f(){

				}
			}

3、 final關鍵字

3.1、 final數據

1、 final關鍵字可以用于成員變量、本地變量、方法以及類。
2、 final成員變量必須在聲明的時候初始化或者在構造器中初始化,否則就會報編譯錯誤。
3、 你不能夠對final變量再次賦值。
4、 本地變量必須在聲明時賦值。
5、 在匿名類中所有變量都必須是final變量。
6、 final方法不能被重寫。
7、 final類不能被繼承。
8、 沒有在聲明時初始化final變量的稱為空白final變量(blank final variable),它們必須在構造器中初始化,或者調用this()初始化。不這么做的話,編譯器會報錯“final變量(變量名)需要進行初始化”。

final+基本數據類型:在Java中對基本數據類型用final修飾表示這類變量可在編譯時執行計算式,減輕運行負擔,但在定義時必須對其進行賦值。

final+static+基本類型數據:即編譯期常量,只占據一段不能改變的存儲空間。將用大寫表示,并使下劃線分隔各個單詞。

final+對象或數組(數組也是一個對象):final使引用恒定不變。一旦引用被初始化指向一個對象,就無法把它改為指向另一個對象。但對象自身是可變的。

注意:不能因為某個數據是final的就認為它在程序編譯完成時就知道他的值了,也可能實在程序執行運行時才知道他的值的。例如private final value = rand.nextInt(20),在編譯完成時并不知道value的值,在程序執行運行后才知道它的值的。

空白final:例如private final int num;
final在使用時一般在定義處賦值,而對于這種空白final定義類型沒有在定義處賦值就必須在構造器中賦值。

final參數:當final用來修飾參數時,
若修飾的參數為基本類型參數(final int i),則基本類型的值不能被改變,即只能讀不能執行i++,i--等改變i的值的操作。否則不能編譯。
若修飾的參數為對象(final Car car)時,不能更改指向的對象的參數引用;如car = new Car()就是錯誤的用法。

3.2、 final方法

final修飾的方法,無法被覆蓋。
注意:其實類中的所有private方法都隱式地指定為final的。所以private final void f() 這種寫法編譯器不會不報錯的。 由于private修飾的方法子類是訪問不到的,子類更加不可能去覆蓋了,所以與final修飾的方法無法被覆蓋并不沖突。

3.3、 final類

final修飾的類不能被繼承。
final修飾的類中的類成員跟普通的類的類成員沒有區別;但是final類中的方法都是隱式指定為final類型的

String

String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);

String str1 = "hello";這里的str1指的是方法區的字符串常量池中的“hello”,編譯時期就知道的; String str2 = "he" + new String("llo");這里的str2必須在運行時才知道str2是什么,所以它是指向的是堆里定義的字符串“hello”,所以這兩個引用是不一樣的。
如果用str1.equal(str2),那么返回的是True;因為兩個字符串的內容一樣。

instanceof

o instanceof Class 若instanceof左邊的參數為null,則返回FALSE。

transient

Java的Serializable提供了一種序列化對象實例的機制。當序列化對象時,可能有一個特殊的對象數據成員,我們不想用Serializable機制來保存它。為了在一個特定對象的一個域上關閉Serializable,可以在這個域前加上關鍵字transient。
transient是Java語言的關鍵字,用來表示一個域不是該對象序列化的一部分。當一個對象被序列化的時候,transient型變量的值不包括在序列化的表示中,然而非transient型的變量是被包括進去的。

總結

以上是生活随笔為你收集整理的Java常见关键字解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。