亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 Java Java面試題 java面試題最容易犯錯(cuò)的8道

java面試題最容易犯錯(cuò)的8道

Nov 11, 2019 pm 02:21 PM
java

java面試題最容易犯錯(cuò)的8道

1. static 和 final 的用法

static 的作用從三個(gè)方面來談,分別是靜態(tài)變量、靜態(tài)方法、靜態(tài)類。

靜態(tài)變量:聲明為 static 的靜態(tài)變量實(shí)質(zhì)上就是全局變量,當(dāng)聲明一個(gè)對象時(shí),并不產(chǎn)生static 變量的拷貝,而是該類所有實(shí)例變量共用同一個(gè) static 變量。也就是說這個(gè)靜態(tài)變量只加載一次,只分配一塊儲(chǔ)存空間。

靜態(tài)方法: 聲明為static的靜態(tài)方法有以下幾個(gè)特點(diǎn):

(1)靜態(tài)方法只能調(diào)用靜態(tài)方法;

(2)靜態(tài)方法只能訪問靜態(tài)數(shù)據(jù);

(3)靜態(tài)方法不能以任何方式引用this或super;

靜態(tài)類:通常一個(gè)普通類不允許聲明為靜態(tài),只有一個(gè)內(nèi)部類才可以(main方法就是一個(gè)典型),這時(shí)這個(gè)聲明的靜態(tài)類可以直接作為一個(gè)普通類來使用,而不需要實(shí)例一個(gè)外部類。

final 的作用從變量、方法、類三個(gè)方面來理解:

final修飾的變量的值不能被修改,是一個(gè)常量;

final修飾的方法不能被重寫;

final修飾的類不能被繼承;

2. 抽象類和接口的區(qū)別,類可以繼承多個(gè)類嗎,接口可以繼承多個(gè)接口嗎,類可以實(shí)現(xiàn)多個(gè)接口嗎?

抽象類和接口都不能直接實(shí)例化,如果要實(shí)例化,抽象類變量必須指向?qū)崿F(xiàn)所有抽象方法的子類對象,接口變量必須指向?qū)崿F(xiàn)所有接口方法的類對象。

抽象類要被子類繼承,接口要被類實(shí)現(xiàn)?! ?/p>

接口只能做方法聲明,抽象類中可以做方法聲明,也可以做方法實(shí)現(xiàn)

接口里定義的變量只能是公共的靜態(tài)的常量,抽象類中的變量是普通變量。

抽象類里的抽象方法必須全部被子類所實(shí)現(xiàn),如果子類不能全部實(shí)現(xiàn)父類抽象方法,那么該子類只能是抽象類。同樣,一個(gè)實(shí)現(xiàn)接口的時(shí)候,如不能全部實(shí)現(xiàn)接口方法,那么該類也只能為抽象類。

抽象方法只能申明,不能實(shí)現(xiàn)。abstract void abc();不能寫成abstract void abc(){}。

抽象類里可以沒有抽象方法 。

如果一個(gè)類里有抽象方法,那么這個(gè)類只能是抽象類 。

抽象方法要被實(shí)現(xiàn),所以不能是靜態(tài)的,也不能是私有的。

接口可繼承接口,并可多繼承接口,但類只能單根繼承。

3. this和super的功能和用法

this :

(1) 能訪問除構(gòu)造方法以外所有的屬性、方法,通過this.來調(diào)用方法和屬性

(2) 不可以在靜態(tài)方法中使用

(3) 在構(gòu)造方法中使用this(參數(shù)列表) 調(diào)用本類的其它構(gòu)造方法,必須放在構(gòu)造方法的第一句。

super :訪問父類的方法和屬性

(1) 訪問父類的方法和屬性;

(2) 在構(gòu)造方法中通過 super(參數(shù)列表) 來調(diào)用父類的構(gòu)造方法,必須放在子類構(gòu)造方法里的第一行。

4. final, finally, finalize 的區(qū)別?

final:修飾符(關(guān)鍵字)有三種用法:如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,即不能被繼承。將變量聲明為final,可以保證它們在使用中不被改變,被聲明為final 的變量在初始化以后的引用中只能讀取不可修改。被聲明為 final 的方法也同樣只能使用,不能在子類中被重寫。

