日本伊人精品一区二区三区观看方式,亚洲一区二区久久久久久,亚洲精品无吗,欧美日韩一区二区高清

有考網有考網合作機構>南京培訓學校>南京雨花臺軟件谷達內IT教育培訓
南京雨花臺軟件谷達內IT教育培訓
全國統一學習專線 8:30-21:00
位置:有考網 > 計算機類 > Java開發 > > 學習Java開發有哪些技巧?  正文

學習Java開發有哪些技巧?

發布時間:2021-04-15 15:20:11來源:轉載

如何才是快速轉行成功Java技巧?Java學習需要我們制定Java學習路線,如果你想快速轉行學習Java技術開發,有哪些技巧呢?今天小編就和你一起來探討一下。

一、基本概念

JVM:Java虛擬機,負責將編譯產生的字節碼轉換為特定機器代碼,實現一次編譯多處執行;

JRE:Java運行時環境,包含了Java虛擬機jvm,Java基礎類庫。是使用Java語言編寫的程序運行所需要的軟件環境;

JDK:Java開發工具包,是編寫Java程序所需的開發工具。JDK包含了JRE,同時還包含了編譯器Javac,調試和分析工具,JavaDoc。

二、Java是如何編譯和執行的?

上圖表示了Java代碼是怎么編譯和加載的。整個流程從Java源碼開始,經過Javac程序處理后得到類文件,這個文件中保存的是編譯源碼后得到的Java字節碼。類文件是Java平臺能處理的小功能單位,也是把新代碼傳給運行中程序的唯一方式。

新的類文件通過類加載機制載入虛擬機,從而把新類型提供給解釋器執行。

三、Object的重要方法

所有類都直接或間接擴展Java.lang.Object類。這個類定義了很多有用的方法,而且你可以根據需求來重寫這些方法。

1、toString方法

toString方法的作用是返回對象的文本表示形式。連接字符串或使用System.out.println等方法時,會自動在對象上調用這個方法。給對象提供文本表示形式,十分利于調試或記錄日志,而且精心編寫的toString方法還能給報告生成等任務提供幫助。

Object類中的toString方法返回的字符串由對象所屬的類名和對象的十六進制形式哈希碼(由hashCode方法計算得到,本章節稍后會介紹)組成。這個默認的實現方式提供了對象的類型和標識兩個基本信息,但一般并沒什么用。

2、equals方法

==運算符測試兩個引用是否指向同一個對象(比較兩個內存單元的內容是否一樣)。如果要測試兩個不同的對象是否相等,必須使用equals方法。任何類都能覆蓋equals方法,定義專用的相等比較方式。Object.equals方法直接使用==運算符,只有兩個對象是同一個對象時,才判定二者相等。

很多類以及自定義類的equals方法都需要重寫,是需要根據場景與需求來定制的。JDK自帶的許多類往往都是:

對比一些簡單的屬性值

再對比復雜的屬性值or對比業務上快能區分對象的值

再對比其他的值or對比地址、長度

主要為了將那些不匹配的情況盡快排除

3、hashCode方法

Java中的hashCode方法就是根據一定的規則將與對象相關的信息(比如對象的存儲地址,對象的字段等)映射成一個數值,這個數值稱作為散列值。如果集合中已經存在一萬條數據或者更多的數據,如果采用equals方法去逐一比較,效率必然是一個問題。

此時hashCode方法的作用就體現出來了,當集合要添加新的對象時,先調用這個對象的hashCode方法,得到對應的hashcode值,實際上在HashMap的具體實現中會用一個table保存已經存進去的對象的hashcode值,如果table中沒有該hashcode值,它就可以直接存進去,不用再進行任何比較了;

如果存在該hashcode值,就調用它的equals方法與新元素進行比較,相同的話就不存了,不相同就散列其它的地址,所以這里存在一個沖突解決的問題,這樣一來實際調用equals方法的次數就大大降低了。

另外注意,默認的hashCode會發起native調用,如果用hashCode對兩個對象對比,會導致開銷增大。

hashcode方法的作用:

只要覆蓋了equals方法,就必須覆蓋hashCode方法。hashCode方法返回一個整數,用于哈希表數據結構。如果兩個對象經equals方法測試是相等的,它們就要具有相同的哈希碼。

