本文目錄一覽:
求最新JAVA面試題目,越全越好!!!
Java面試不光有面試也會有筆試,為了讓java應聘筆試題能順利通過,中公優就業·浙江IT培訓的小U老師整理了一些java筆試題及答案分享給大家,準備或將要參加java面試的朋友可以仔細閱讀,爭取一次通過,進去自己心儀的企業工作。
一、九道選擇題
1.Java程序的種類有(BCD )
A.類(Class) B.Applet C.Application D.Servlet
2.下列說法正確的有( BCD)
A. 環境變數可在編譯source code時指定
B. 在編譯程序時,所能指定的環境變數不包括class path
C. javac一次可同時編譯數個Java源文件
D. javac.exe能指定編譯結果要置於哪個目錄(directory)
3.下列標識符不合法的有( ACD)
A.new B.$Usdollars C.1234 D.car.taxi
4.下列說法錯誤的有( BCD)
A. 數組是一種對象
B. 數組屬於一種原生類
C. int number=={31,23,33,43,35,63}
D. 數組的大小可以任意改變
5.不能用來修飾interface的有(ACD )
A.private B.public C.protected D.static
6.下列正確的有(ACD )
A. call by value不會改變實際參數的數值
B. call by reference能改變實際參數的參考地址
C. call by reference不能改變實際參數的參考地址
D. call by reference能改變實際參數的內容
7.下列說法錯誤的有( ACD)
A. 在類方法中可用this來調用本類的類方法
B. 在類方法中調用本類的類方法時可直接調用
C. 在類方法中只能調用本類中的類方法
D. 在類方法中絕對不能調用實例方法
8.下列說法錯誤的有(ABC )
A. Java面向對象語言容許單獨的過程與函數存在
B. Java面向對象語言容許單獨的方法存在
C. Java語言中的方法屬於類中的成員(member)
D. Java語言中的方法必定隸屬於某一類(對象),調用方法與過程或函數相同
9.下列說法錯誤的有(BCD )
A. 能被java.exe成功運行的java class文件必須有main方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar選項運行.jar文件
D. 能被Appletviewer成功運行的java class文件必須有main方法
二、六道簡答題
1、在java中如果聲明一個類為final,表示什麼意思?
答:final是最終的意思,final可用於定義變數、方法和類但含義不同,聲明為final的類不能被繼承。
2、父類的構造方法是否可以被子類覆蓋(重寫)?
答:父類的構造方法不可以被子類覆蓋,因為父類和子類的類名是不可能一樣的。
3、請講述String 和StringBuffer的區別。
答:String 類所定義的對象是用於存放「長度固定」的字元串。
StringBuffer類所定義的對象是用於存放「長度可變動」的字元串。
4、如果有兩個類A、B(注意不是介面),你想同時使用這兩個類的功能,那麼你會如何編寫這個C類呢?
答:因為類A、B不是介面,所以是不可以直接繼承的,但可以將A、B類定義成父子類,那麼C類就能實現A、B類的功能了。假如A為B的父類,B為C的父類,此時C就能實現A、B的功能。
5、結合Java視頻Lesson5(多線程),分析sleep()和wait()方法的區別。
答: Sleeping睡眠的意思 : sleep() 方法用來暫時中止執行的線程。在睡眠後,線程將進入就緒狀態。
waiting等待的意思: 如果調用了 wait() 方法,線程將處於等待狀態。用於在兩個或多個線程並發運行時。
6、談談你對抽象類和介面的理解。
答:定義抽象類的目的是提供可由其子類共享的一般形式、子類可以根據自身需要擴展抽象類、抽象類不能實例化、抽象方法沒有函數體、抽象方法必須在子類中給出具體實現。他使用extends來繼承。
介面:一個介面允許一個類從幾個介面繼承而來,Java
程序一次只能繼承一個類但可以實現幾個介面,介面不能有任何具體的方法,介面也可用來定義可由類使用的一組常量。其實現方式是interface來實現。
以上就是小U老師整理的2018java筆試題及答案,關於java應聘筆試題還有很多,後期小編會及時整理更新更多java應聘筆試題,準備參加java面試的朋友可以仔細研究題目,做好充分的準備參加每一場面試,祝你成功!
我的百度面經(共8次面試)
百度智能雲 資料庫部門
一面:
1 資料庫的事務,四個性質說一下,分別有什麼用,怎麼實現的。一致性沒講好。
2 講到了redo和undo日誌,問我分別有什麼用,說redo日誌說錯了。
3 資料庫的隔離性如何保證,使用悲觀鎖和樂觀鎖有何區別。MVCC的設計目的是什麼,怎麼使用版本號判斷數據的可見性。
4 問了一道演算法,1到N的所有數字,按照字典序列印,怎麼做。
說了用數組排序,問複雜度,扯了半天。
怎麼優化,按照數字特徵順序列印,問這個東西和什麼結構比較像。提示是樹,然後說了個多叉樹,問我怎麼實現,最後其實使用dfs遍歷樹的每個分支。
5 多線程並發的同步實現,有兩個方法,每個方法里有a部分代碼和b部分代碼,我要讓兩個線程分別執行兩個方法,並且讓他們運行完a部分代碼再一起向下執行,如何實現。
6 我說了用cyclicbarrier實現,互相等待await。
然後他問我怎麼用信號量實現,並且提示可以再用一個線程。
然後我說了個方案。
7 問了項目
8 如何把優化遞歸的代碼
改成尾遞歸或者循環。
面試官說不是,引導說用棧實現遞歸。
問我棧中需要壓入哪些數據。他說應該是方法參數,返回值,以及返回地址。
二面:
1 自我介紹,項目 10分鐘過去
2 伺服器如何負載均衡,有哪些演算法,哪個比較好,一致性哈希原理,怎麼避免DDOS攻擊請求打到少數機器。
3 TCP連接中的三次握手和四次揮手,四次揮手的最後一個ack的作用是什麼,為什麼要time wait,為什麼是2msl。
4 資料庫的備份和恢復怎麼實現的,主從複製怎麼做的,什麼時候會出現數據不一致,如何解決。
5 今天面試太多了,記不清了。。。
6 開源的技術看過用過么,分散式存儲的了解么。
7 想做什麼方向的開發。
8 Linux查看cpu佔用率高的進程
9 查看佔用某埠的進程和某進程監聽的埠
10 如何查詢日誌文件中的所有ip,正則表達式
三面(8.3號更新):
資料庫部門真的很嚴格,問題都挺難的。
1 講一下項目
2 平時了解什麼操作系統 Linux,說一下Linux排查問題常用的命令,ps,top,netstat,free,du等等
3 Linux的內存管理演算法,問了一下是不是頁面置換演算法,他說是。 說了lru和fifo,問我lru有什麼缺點,沒答上來。
4 Linux的文件系統了解么,講了一下inode節點,文件和目錄的原理。他問我了不了解具體的文件系統ext2,ext3,答不會。。
5 進程通信方式有哪些,問我分別怎麼使用,管道有哪些類型,各有什麼優缺點。
6 問我伺服器硬體了解么。。一臉懵逼,問了我懂不懂Raid,瞎扯了幾句就說不懂了。
7 shell了解么,沒怎麼寫過。
8 聽說你會Java,說一下JVM內存模型把,有哪些區,分別幹什麼的
9 說一下gc演算法,分代回收說下。
10 設計模式了解么,說了7種,問我分別怎麼用,實際應用過嗎,稍微扯了一下。
11 MySQL的引擎講一下,有什麼區別,使用場景呢。
12 查詢最新的10條數據,想了好一會,order by id desc limit 10
13 MySQL的union all和union有什麼區別,我瞎掰了一下,應該不對。
14 MySQL有哪幾種join方式,底層原理是什麼,答不會,只知道表現形式。
15 Redis了解哪些啊,數據結構和基本原理把。 問我Redis怎麼做集群,答了主從哨兵和cluster。 Redis的持久化怎麼做,aof和rdb,有什麼區別,有什麼優缺點。
16 Redis使用哨兵部署會有什麼問題,我說需要擴容的話還是得集群部署。
17 分散式系統了解么,說一下Hadoop了解啥。 我說基本組件稍微了解過,簡單搭過環境。
18 MapReduce的combiner幹啥的,我說是合併結果的,問我啥時候會用到,答不知道。
19 Hadoop分發任務時,有個job失敗了,hadoop會怎麼處理,我答不知道,猜是會繼續執行。。
20 hadoop分發任務,如果有一個節點特別慢拉慢了整體速度怎麼辦。我猜測是通過yarn分配相同的資源給每個任務,可以避免這種情況,他好像不太滿意。
21 hadoop答得很爛。問了我兩個10g文件比較,2g內存,重複率很高,篩選出不同的內容。我說拆成十份hash,每份兩兩比較hash的結果集,貌似他說OK。
22 排序演算法了解哪些,巴拉巴拉。
23 用隊列計算一個樹的高度,我說用層次遍歷記錄節點高度。
24 一個黑名單集合,數據量很大,快速查詢一個值是否在集合里,怎麼設計,我說布隆過濾器。
25 還是上一題,說這個黑名單可能需要動態地增刪改,如何設計才能避免訪問響應太慢。我沒思路,瞎扯了一下加硬體,用內存存,都被駁回了。然後他說算了。
26 上一題的黑名單做成分散式,怎麼做。說了分片的方案,根據地址的hash值確定分片所在節點。
27 分散式資料庫了解么,我不太明白他問的是啥,說不了解,感覺應該是問資料庫的分散式方案。
28 有什麼想問的,據他所說還有2-3輪面試,驚了。
全程50分鐘,可以說是迄今為止難度最大的一個?
百度智能雲 賬號和消息部門
一面:
1 項目
2 講一下AOP吧
3 動態***和靜態***有什麼區別
4 TCP和IP報文是否會分片,分別在什麼情況下會分片。
TCP分包之後是否還會進行ip分片
5 做個題
無限長軌道。兩輛車同方向開,車會滴水,怎麼讓他們相遇。這題簡直像腦筋急轉彎。
6 寫一個斐波那契數列
遞歸式,要求改進
dp方式,要求優化空間
用三個變數代替數組進行dp,要求改進
我說數學公式,OK。
7 講一下Linux的內存結構,我說只會JVM的,他讓我說一下。
兩者的內存如何映射,是什麼關係,不會。
8 沒了
二面 :
1 項目講一下,10多分鐘去了。
2 排序演算法,複雜度,比較。快排的空間複雜度是logn
3 講一下OSI七層模型,我說了5層模型,然後他讓我再補充一下,問了每層的作用,問了wifi屬於哪一層。
4 線程間的同步用什麼方式,說了object方法。
問我使用hashmap時重寫哪兩個方法,為什麼要重寫,巴拉巴拉,什麼場景下重寫。
5 平時用過什麼數據結構,list用哪些有啥區別。
6 Spring中的ioc和aop。ioc的註解有哪些。
autowired和resource有什麼區別,作用域有哪些。
autowired如何配置兩個類中的一個嗎
7 寫一個單例模式,有點忘卻了,巴拉巴拉搞出一個雙重檢測的,中間改了多次。
8 Java會有內存泄漏嗎,三個區分別什麼情況下會產生內存泄漏
百度智能雲
好像是基礎研發工程師的崗位
一面
1 項目
2 隊列和棧區別
3 兩個棧實現隊列,兩個棧實現最小值棧
4 資料庫的事務性質,如何實現這些性質
5 事務隔離級別有哪些,默認是什麼級別。
6 已提交讀有什麼問題,用於什麼場景
7 二叉樹了解么,平衡二叉樹呢,有什麼場景會用到呢。
8 殭屍進程和孤兒進程是什麼,分別有什麼危害。
9 主從複製怎麼實現。
10 Redis你用來做什麼,為什麼不用mq做非同步隊列
11 分散式文件系統了解么,HDFS講一下原理
12 Java中一般用什麼類型表示價格。
13 Java如何把byte類型轉換成字元串
14 Java的string類型為什麼是不可變的
15 有什麼問題
百度核心搜索
一面:
1 自我介紹
2 docker和k8s了解多少
3 研究生學了哪些課程
4 操作系統了解么,講一下進程和線程
5 死鎖和處理方式
6 內存,虛擬內存和頁面置換 7 網路了解么,講一下三次握手和四次揮手
8 資料庫了解多少,mysql索引,事務,鎖講了一些
9 Redis呢,講了一下數據結構,持久化方式,使用場景
10 分散式了解哪些,負載均衡有哪些方式,說了dns,nginx,lvs和硬體,一致性問題怎麼解決,說了2pc,3pc,raft和paxos,zab
10 mysql大表數據查詢,怎麼優化,分表,分庫。
11單鏈表判環 使用快慢指針解決
12 完全二叉樹判斷:
二面:
1 項目
2 docker和kubenetes的原理和了解程度
3 docker的cgroup了解么
4 kubenetes的架構,擴容是怎麼完成的。
5 Java的四種引用
6 Java的線程通信方式
7 Linux的進程通信方式
8 Java的線程池
9 演算法 1 – N + 1這些數中取出N個,問剩下的是哪個。。 我說加起來相減,面試官說取巧了,不能這樣。 我說比較數組下標,他還是說取巧。
於是我讓他提示我一下,他說了排序再找。。額
然後想了兩個空間換時間的辦法,一個是用hashmap遍歷兩個數組。一個是合併數組後統計數字出現次數,也是hashmap
10 給定一串數字,找出所有可能的IP地址組合,比如192168111,組合是192.168.1.11,192.168.11.1。 應該LeetCode的題。之前自己沒寫完整,現場憋出來了。
這個代碼應該沒錯。面試官看了二十分鐘才說ok。 然後我們就這樣沉默了20分鐘,中間他就說了幾句話。
最後面試官說他們部門一共兩輪面試。
咱們下期見!答案獲取方式:已贊 已評 已關~
原文出處:;order=jingpos=page=2ncTraceId=channel=-1source_id=search_post_nctrackgio_id=FD441016D0B12571A898266FE8D1C8C6-1657195040955
Java八股文用兩天能去面試嗎
可以去面試。
但是通過率不高。
程序員八股文是指程序員在面試過程中經常被問到的問題,大多都有固定化、格式化的答案,俗稱為面經。比如HashMap和HashTable有什麼區別:mysql的xxx引擎的數據結構:jvm堆空間的布局、Leetcode演算法等。
Java學會那些知識找工作才不費力?
很多Java初學者會關心這麼一個問題——Java學到什麼程度就可以出去找工作了?大家的目標都很明確,也很實在,學習Java無非就是為了找個工作,使自己和家人生活更好。那到底要學到那些Java知識,就可以去找第一份工作了呢?下面咱們就以公司大小運用到的技術來解答,為什麼這樣說呢,小型的公司肯定沒有大型公司運用到的知識多,從另一個角度來看,大家也可以來測試一下自我學到的知識符合去一個什麼樣的企業。下面是我給大家總結和介紹。1、中小型公司:這類公司可以說特別的多,招聘和培訓可能會有自己的一套標準,比如學歷上可能稍微做一些要求,技術上的把關也會有一定的方法,除了Java基礎知識和項目經歷之外,可能還會考查你的debug能力,代碼規範、異常處理能力,以及對一些Java高級特性的理解能力,可能最好多用過一些框架。總而言之,這類公司選人的標準已經擁有了自我體系,不會像一些特別小的公司,招人很隨意,領導拍個板就行。當然,這類公司也吸引不到太多優秀人的人才,但是也確實可能會有一些踏實能幹的勤奮員工。2、大中型公司:這類公司一般都會要求本科學歷,對Java基礎知識要比較熟悉,最好能夠看過源碼,如果沒看過,那麼源碼方面的面試題好歹也要準備一下,除此之外,一般來說還會考察你的後端技術知識,比如資料庫、網路、操作系統,考察的不會太難,能把面經上的知識點掌握了就算是比較紮實了。這類公司一般不會考太複雜的題目,更希望招一些水平能力都是中等的人才,只要知識面能比較廣,題目都能說到點子上,不需要掌握得特別深入,也可以有機會拿到offer。其實歸結原因,就是因為二三線互聯網不太可能和一線公司爭奪一線人才,所以一般爭取的都是二線人才,不需要太優秀,但是至少要是中等水平,所以這些公司對很多程序員來說還是比較有機會的。3、特大型公司:要進這些公司,不僅要做到之前那些事情:掌握Java基礎、計算機基礎知識,並且是非常熟練地掌握,你需要深入理解每一個知識點,因為面試官會不斷深入地向你提問,了解你的知識深度,同時,你需要對源碼有所理解,在讀懂源碼的基礎上去理解框架的實現、JDK的實現。另外,你需要對JVM有一個清晰的認識,不僅要了解其結構,垃圾回收原理,甚至還要知道如何在遇到線上問題時通過JVM調優來解決它們。同理,你還需要對Java並發編程和網路編程的使用方法與底層實現原理非常熟悉,不僅僅答出NIO和BIO的區別,或者是synchronized和lock的區別,你還需要知道NIO的底層實現epoll是什麼,synchronized對應的mutexlock是什麼,lock和condition的實現原理又是什麼,而lock本身也是通過AQS、CAS操作類等組件來實現的,其中的內容實在太多,絕不只是幾道面試題就可以搞定的。當然,除此之外,這些公司對資料庫、緩存、分散式技術等方面的要求都會比其他公司要高得多,你最好要搞懂MySQL的存儲引擎、索引和鎖的實現原理,Redis緩存的數據結構、備份方式、底層實現。同時如果你能理解負載均衡演算法、CAP理論,甚至是raft和paxos演算法,以及分散式常用技術如消息隊列、zookeeper等等,那麼無疑也是可以為你加分的技能。為什麼大公司的要求這麼高,因為它們是最好的互聯網公司,要招的自然也是最優秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會考察面試者的演算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,演算法題相對考察理論基礎而言,篩選度更高,可以淘汰的人也更多。
java為什麼叫面試八股文?
java叫面試八股文的原因是跟八股文一樣有固定1格式。因為現在Java程序員在面試的時候,大多數公司模式都比較固定,問的問題也差不多,所以Java程序員八股文是指程序員在面試過程中經常被問到的問題,大多都有固定化,格式化的答案,俗稱為面經。
Java為純面向對象的語言,它能夠直接反應現實生活中的對象,具有平台無關性,java利用Java虛擬機運行位元組碼,無論是在Windows,Linux還是MacOS等其它平台對Java程序進行編譯,編譯後的程序可在其它平台運行。
java的特點
Java為解釋型語言,編譯器把Java代碼編譯成平台無關的中間代碼,然後在JVM上解釋運行,具有很好的可移植性,Java提供了很多內置類庫。如對多線程支持,對網路通信支持,最重要的一點是提供了垃圾回收器。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189954.html