關(guān)于Java技術(shù)面試的一些問題你都會嗎?

一、數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)

說一下幾種常見的排序算法和分別的復(fù)雜度。

用Java寫一個冒泡排序算法

描述一下鏈?zhǔn)酱鎯Y(jié)構(gòu)。

如何遍歷一棵二叉樹?

倒排一個LinkedList。

用Java寫一個遞歸遍歷目錄下面的所有文件。

二、Java基礎(chǔ)

接口與抽象類的區(qū)別?

內(nèi)存溢出是怎么回事?請舉一個例子?

==和equals的區(qū)別?

hashCode方法的作用?

NIO是什么?適用于何種場景?

JVM內(nèi)存結(jié)構(gòu),為什么需要GC

NIO模型,select/epoll的區(qū)別,多路復(fù)用的原

創(chuàng)建一個類的實(shí)例都有哪些辦法?

final/finally/finalize的區(qū)別

String/StringBuffer/StringBuilder的區(qū)別,擴(kuò)展再問他們的實(shí)現(xiàn)

Servlet的生命周期?

Java有自己的內(nèi)存回收機(jī)制,但為什么還存在內(nèi)存泄露的問題呢

什么是java序列化,如何實(shí)現(xiàn)java序列化?(寫一個實(shí)例)?

三、JVM

JVM堆的基本結(jié)構(gòu)。

JVM有哪些常用啟動參數(shù)可以調(diào)整,描述幾個?

如何查看JVM的內(nèi)存使用情況

你常用的JVM配置和調(diào)優(yōu)參數(shù)都有哪些?分別什么作用?

JVM的內(nèi)存結(jié)構(gòu)

四、多線程/并發(fā)

如何創(chuàng)建線程?如何保證線程安全?

如何避免死鎖

Volatile關(guān)鍵字的作用?

Java程序中啟動一個線程是用run還是start?

什么是守護(hù)線程?有什么用?

什么是死鎖?如何避

線程和進(jìn)程的差別是什么?

ConcurrentHashMap的實(shí)現(xiàn)原理是?

sleep和wait區(qū)別

volatile關(guān)鍵字的

ThreadLocal的作用與實(shí)現(xiàn)

兩個線程如何串行執(zhí)

上下文切換是什么含義

可以運(yùn)行時kill掉一個線程嗎

五、Linux使用與問題分析排查

使用兩種命令創(chuàng)建一個文件?

Load過高的可能性有哪些?

/etc/hosts文件什么做用

如何在log文件中搜索找出error的日志

Java服務(wù)端問題排查(OOM,CPU高,Load高,類沖突

Thread dump文件如何分析(Runnable,鎖,代碼棧,操作系統(tǒng)線程ID關(guān)聯(lián))

六、框架使用

描述一下Hibernate的三個狀態(tài)?

Spring AOP解決了什么問題?怎么實(shí)現(xiàn)的?

Spring框架中IOC的原理是什么

spring的依賴注入有哪幾種方式

struts工作流

Spring 如何實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)

七、數(shù)據(jù)庫相關(guān)

MySQL InnoDB、Mysaim的特點(diǎn)?

MySQL主備同步的基本原理。

如何優(yōu)化數(shù)據(jù)庫性能(索引、分庫分表、批量操作、分頁算法、升級硬盤SSD、業(yè)務(wù)優(yōu)化、主從部署)

SQL什么情況下不會使用索引(不包含,不等于,函數(shù)

一般在什么字段上建索引(過濾數(shù)據(jù)最多的字段)

如何從一張表中查出name字段不包含“XYZ”的所有行

MySQL,B+索引實(shí)現(xiàn),行鎖實(shí)現(xiàn),SQL優(yōu)化

如何解決高并發(fā)減庫存問

mysql存儲引擎中索引的實(shí)現(xiàn)機(jī)制

數(shù)據(jù)庫事務(wù)的幾種粒度;

八、網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)編程

TCP建立連接的過程。

TCP的滑動窗口協(xié)議有什么用?講講原理。

HTTP協(xié)議都有哪些方法?

交換機(jī)和路由器的區(qū)別?

Socket交互的基本流程?

tcp協(xié)議(建連過程,慢啟動,滑動窗口,七層模型

九、Redis等緩存系統(tǒng)/中間件SQL/一致性Hash等

列舉一個常用的Redis客戶端的并發(fā)模型。

分布式緩存,一致性hash

LRU算法,slab分配,如何減少內(nèi)存碎片

如何解決緩存單機(jī)熱點(diǎn)問題

memcache與redis的區(qū)別

zookeeper有什么功能,選舉算法如何進(jìn)行

十、設(shè)計(jì)模式與重構(gòu)

你能舉例幾個常見的設(shè)計(jì)模式

你在設(shè)計(jì)一個工廠的包的時候會遵循哪些原則?

你能列舉一個使用了Visitor/Decorator模式的開源項(xiàng)目/庫嗎?

你在編碼時最常用的設(shè)計(jì)模式有哪些?在什么場景下用?

如何實(shí)現(xiàn)一個單例?

代理模式(動態(tài)代理)

單例模式(懶漢模式,并發(fā)初始化如何解決,volatile與lock的使用)

JDK源碼里面都有些什么讓你印象深刻的設(shè)計(jì)模式使用,舉例看看?

除了這些面試題之外,小編這里還有其他大廠的java筆試題,大家來觀賞一下!


轉(zhuǎn)發(fā)關(guān)注小編,快添加小編QQ:3451227820

或者微信:xiaoqiqi7795獲取資料吧

加油(? ??_??)?!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不足的地方請大家多多指正,如有其它沒有想到的常問面試題請大家多多評論,一起成長,感謝!~ String可以被繼承嗎...
    啟示錄是真的閱讀 3,065評論 3 3
  • Java SE 基礎(chǔ): 封裝、繼承、多態(tài) 封裝: 概念:就是把對象的屬性和操作(或服務(wù))結(jié)合為一個獨(dú)立的整體,并盡...
    Jayden_Cao閱讀 2,234評論 0 8
  • 包含的重點(diǎn)內(nèi)容:JAVA基礎(chǔ)JVM 知識開源框架知識操作系統(tǒng)多線程TCP 與 HTTP架構(gòu)設(shè)計(jì)與分布式算法數(shù)據(jù)庫知...
    消失er閱讀 4,543評論 1 10
  • 所有知識點(diǎn)已整理成app app下載地址 J2EE 部分: 1.Switch能否用string做參數(shù)? 在 Jav...
    侯蛋蛋_閱讀 2,700評論 1 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,619評論 1 32

友情鏈接更多精彩內(nèi)容