china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网

公眾號
關(guān)注微信公眾號
移動端
創(chuàng)頭條企服版APP

0基礎(chǔ)學(xué)武漢Java編程開發(fā)快速入門指南!

4012

由于Java開發(fā)的應(yīng)用程序具有很強(qiáng)的跨平臺性,Java本身也有許多其他語言所不能比擬的優(yōu)勢。因此,Java應(yīng)用市場的發(fā)展前景還有很廣泛的生長空間。相信,隨著Java技術(shù)的不斷發(fā)展,Java在編程界的統(tǒng)治地位會更加牢固。學(xué)習(xí)Java開發(fā)已經(jīng)成為想要學(xué)習(xí)計(jì)算機(jī)編程學(xué)員們的首選方向,就業(yè)前景一片大好。

學(xué)Java,掌握一些基本的概念是第一步,本文小編找到一些掃盲級別的內(nèi)容,希望幫助小白快速入門。

一、基本概念

JVM:java虛擬機(jī),負(fù)責(zé)將編譯產(chǎn)生的字節(jié)碼轉(zhuǎn)換為特定機(jī)器代碼,實(shí)現(xiàn)一次編譯多處執(zhí)行;

JRE:java運(yùn)行時(shí)環(huán)境,包含了java虛擬機(jī)jvm,java基礎(chǔ)類庫。是使用java語言編寫的程序運(yùn)行所需要的軟件環(huán)境;

JDK:java開發(fā)工具包,是編寫java程序所需的開發(fā)工具。JDK包含了JRE,同時(shí)還包含了編譯器javac,調(diào)試和分析工具,JavaDoc。

二、Java是如何編譯和執(zhí)行的?

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

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

三、Object的重要方法

所有類都直接或間接擴(kuò)展 java.lang.Object類。這個(gè)類定義了很多有用的方法,而且你可以根據(jù)需求來重寫這些方法。

1、toString方法

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

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

2、equals方法

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

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

  • 對比一些簡單的屬性值

  • 再對比復(fù)雜的屬性值or對比業(yè)務(wù)上最快能區(qū)分對象

    的值
  • 再對比其他

    的值

    or對比地址、長度

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

3、hashCode方法

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

此時(shí)hashCode方法的作用就體現(xiàn)出來了,當(dāng)集合要添加新的對象時(shí),先調(diào)用這個(gè)對象的hashCode方法,得到對應(yīng)的hashcode值,實(shí)際上在HashMap的具體實(shí)現(xiàn)中會用一個(gè)table保存已經(jīng)存進(jìn)去的對象的hashcode值,如果table中沒有該hashcode值,它就可以直接存進(jìn)去,不用再進(jìn)行任何比較了;

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

另外注意,默認(rèn)的hashCode會發(fā)起native調(diào)用,如果用hashCode對兩個(gè)對象對比,會導(dǎo)致開銷增大。

hashcode方法的作用:

只要覆蓋了 equals方法,就必須覆蓋 hashCode方法。hashCode方法返回一個(gè)整數(shù),用于哈希表數(shù)據(jù)結(jié)構(gòu)。如果兩個(gè)對象經(jīng) equals方法測試是相等的,它們就要具有相同的哈希碼。

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

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

4、hashCode和equal方法

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

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

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

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

5、Comparable::compareTo方法

如果一個(gè)類實(shí)現(xiàn)了 Comparable接口,就可以比較一個(gè)實(shí)例是小于、大于還是等于另一個(gè)實(shí)例。這也表明,實(shí)現(xiàn) Comparable接口的類可以排序。

因?yàn)?compareTo方法不在 Object類中聲明,所以由每個(gè)類自行決定實(shí)例能否排序。如果能排序就定義 compareTo方法,實(shí)現(xiàn)實(shí)例排序的方式。

compareTo方法返回一個(gè) int類型的值,這個(gè)值需要進(jìn)一步說明。如果當(dāng)前對象(this)小于傳入的對象,compareTo方法應(yīng)該返回一個(gè)負(fù)數(shù);如果兩個(gè)對象相等,應(yīng)該返回 0;如果當(dāng)前對象大于傳入的對象,應(yīng)該返回一個(gè)正數(shù)。

6、clone方法

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

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

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

clone方法很難正確實(shí)現(xiàn),而副本構(gòu)造方法實(shí)現(xiàn)起來更容易也更安全;

7、finalize方法

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

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

