Java 語言中Object 類和System 類詳解
Object是java所有類的基類,是整個(gè)類繼承結(jié)構(gòu)的頂端,也是最抽象的一個(gè)類。大家天天都在使用toString()、equals()、hashCode()、waite()、notify()、getClass()等方法,或許都沒有意識到是Object的方法,也沒有去看Object還有哪些方法以及思考為什么這些方法要放到Object中。
一、Java Object類簡介-所有類的超類
Object 是 Java 類庫中的一個(gè)特殊類,也是所有類的父類。也就是說,J ava 允許把任何類型的對象賦給 Object 類型的變量 。當(dāng)一個(gè)類被定義后,如果沒有指定繼承的父類,那么默認(rèn)父類就是 Object 類。因此,以下兩個(gè)類表示的含義是一樣的。
public class MyClass{…}
等價(jià)于
public class MyClass extends Object {…}
1.1、常用方法
由于 Java 所有的類都是 Object 類的子類,所以任何 Java 對象都可以調(diào)用 Object 類的方法。常見的方法:
Object clone() 創(chuàng)建與該對象的類相同的新對象
boolean equals(Object) 比較兩對象是否相等
void finalize() 當(dāng)垃圾回收器確定不存在對該對象的更多引用時(shí),對象垃圾回收器調(diào)用該方法
Class getClass() 返回一個(gè)對象運(yùn)行時(shí)的實(shí)例類
int hashCode() 返回該對象的散列碼值
void notify() 激活等待在該對象的監(jiān)視器上的一個(gè)線程
void notifyAll() 激活等待在該對象的監(jiān)視器上的全部線程
String toString() 返回該對象的字符串表示
void wait() 在其他線程調(diào)用此對象的 notify() 方法或 notifyAll() 方法前,導(dǎo)致當(dāng)前線程等待
二、Java System類詳解
System 類位于 java.lang 包,代表當(dāng)前 Java 程序的運(yùn)行平臺,系統(tǒng)級的很多屬性和控制方法都放置在該類的內(nèi)部。由于該類的構(gòu)造方法是 private 的,所以無法創(chuàng)建該類的對象,也就是無法實(shí)例化該類。
System 類提供了一些類變量和類方法,允許直接通過 System 類來調(diào)用這些類變量和類方法。
System 類有 3 個(gè)靜態(tài)成員變量,分別是 PrintStream out、InputStream in 和 PrintStream err。
2.1、PrintStream out 標(biāo)準(zhǔn)輸出流
此流已打開并準(zhǔn)備接收輸出數(shù)據(jù)。通常,此流對應(yīng)于顯示器輸出或者由主機(jī)環(huán)境或用戶指定的另一個(gè)輸出目標(biāo)。
例如,編寫一行輸出數(shù)據(jù)的典型方式是:
System.out.println(data);
其中,println 方法是屬于流類 PrintStream 的方法,而不是 System 中的方法。
2.2、InputStream in 標(biāo)準(zhǔn)輸入流
此流已打開并準(zhǔn)備提供輸入數(shù)據(jù)。通常,此流對應(yīng)于鍵盤輸入或者由主機(jī)環(huán)境或用戶指定的另一個(gè)輸入源。
2.3、PrintStream err 標(biāo)準(zhǔn)的錯(cuò)誤輸出流
其語法與 System.out 類似,不需要提供參數(shù)就可輸出錯(cuò)誤信息。也可以用來輸出用戶指定的其他信息,包括變量的值。
到此這篇關(guān)于Java 語言中Object 類和System 類詳解的文章就介紹到這了,更多相關(guān)Java 語言O(shè)bject 類和System 類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot?+?EasyExcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出
這篇文章主要介紹了Spring?Boot+EasyExcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
Java使用自定義注解+反射實(shí)現(xiàn)字典轉(zhuǎn)換代碼實(shí)例
這篇文章主要介紹了Java使用自定義注解+反射實(shí)現(xiàn)字典轉(zhuǎn)換代碼實(shí)例,注解是一種能被添加到j(luò)ava代碼中的元數(shù)據(jù),類、方法、變量、參數(shù)和包都可以用注解來修飾,注解對于它所修飾的代碼并沒有直接的影響,需要的朋友可以參考下2023-09-09
SpringBoot自動(dòng)配置實(shí)現(xiàn)流程詳細(xì)分析
這篇文章主要介紹了SpringBoot自動(dòng)配置原理分析,SpringBoot是我們經(jīng)常使用的框架,那么你能不能針對SpringBoot實(shí)現(xiàn)自動(dòng)配置做一個(gè)詳細(xì)的介紹。如果可以的話,能不能畫一下實(shí)現(xiàn)自動(dòng)配置的流程圖。牽扯到哪些關(guān)鍵類,以及哪些關(guān)鍵點(diǎn)2022-12-12
解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題
這篇文章主要給大家解決了IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題,文中有詳細(xì)的解決步驟,如果有遇到一樣問題的小伙伴,可以參考閱讀本文2023-09-09
Java數(shù)據(jù)庫連接池的幾種配置方法(以MySQL數(shù)據(jù)庫為例)
這篇文章主要介紹了Java數(shù)據(jù)庫連接池的幾種配置方法(以MySQL數(shù)據(jù)庫為例) 的相關(guān)資料,需要的朋友可以參考下2016-07-07
Idea工具中創(chuàng)建 SpringBoot工程及入門詳解
這篇文章主要介紹了Idea工具中創(chuàng)建 SpringBoot工程及入門分析詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02