finally:通常放在try…catch的后面構(gòu)造總是執(zhí)行代碼塊,這就意味著程序無論正常執(zhí)行還是發(fā)生異常,這里的代碼只要JVM不關(guān)閉都能執(zhí)行,可以將釋放外部資源的代碼寫在finally塊中。

finalize:Object類中定義的方法,Java中允許使用finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在銷毀對象時(shí)調(diào)用的,通過重寫finalize() 方法可以整理系統(tǒng)資源或者執(zhí)行其他清理工作。

5. Error 和 Exception 有什么區(qū)別?

Error 表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,是恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題;比如內(nèi)存溢出,不可能指望程序能處理這樣的情況;

Exception 表示需要捕捉或者需要程序進(jìn)行處理的異常,是一種設(shè)計(jì)或?qū)崿F(xiàn)問題;也就是說,它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。

6. 說出Servlet的生命周期,并說出Servlet和CGI的區(qū)別。

Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請求對應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其destroy()方法。

與CGI的區(qū)別在于Servlet處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請求,并且其實(shí)例一般不會(huì)銷毀,而CGI對每個(gè)請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于Servlet。

7. 如何防止緩存雪崩?

原因:

緩存雪崩可能是因?yàn)閿?shù)據(jù)未加載到緩存中,或者緩存同一時(shí)間大面積的失效,從而導(dǎo)致所有請求都去查數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫CPU和內(nèi)存負(fù)載過高,甚至宕機(jī)。

對應(yīng)解決:

采用加鎖計(jì)數(shù),或者使用合理的隊(duì)列數(shù)量來避免緩存失效時(shí)對數(shù)據(jù)庫造成太大的壓力。這種辦法雖然能緩解數(shù)據(jù)庫的壓力,但是同時(shí)又降低了系統(tǒng)的吞吐量。

分析用戶行為,盡量讓失效時(shí)間點(diǎn)均勻分布。避免緩存雪崩的出現(xiàn)。

如果是因?yàn)槟撑_(tái)緩存服務(wù)器宕機(jī),可以考慮做主備,比如:redis主備,但是雙緩存涉及到更新事務(wù)的問題,update可能讀到臟數(shù)據(jù),需要好好解決。

8. 談?wù)勀銓VC的理解

MVC是Model—View—Controler的簡稱。即模型—視圖—控制器。MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開。

MVC中的模型、視圖、控制器它們分別擔(dān)負(fù)著不同的任務(wù)。

視圖: 視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并接受用戶的輸入。視圖不進(jìn)行任何業(yè)務(wù)邏輯處理。

模型: 模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理,相當(dāng)于JavaBean。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。這提高了應(yīng)用程序的重用性。

控制器: 當(dāng)用戶單擊Web頁面中的提交按鈕時(shí),控制器接受請求并調(diào)用相應(yīng)的模型去處理請求,然后根據(jù)處理的結(jié)果調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。

MVC的處理過程:首先控制器接受用戶的請求,調(diào)用相應(yīng)的模型來進(jìn)行業(yè)務(wù)處理,并返回?cái)?shù)據(jù)給控制器。控制器調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。并通過視圖呈現(xiàn)給用戶。

以上是java面試題最容易犯錯(cuò)的8道的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCODE設(shè)置。JSON位置 VSCODE設(shè)置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級(jí)或工作區(qū)級(jí)路徑,用于自定義VSCode設(shè)置。1.用戶級(jí)路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級(jí)路徑:項(xiàng)目根目錄下的.vscode/settings

如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動(dòng)提交模式,再執(zhí)行多個(gè)操作,最后根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開始事務(wù);2.執(zhí)行多個(gè)SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時(shí)應(yīng)使用try-with-resources管理資源,妥善處理異常并關(guān)閉連接,避免連接泄漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,并保持事務(wù)盡可能短以提升性能。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

如何使用Java的日歷? 如何使用Java的日歷? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時(shí)間;3.使用of()方法創(chuàng)建特定日期時(shí)間;4.利用plus/minus方法不可變地增減時(shí)間;5.使用ZonedDateTime和ZoneId處理時(shí)區(qū);6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時(shí)通過Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

Google Chrome無法打開本地文件 Google Chrome無法打開本地文件 Aug 01, 2025 am 05:24 AM

ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

了解網(wǎng)絡(luò)端口和防火墻 了解網(wǎng)絡(luò)端口和防火墻 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

See all articles