不相等的對象要具有不相等的哈希碼(為了哈希表的操作效率),這一點很重要,但不是強制要求,低要求是不相等的對象不能共用一個哈希碼。為了滿足低要求,hashCode方法要使用稍微復雜的算法或位操作。

Object.hashCode方法和Object.equals方法協同工作,返回對象的哈希碼。這個哈希碼基于對象的身份生成,而不是對象的相等性。(如果需要使用基于身份的哈希碼,可以通過靜態方法System.identityHashCode獲取Object.hashCode方法的返回值。)

4、hashCode和equal方法

hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用來在散列存儲結構中確定對象的存儲地址的;

如果兩個對象相同,就是適用于equals(Java.lang.Object)方法,那么這兩個對象的hashCode一定要相同;

如果對象的equals方法被重寫,那么對象的hashCode也盡量重寫,并且產生hashCode使用的對象,一定要和equals方法中使用的一致,否則就會違反上面提到的第2點;

兩個對象的hashCode相同,并不一定表示兩個對象就相同,也就是不一定適用于equals(Java.lang.Object)方法,只能夠說明這兩個對象在散列存儲結構中,如Hashtable,他們"存放在同一個籃子里"。

5、Comparable::compareTo方法

如果一個類實現了Comparable接口,就可以比較一個實例是小于、大于還是等于另一個實例。這也表明,實現Comparable接口的類可以排序。

因為compareTo方法不在Object類中聲明,所以由每個類自行決定實例能否排序。如果能排序就定義compareTo方法,實現實例排序的方式。

compareTo方法返回一個int類型的值,這個值需要進一步說明。如果當前對象(this)小于傳入的對象,compareTo方法應該返回一個負數;如果兩個對象相等,應該返回0;如果當前對象大于傳入的對象,應該返回一個正數。

6、clone方法

Object類定義了一個名為clone的方法,這個方法的作用是返回一個對象,并把這個對象的字段設為和當前對象一樣。clone方法不常用,原因有兩個。

其一,只有類實現了Java.lang.Cloneable接口,這個方法才有用。Cloneable接口沒有定義任何方法(是個標記接口),因此若想實現這個接口,只需在類簽名的implements子句中列出這個接口即可。

其二,clone方法聲明為protected,因此,如果想讓其他類復制你的對象,你的類必須實現Cloneable接口,并覆蓋clone方法,而且要把clone方法聲明為public。

clone方法很難正確實現,而副本構造方法實現起來更容易也更安全;

7、finalize方法

一種古老的資源管理技術叫終結(finalization),開發者應該知道有這么一種技術。然而,這種技術幾乎完全廢棄了,任何情況下,大多數Java開發者都不應該直接使用。

只有少數應用場景適合使用終結,而且只有少數Java開發者會遇到這種場景。如果有任何疑問,就不要使用終結,處理資源的try語句往往是正確的替代品。

終結機制的作用是自動釋放不再使用的資源。垃圾回收自動釋放的是對象使用的內存資源,不過對象可能會保存其他類型的資源,例如打開的文件和網絡連接。垃圾回收程序不會為你釋放這些額外的資源,因此,終結機制的作用是讓開發者執行清理任務,例如關閉文件、中斷網絡連接、刪除臨時文件,等等。

終結機制的工作方式是這樣的:如果對象有finalize方法(一般叫作終結方法),那么不再使用這個對象(或對象不可達)后的某個時間會調用這個方法,但要在垃圾回收程序回收分配給這個對象的空間之前調用。終結方法用于清理對象使用的資源。

相關內容: Java開發 Java入門 Java開發技巧

同類文章
相關熱詞
主站蜘蛛池模板: 吐鲁番市| 永泰县| 轮台县| 临西县| 桃园市| 安远县| 环江| 兴和县| 美姑县| 合江县| 齐齐哈尔市| 惠州市| 大兴区| 琼结县| 浦江县| 鹿泉市| 古田县| 阳信县| 朝阳区| 三门峡市| 剑川县| 长沙市| 衡南县| 晋江市| 辽中县| 紫云| 习水县| 太谷县| 阿图什市| 台山市| 娄烦县| 崇明县| 南溪县| 汝阳县| 云龙县| 新蔡县| 西宁市| 克拉玛依市| 安远县| 中超| 海淀区|