Java 語言中Object 類和System 類詳解
Object是java所有類的基類,是整個類繼承結(jié)構(gòu)的頂端,也是最抽象的一個類。大家天天都在使用toString()、equals()、hashCode()、waite()、notify()、getClass()等方法,或許都沒有意識到是Object的方法,也沒有去看Object還有哪些方法以及思考為什么這些方法要放到Object中。
一、Java Object類簡介-所有類的超類
Object 是 Java 類庫中的一個特殊類,也是所有類的父類。也就是說,J ava 允許把任何類型的對象賦給 Object 類型的變量 。當一個類被定義后,如果沒有指定繼承的父類,那么默認父類就是 Object 類。因此,以下兩個類表示的含義是一樣的。
public class MyClass{…}
等價于
public class MyClass extends Object {…}
1.1、常用方法
由于 Java 所有的類都是 Object 類的子類,所以任何 Java 對象都可以調(diào)用 Object 類的方法。常見的方法:
Object clone() 創(chuàng)建與該對象的類相同的新對象
boolean equals(Object) 比較兩對象是否相等
void finalize() 當垃圾回收器確定不存在對該對象的更多引用時,對象垃圾回收器調(diào)用該方法
Class getClass() 返回一個對象運行時的實例類
int hashCode() 返回該對象的散列碼值
void notify() 激活等待在該對象的監(jiān)視器上的一個線程
void notifyAll() 激活等待在該對象的監(jiān)視器上的全部線程
String toString() 返回該對象的字符串表示
void wait() 在其他線程調(diào)用此對象的 notify() 方法或 notifyAll() 方法前,導(dǎo)致當前線程等待
二、Java System類詳解
System 類位于 java.lang 包,代表當前 Java 程序的運行平臺,系統(tǒng)級的很多屬性和控制方法都放置在該類的內(nèi)部。由于該類的構(gòu)造方法是 private 的,所以無法創(chuàng)建該類的對象,也就是無法實例化該類。
System 類提供了一些類變量和類方法,允許直接通過 System 類來調(diào)用這些類變量和類方法。
System 類有 3 個靜態(tài)成員變量,分別是 PrintStream out、InputStream in 和 PrintStream err。
2.1、PrintStream out 標準輸出流
此流已打開并準備接收輸出數(shù)據(jù)。通常,此流對應(yīng)于顯示器輸出或者由主機環(huán)境或用戶指定的另一個輸出目標。
例如,編寫一行輸出數(shù)據(jù)的典型方式是:
System.out.println(data);
其中,println 方法是屬于流類 PrintStream 的方法,而不是 System 中的方法。
2.2、InputStream in 標準輸入流
此流已打開并準備提供輸入數(shù)據(jù)。通常,此流對應(yīng)于鍵盤輸入或者由主機環(huán)境或用戶指定的另一個輸入源。
2.3、PrintStream err 標準的錯誤輸出流
其語法與 System.out 類似,不需要提供參數(shù)就可輸出錯誤信息。也可以用來輸出用戶指定的其他信息,包括變量的值。
到此這篇關(guān)于Java 語言中Object 類和System 類詳解的文章就介紹到這了,更多相關(guān)Java 語言O(shè)bject 類和System 類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows環(huán)境使用bat腳本啟動Java服務(wù)的過程
Java項目一般會被打包成jar后啟動,在windows系統(tǒng)中可以通過終端窗口cmd啟動jar包,即在jar包所在的目錄中打開cmd,或在cmd中進入到j(luò)ar包目錄,這篇文章主要介紹了Windows環(huán)境使用bat腳本啟動Java服務(wù),需要的朋友可以參考下2023-08-08MyBatis批量插入的五種方式小結(jié)(MyBatis以集合方式批量新增)
本文主要介紹了MyBatis批量插入的五種方式小結(jié)(MyBatis以集合方式批量新增),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Spring Data JPA中的Specification動態(tài)查詢詳解
Specification是一個設(shè)計模式,用于企業(yè)級應(yīng)用開發(fā)中,其主要目的是將業(yè)務(wù)規(guī)則從業(yè)務(wù)邏輯中分離出來,在數(shù)據(jù)查詢方面,Specification可以定義復(fù)雜的查詢,使其更易于重用和測試,這篇文章主要介紹了Spring Data JPA中的Specification動態(tài)查詢詳解,需要的朋友可以參考下2023-07-07Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解
這篇文章主要介紹了Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-05-05springboot2.0和springcloud Finchley版項目搭建(包含eureka,gateWay,F(xiàn)re
這篇文章主要介紹了springboot2.0和springcloud Finchley版項目搭建(包含eureka,gateWay,F(xiàn)reign,Hystrix),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05springboot v2.0.3版本多數(shù)據(jù)源配置方法
這篇文章主要介紹了springboot v2.0.3版本多數(shù)據(jù)源配置方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-11-11