excel表如何根據(jù)顏色排序(excel表如何按照顏色排序)
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)鍵字的用法
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)容。