終結(jié)機(jī)制的作用是自動釋放不再使用的資源。垃圾回收自動釋放的是對象使用的內(nèi)存資源,不過對象可能會保存其他類型的資源,例如打開的文件和網(wǎng)絡(luò)連接。垃圾回收程序不會為你釋放這些額外的資源,因此,終結(jié)機(jī)制的作用是讓開發(fā)者執(zhí)行清理任務(wù),例如關(guān)閉文件、中斷網(wǎng)絡(luò)連接、刪除臨時(shí)文件,等等。

終結(jié)機(jī)制的工作方式是這樣的:如果對象有 finalize方法(一般叫作終結(jié)方法),那么不再使用這個(gè)對象(或?qū)ο蟛豢蛇_(dá))后的某個(gè)時(shí)間會調(diào)用這個(gè)方法,但要在垃圾回收程序回收分配給這個(gè)對象的空間之前調(diào)用。終結(jié)方法用于清理對象使用的資源。

另外注意,這是一個(gè)實(shí)例方法。而在類上,沒有等效的機(jī)制。

以上分享的Java基礎(chǔ)知識,希望能幫到想入行Java的小伙伴們。目前,Java開發(fā)語言是全球最流行的開發(fā)語言,無論是程序界還是整個(gè)互聯(lián)網(wǎng)行業(yè)勢必帶來很大的影響。不管是人才需求還是薪資水平上,Java的發(fā)展前景都是很樂觀的。在此次Java產(chǎn)業(yè)浪潮中,學(xué)習(xí)者也需要把握住機(jī)遇,想要高薪就業(yè),就來學(xué)Java開發(fā)吧,這將是你最正確的選擇。

聲明:該文章版權(quán)歸原作者所有,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與本網(wǎng)聯(lián)系。
您閱讀這篇文章花了0
轉(zhuǎn)發(fā)這篇文章只需要1秒鐘
喜歡這篇 6
評論一下 0
凱派爾知識產(chǎn)權(quán)全新業(yè)務(wù)全面上線
相關(guān)文章
評論
登錄后發(fā)表評論
凱派爾知識產(chǎn)權(quán)全新業(yè)務(wù)全面上線
寧波城市站
金華城市站
×
#熱門搜索#
精選雙創(chuàng)服務(wù)
歷史搜索 清空

Tel:18514777506

關(guān)注微信公眾號

創(chuàng)頭條企服版APP

