Java關(guān)鍵字

      網(wǎng)友投稿 837 2025-03-31

      關(guān)鍵字

      (1).Java 有沒有 goto

      goto 是 Java 中的保留字,在目前版本的 Java 中沒有使用。

      (2).final 有什么用?

      用于修飾類、屬性和方法;

      被final修飾的類不可以被繼承

      被final修飾的方法不可以被重寫

      被final修飾的變量不可以被改變,被final修飾不可變的是變量的引用,而不是引用指向的內(nèi)容,引用指向的內(nèi)容是可以改變的

      (3).final finally finalize區(qū)別

      final可以修飾類、變量、方法,修飾類表示該類不能被繼承、修飾方法表示該方法不能被重寫、修飾變量表示該變量是一個常量不能被重新賦值。

      finally一般作用在try-catch代碼塊中,在處理異常的時候,通常我們將一定要執(zhí)行的代碼方法finally代碼塊中,表示不管是否出現(xiàn)異常,該代碼塊都會執(zhí)行,一般用來存放一些關(guān)閉資源的代碼。

      finalize是一個方法,屬于Object類的一個方法,而Object類是所有類的父類,該方法一般由垃圾回收器來調(diào)用,當我們調(diào)用System.gc() 方法的時候,由垃圾回收器調(diào)用finalize(),回收垃圾,一個對象是否可回收的最后判斷。

      (4).this關(guān)鍵字的用法

      this是自身的一個對象,代表對象本身,可以理解為:指向?qū)ο蟊旧淼囊粋€指針。

      this的用法在java中大體可以分為3種:

      ①. 普通的直接引用,this相當于是指向當前對象本身。

      ②. 形參與成員名字重名,用this來區(qū)分:

      public Person(String name, int age) { this.name = name; this.age = age; }

      ③. 引用本類的構(gòu)造函數(shù)

      class Person{ private String name; private int age; public Person() { } public Person(String name) { this.name = name; } public Person(String name, int age) { this(name); this.age = age; } }

      (5).super關(guān)鍵字的用法

      Java關(guān)鍵字

      super可以理解為是指向自己超(父)類對象的一個指針,而這個超類指的是離自己最近的一個父類。

      super也有三種用法:

      ①. 普通的直接引用:與this類似,super相當于是指向當前對象的父類的引用,這樣就可以用super.xxx來引用父類的成員。

      ②. 子類中的成員變量或方法與父類中的成員變量或方法同名時,用super進行區(qū)分

      class Person{ protected String name; public Person(String name) { this.name = name; } } class Student extends Person{ private String name; public Student(String name, String name1) { super(name); this.name = name1; } public void getInfo(){ System.out.println(this.name); //Child System.out.println(super.name); //Father } } public class Test { public static void main(String[] args) { Student s1 = new Student("Father","Child"); s1.getInfo(); } }

      ③. 引用父類構(gòu)造函數(shù)

      super(參數(shù)):調(diào)用父類中的某一個構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語句)。

      this(參數(shù)):調(diào)用本類中另一種形式的構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語句)。

      (6).this與super的區(qū)別

      super: 它引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數(shù)據(jù)或函數(shù),基類與派生類中有相同成員定義時如:super.變量名 super.成員函數(shù)據(jù)名(實參)

      this:它代表當前對象名(在程序中易產(chǎn)生二義性之處,應(yīng)使用this來指明當前對象;如果函數(shù)的形參與類中的成員數(shù)據(jù)同名,這時需用this來指明成員變量名)

      super()和this()類似,區(qū)別是,super()在子類中調(diào)用父類的構(gòu)造方法,this()在本類內(nèi)調(diào)用本類的其它構(gòu)造方法。

      super()和this()均需放在構(gòu)造方法內(nèi)第一行

      盡管可以用this調(diào)用一個構(gòu)造器,但卻不能調(diào)用兩個。

      this和super不能同時出現(xiàn)在一個構(gòu)造函數(shù)里面,因為this必然會調(diào)用其它的構(gòu)造函數(shù),其它的構(gòu)造函數(shù)必然也會有super語句的存在,所以在同一個構(gòu)造函數(shù)里面有相同的語句,就失去了語句的意義,編譯器也不會通過。

      this()和super()都指的是對象,所以,均不可以在static環(huán)境中使用。包括:static變量,static方法,static語句塊。

      從本質(zhì)上講,this是一個指向本對象的指針, 然而super是一個Java關(guān)鍵字。

      (7).static存在的主要意義

      static的主要意義是在于創(chuàng)建獨立于具體對象的域變量或者方法。以致于即使沒有創(chuàng)建對象,也能使用屬性和調(diào)用方法!

      static關(guān)鍵字還有一個比較關(guān)鍵的作用就是用來形成靜態(tài)代碼塊以優(yōu)化程序性能。static塊可以置于類中的任何地方,類中可以有多個static塊。在類初次被加載的時候,會按照static塊的順序來執(zhí)行每個static塊,并且只會執(zhí)行一次。

      為什么說static塊可以用來優(yōu)化程序性能,是因為它的特性:只會在類加載的時候執(zhí)行一次。因此,很多時候會將一些只需要進行一次的初始化操作都放在static代碼塊中進行。

      (8).static的獨特之處

      ①. 被static修飾的變量或者方法是獨立于該類的任何對象,也就是說,這些變量和方法不屬于任何一個實例對象,而是被類的實例對象所共享。

      怎么理解 “被類的實例對象所共享” 這句話呢?就是說,一個類的靜態(tài)成員,它是屬于大伙的【大伙指的是這個類的多個對象實例,我們都知道一個類可以創(chuàng)建多個實例!】,所有的類對象共享的,不像成員變量是自個的【自個指的是這個類的單個實例對象】…我覺得我已經(jīng)講的很通俗了,你明白了咩?

      ②. 在該類被第一次加載的時候,就會去加載被static修飾的部分,而且只在類第一次使用時加載并進行初始化,注意這是第一次用就要初始化,后面根據(jù)需要是可以再次賦值的。

      ③. static變量值在類加載的時候分配空間,以后創(chuàng)建類對象的時候不會重新分配。賦值的話,是可以任意賦值的!

      ④. 被static修飾的變量或者方法是優(yōu)先于對象存在的,也就是說當一個類加載完畢之后,即便沒有創(chuàng)建對象,也可以去訪問。

      (9).static應(yīng)用場景

      因為static是被類的實例對象所共享,因此如果某個成員變量是被所有對象所共享的,那么這個成員變量就應(yīng)該定義為靜態(tài)變量。

      因此比較常見的static應(yīng)用場景有:

      修飾成員變量

      修飾成員方法

      靜態(tài)代碼塊

      修飾類【只能修飾內(nèi)部類也就是靜態(tài)內(nèi)部類】

      靜態(tài)導(dǎo)包

      (10).static注意事項

      靜態(tài)只能訪問靜態(tài)。

      非靜態(tài)既可以訪問非靜態(tài)的,也可以訪問靜態(tài)的。

      Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:wps office頁碼怎么連續(xù)?
      下一篇:OA流程是怎樣的?怎樣設(shè)置OA流程
      相關(guān)文章
      午夜亚洲AV日韩AV无码大全| 亚洲精品无码专区在线在线播放| 亚洲AV乱码久久精品蜜桃| 国产精品亚洲视频| 亚洲欧洲日产国码高潮αv| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲伊人久久精品影院| 亚洲最大av无码网址| 自拍偷自拍亚洲精品情侣| 亚洲夜夜欢A∨一区二区三区| 在线观看亚洲精品国产| 亚洲一区无码中文字幕| 亚洲av永久无码制服河南实里 | 亚洲AV日韩精品久久久久久| 亚洲va中文字幕无码久久| 亚洲AV无码专区国产乱码4SE| 亚洲av中文无码乱人伦在线r▽| 亚洲AV无码精品无码麻豆| 久久精品亚洲综合专区| 亚洲人成网www| 老司机亚洲精品影院无码| 亚洲综合免费视频| 久久久久精品国产亚洲AV无码| 亚洲人xxx日本人18| 亚洲人成色4444在线观看| 蜜芽亚洲av无码一区二区三区| 在线精品自拍亚洲第一区| 中文字幕在亚洲第一在线| 亚洲成AV人片在线观看WWW| 亚洲人成在线电影| 亚洲国产成人91精品| 中文字幕无码亚洲欧洲日韩| 色噜噜噜噜亚洲第一| 亚洲一级片免费看| 亚洲国产精品高清久久久| 久久精品国产亚洲av麻豆小说| 亚洲另类精品xxxx人妖| 亚洲欧好州第一的日产suv| 亚洲AV无码成人精品区大在线| 亚洲综合另类小说色区| 亚洲欧洲日产国码久在线观看|