大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 職業(yè)指南 Java初級開發(fā)面試題,入職必備

Java初級開發(fā)面試題,入職必備

更新時間:2022-12-28 09:53:14 來源:動力節(jié)點 瀏覽1210次

Java是目前來說最火的計算機(jī)開發(fā)語言之一,已經(jīng)連續(xù)好幾年受到程序員的歡迎了,因此每年新入職的程序員數(shù)不勝數(shù),那么對于這些新入職的同學(xué)來說,也并不是那么容易就能夠進(jìn)入這個行業(yè)的,面試前的準(zhǔn)備肯定是必不可少的,今天小編就總結(jié)出了幾道常見的入職必考題,希望可以幫助到大家:

java初級開發(fā)面試題

1 、a.hashCode() 有什么用?與 a.equals(b) 有什么關(guān)系?

hashCode() 方法對應(yīng)對象整型的 hash 值。它常用于基于 hash 的集合類,如 Hashtable、HashMap、LinkedHashMap等等。它與 equals() 方法關(guān)系特別緊密。根據(jù) Java 規(guī)范,兩個使用 equal() 方法來判斷相等的對象,必須具有相同的 hash code。

2 、字節(jié)流與字符流的區(qū)別

要把一段二進(jìn)制數(shù)據(jù)數(shù)據(jù)逐一輸出到某個設(shè)備中,或者從某個設(shè)備中逐一讀取一段二進(jìn)制數(shù)據(jù),不管輸入輸出設(shè)備是什么,我們要用統(tǒng)一的方式來完成這些操作,用一種抽象的方式進(jìn)行描述,這個抽象描述方式起名為IO流,對應(yīng)的抽象類為OutputStream和InputStream,不同的實現(xiàn)類就代表不同的輸入和輸出設(shè)備,它們都是針對字節(jié)進(jìn)行操作的。

計算機(jī)中的一切最終都是二進(jìn)制的字節(jié)形式存在。對于經(jīng)常用到的中文字符,首先要得到其對應(yīng)的字節(jié),然后將字節(jié)寫入到輸出流。讀取時,首先讀到的是字節(jié),可是我們要把它顯示為字符,我們需要將字節(jié)轉(zhuǎn)換成字符。由于這樣的需求很廣泛,Java專門提供了字符流包裝類。

底層設(shè)備永遠(yuǎn)只接受字節(jié)數(shù)據(jù),有時候要寫字符串到底層設(shè)備,需要將字符串轉(zhuǎn)成字節(jié)再進(jìn)行寫入。字符流是字節(jié)流的包裝,字符流則是直接接受字符串,它內(nèi)部將串轉(zhuǎn)成字節(jié),再寫入底層設(shè)備,這為我們向IO設(shè)備寫入或讀取字符串提供了一點點方便。

字符向字節(jié)轉(zhuǎn)換時,要注意編碼的問題,因為字符串轉(zhuǎn)成字節(jié)數(shù)組,其實是轉(zhuǎn)成該字符的某種編碼的字節(jié)形式,讀取也是反之的道理。

3 、什么是java序列化,如何實現(xiàn)java序列化?或者請解釋Serializable接口的作用。

我們有時候?qū)⒁粋€java對象變成字節(jié)流的形式傳出去或者從一個字節(jié)流中恢復(fù)成一個java對象,例如,要將java對象存儲到硬盤或者傳送給網(wǎng)絡(luò)上的其他計算機(jī),這個過程我們可以自己寫代碼去把一個java對象變成某個格式的字節(jié)流再傳輸。

但是,jre本身就提供了這種支持,我們可以調(diào)用OutputStream的writeObject方法來做,如果要讓java幫我們做,要被傳輸?shù)膶ο蟊仨殞崿F(xiàn)serializable接口,這樣,javac編譯時就會進(jìn)行特殊處理,編譯的類才可以被writeObject方法操作,這就是所謂的序列化。需要被序列化的類必須實現(xiàn)Serializable接口,該接口是一個mini接口,其中沒有需要實現(xiàn)方法,implements Serializable只是為了標(biāo)注該對象是可被序列化的。

例如,在web開發(fā)中,如果對象被保存在了Session中,tomcat在重啟時要把Session對象序列化到硬盤,這個對象就必須實現(xiàn)Serializable接口。如果對象要經(jīng)過分布式系統(tǒng)進(jìn)行網(wǎng)絡(luò)傳輸,被傳輸?shù)膶ο缶捅仨殞崿F(xiàn)Serializable接口。

4 、描述一下JVM加載class文件的原理機(jī)制?

JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader是一個重要的Java運行時系統(tǒng)組件。它負(fù)責(zé)在運行時查找和裝入類文件的類。

5 、heap和stack有什么區(qū)別。