china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网
欧美一级免费大片| 亚洲综合偷拍欧美一区色| 亚洲图片激情小说| 日产国产欧美视频一区精品| fc2成人免费人成在线观看播放 | 国产亚洲精品资源在线26u| 性做久久久久久久久| 成人美女在线视频| 欧美大片一区二区三区| 午夜欧美视频在线观看 | 久久综合五月天婷婷伊人| 一区二区久久久久久| 国产v日产∨综合v精品视频| 日韩一区二区精品在线观看| 一区二区三区四区不卡在线| 成人国产精品免费观看视频| 久久久另类综合| 蜜桃视频在线观看一区二区| 欧美日韩国产综合久久| 亚洲精选免费视频| 波波电影院一区二区三区| 久久久九九九九| 黑人巨大精品欧美一区| 日韩欧美一区在线| 奇米四色…亚洲| 欧美日韩国产大片| 亚洲国产一区在线观看| 色婷婷激情综合| 亚洲欧美日韩国产综合在线 | 久久蜜桃一区二区| 久久aⅴ国产欧美74aaa| 欧美一区二区三区四区在线观看 | 成人免费毛片片v| 久久婷婷久久一区二区三区| 久久精品国产精品亚洲综合| 日韩欧美中文字幕公布| 免费观看成人av| 欧美一区二区视频网站| 青草av.久久免费一区| 欧美一区二区视频在线观看2022| 偷拍日韩校园综合在线| 欧美老女人第四色| 日韩综合一区二区| 91精品欧美综合在线观看最新| 视频一区二区欧美| 日韩一区二区三区四区五区六区| 免费欧美高清视频| 精品国产乱码久久久久久闺蜜| 极品销魂美女一区二区三区| 精品粉嫩超白一线天av| 国产精品综合网| 中文字幕 久热精品 视频在线 | 3d动漫精品啪啪| 免费高清在线视频一区·| 欧美成人一区二区三区| 国产精一品亚洲二区在线视频| 国产三级一区二区| 成人的网站免费观看| 亚洲欧美另类综合偷拍| 欧美少妇一区二区| 免费一区二区视频| 久久久噜噜噜久久中文字幕色伊伊| 国产成人三级在线观看| 中文字幕日韩欧美一区二区三区| 91美女视频网站| 午夜精品一区二区三区三上悠亚| 欧美一级理论片| 国模套图日韩精品一区二区| 国产免费观看久久| 99国产精品视频免费观看| 亚洲影院理伦片| 欧美电影免费观看高清完整版在 | 日韩三级高清在线| 国产在线视频精品一区| 国产欧美日韩激情| 色噜噜狠狠色综合中国| 日本aⅴ亚洲精品中文乱码| 国产亚洲综合性久久久影院| www.日韩大片| 性欧美大战久久久久久久久| 精品奇米国产一区二区三区| 成人天堂资源www在线| 亚洲一区二三区| 精品久久久久久综合日本欧美 | 精品国产乱码久久久久久影片| 懂色中文一区二区在线播放| 亚洲黄色免费网站| 精品免费日韩av| 99久久精品费精品国产一区二区| 亚洲成人黄色影院| 欧美精品一区二区三区蜜桃| 色婷婷综合久久| 久久99久国产精品黄毛片色诱| 国产精品久久久久久久久久久免费看 | 蜜桃av一区二区三区| 中文成人综合网| 欧美日韩一区二区不卡| 国产精品一二三四五| 一区二区日韩av| 精品国产百合女同互慰| 色综合色狠狠天天综合色| 久久精品国产77777蜜臀| 综合久久国产九一剧情麻豆| 日韩欧美在线不卡| 91日韩精品一区| 久久99深爱久久99精品| 有码一区二区三区| 久久影院电视剧免费观看| 欧美午夜在线一二页| 国产乱码精品一品二品| 亚洲午夜一区二区| 欧美激情一二三区| 91精品国产91综合久久蜜臀| 99久久99久久精品免费看蜜桃| 蜜臀av一级做a爰片久久| 亚洲美女精品一区| 久久久久国产精品麻豆ai换脸| 欧美色窝79yyyycom| 成人免费精品视频| 激情亚洲综合在线| 午夜久久久影院| 亚洲天堂免费看| 久久毛片高清国产| 91精品在线麻豆| 欧洲视频一区二区| av激情综合网| 国产精品综合av一区二区国产馆| 婷婷成人综合网| 亚洲免费在线看| 中文字幕欧美三区| 精品播放一区二区| 91精品国产一区二区| 色综合久久久久综合体| 成人性生交大片免费看中文网站| 麻豆国产91在线播放| 天天操天天干天天综合网| 亚洲精品一二三四区| 国产精品午夜在线观看| 久久这里只精品最新地址| 欧美一区二区播放| 欧美三级电影精品| 色婷婷国产精品久久包臀| 成人免费精品视频| 国产成人综合亚洲91猫咪| 久久99国产精品麻豆| 日本91福利区| 午夜精品久久一牛影视| 一区二区在线观看免费视频播放| 国产精品久久久久久久裸模| 国产三级久久久| 久久久亚洲国产美女国产盗摄| 欧美r级电影在线观看| 欧美一个色资源| 欧美一级二级三级蜜桃| 这里是久久伊人| 91精品国产91久久综合桃花| 欧美久久久久久蜜桃| 欧美日韩久久一区| 欧美日韩视频一区二区| 欧美日韩在线一区二区| 欧美性色黄大片| 欧美自拍偷拍一区| 欧美专区亚洲专区| 欧美色综合久久| 欧美精品日韩综合在线| 欧美精品高清视频| 宅男噜噜噜66一区二区66| 欧美一区二区在线不卡| 日韩午夜三级在线| 日韩欧美综合在线| 精品国产一区二区三区四区四| 欧美不卡在线视频| 精品国产乱码久久久久久老虎| 久久综合九色综合欧美亚洲| 久久综合成人精品亚洲另类欧美 | 粉嫩久久99精品久久久久久夜| 国产成人综合自拍| 成人丝袜视频网| 91亚洲大成网污www| 色中色一区二区| 欧美日韩综合在线免费观看| 欧美日本不卡视频| 日韩一区二区影院| 日韩免费一区二区三区在线播放| 精品国产一区久久| 欧美激情综合网| 亚洲欧洲制服丝袜| 亚洲国产成人porn| 免费在线观看精品| 国产精品夜夜嗨| 99麻豆久久久国产精品免费优播| 在线亚洲一区二区| 欧美精品xxxxbbbb| wwwwxxxxx欧美| 国产精品高潮呻吟| 亚洲成人1区2区| 韩国精品久久久| 99久久精品久久久久久清纯| 欧美日韩精品是欧美日韩精品| 日韩免费高清电影|