java的內(nèi)存分為兩類,一類是棧內(nèi)存,一類是堆內(nèi)存。棧內(nèi)存是指程序進(jìn)入一個方法時,會為這個方法單獨分配一塊私屬存儲空間,用于存儲這個方法內(nèi)部的局部變量,當(dāng)這個方法結(jié)束時,分配給這個方法的棧會釋放,這個棧中的變量也將隨之釋放。

堆是與棧作用不同的內(nèi)存,一般用于存放不在當(dāng)前方法棧中的那些數(shù)據(jù),例如,使用new創(chuàng)建的對象都放在堆里,所以,它不會隨方法的結(jié)束而消失。方法中的局部變量使用final修飾后,放在堆中,而不是棧中。

6 、GC是什么?為什么要有GC?

GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作用域從而達(dá)到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。

7 、垃圾回收的優(yōu)點和原理。并考慮2種回收機(jī)制。

Java語言中一個顯著的特點就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管理。由于垃圾回收機(jī)制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。

垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進(jìn)行清除和回收,程序員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進(jìn)行垃圾回收。

回收機(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。

8 、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機(jī)進(jìn)行垃圾回收?

對于GC來說,當(dāng)程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達(dá)的",哪些對象是"不可達(dá)的"。當(dāng)GC確定一些對象為"不可達(dá)"時,GC就有責(zé)任回收這些內(nèi)存空間。

程序員可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。

9 、Java 中,throw 和 throws 有什么區(qū)別

throw 用于拋出 java.lang.Throwable 類的一個實例化對象,意思是說你可以通過關(guān)鍵字 throw 拋出一個Exception,如:

throw new IllegalArgumentException(“XXXXXXXXX″)

而throws 的作用是作為方法聲明和簽名的一部分,方法被拋出相應(yīng)的異常以便調(diào)用者能處理。Java 中,任何未處理的受檢查異常強(qiáng)制在 throws 子句中聲明。

10 、java中會存在內(nèi)存泄漏嗎,請簡單描述。

先解釋什么是內(nèi)存泄漏:所謂內(nèi)存泄露就是指一個不再被程序使用的對象或變量一直被占據(jù)在內(nèi)存中。java中有垃圾回收機(jī)制,它可以保證當(dāng)對象不再被引用的時候,對象將自動被垃圾回收器從內(nèi)存中清除掉。

由于Java使用有向圖的方式進(jìn)行垃圾回收管理,可以消除引用循環(huán)的問題,例如有兩個對象,相互引用,只要它們和根進(jìn)程不可達(dá),那么GC也是可以回收它們的。

java中的內(nèi)存泄露的情況:長生命周期的對象持有短生命周期對象的引用就很可能發(fā)生內(nèi)存泄露,盡管短生命周期對象已經(jīng)不再需要,但是因為長生命周期對象持有它的引用而導(dǎo)致不能被回收,這就是java中內(nèi)存泄露的發(fā)生場景,通俗地說,就是程序員可能創(chuàng)建了一個對象,以后一直不再使用這個對象,這個對象卻一直被引用,即這個對象無用但是卻無法被垃圾回收器回收的,這就是java中可能出現(xiàn)內(nèi)存泄露的情況,例如,緩存系統(tǒng),我們加載了一個對象放在緩存中(例如放在一個全局map對象中),然后一直不再使用它,這個對象一直被緩存引用,但卻不再被使用。

以上就是“Java初級開發(fā)面試題,入職必備”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點Java官網(wǎng)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久九九热视频 | 亚洲精品毛片久久久久久久 | 免费国产成人 | 天天色天天射天天干 | 欧美综合天天夜夜久久 | 亚洲欧洲日产国码天堂 | 日韩精品一区二区三区四区 | 久久香蕉国产线看观看8青草 | 婷婷在线视频 | 国产九九精品 | 香蕉视频免费在线看 | 欧美精品二区 | 日日摸夜夜添夜夜添人人爽 | 日本一本一道久久香蕉免费 | 国产精品成人扳一级aa毛片 | 久久剧场 | 尤物精品视频在线观看 | 一级日本强免费 | 欧美理论大片清免费观看 | 操操操干干| 蘑菇视频绿巨人小黄鸭 | 国产精品第二页 | 午夜不卡视频 | 最新国产精品自拍 | 男女性高清爱潮视频免费观看 | 一级肉体毛片视频免费看看 | 久热官网| 亚洲 欧洲 另类 综合 自拍 | 国产亚洲美女精品久久久2020 | 久久精品免视看国产成人2021 | 奇米视频第四色 | 视频一区视频二区在线观看 | 伊人久久在线视频 | 99在线观看免费视频 | 天天摸日日碰天天看免费 | 亚洲国产精品专区 | 国产色婷婷 | 日本欧美国产精品 | 天天草b| 国产成人不卡亚洲精品91 | 四虎永久免费网站免费观看 |