大家好,今天來為大家解答java應屆生面試一般問哪些問題這個問題的一些問題點,包括java面試一問三不知怎么辦也一樣很多人還不知道,因此呢,今天就來為大家分析分析,現在讓我們一起來看看吧!如果解決了您的問題,還望您關注下本站哦,謝謝~
如果你是面試官,我來應聘一年java后臺開發經驗,你會問什么
很久沒有面試過一年Java開發經驗的小伙伴了,那如果你是一年開發經驗,并且已經通過了前面的初篩,也就是已經約好面試時間了。
現在開始咱們的面試。
面試官:您先自我介紹一下吧~
候選人:我畢業于xx大學計算機科學與技術專業,工作經驗一年,工作期間主要負責xx項目的xx功能開發。熟悉的技術棧有Java基礎,集合,多線程等知識,熟練使用SpringBoot框架。
PS:廢話不要多說,說你真實的開發項目經驗和你真正熟悉的技能棧。
面試官:ok,好的,那咱們先聊點Java基礎吧,HashSet在項目中用過嗎?它的底層實現你了解嗎?
候選人:HashSet底層是HashMap,HashSet里的每一個元素就是HashMap里面的key。
面試官:那比如現在我要裝一個User對象進去,比如Set<User>users=newHashSet<>(10);那么對于這個User對象有沒有什么要求?
候選人:需要重寫hashCode和equals方法。
面試官:ok,為什么要重寫hashCode和equals方法呢?
候選人:首先,HashSet的特性是不可重復的并且是無序的。因為它的底層是HashMap實現的,HashMap的key就是HashSet的元素,所以他無法保證有序。那不可重復的就是當我們put一個KV數據到HashMap中去的時候,首先需要計算這個key的hashcode,然后在和當前hashMap的容量-1作與元算,即hashcode(key)&(n-1)來計算出他所在hashMap數組中的下標位置,這就是為什么要實現它的hashcode方法。那為什么還要實現equals方法呢?因為hashcode方法存在哈希沖突,無法決定一個對象的唯一性。
ps:能說到這你就成功了一半了!但是還沒結束,因為面試官想知道你到底了解多少!
接下來會是什么問題呢?
那我們聊聊HashMap吧~HashMap的實現原理、擴容機制、為什么初始容量是16?為什么擴容都是2的n次方?HashMap是線程不安全的,線程安全的有哪些?HashTable、Collections.synchronizedMap、ConcurrentHashMapHashTable、Collections.synchronizedMap、ConcurrentHashMap都是怎么保證線程安全的?Volatile關鍵字的實現原理、synchronized關鍵字的實現原理鎖優化、鎖升級對象頭markword用戶態、內核態先就這些吧,上面你能聊到哪就聊到哪,都是Java基礎,不會了咱就停止,換一個方向~
后面會在問你數據庫方面的知識,比如Innodb存儲引擎的實現原理,B+樹,為什么不用B樹、二叉樹等等。
什么是聚集索引、什么是非聚集索引、覆蓋索引?回表是什么意思?
還有很多數據庫的知識,有一句話叫做:“你會的越多,你不會的越多!”
如果上面你都ok,不需要問你項目經驗,來干活吧!畢竟你只有一年工作經驗,沒啥項目可問的,又不是你主導的。
實在上面答的不好,只能問問你項目中的開發思路怎么樣了,會嘗試找你開發功能的漏洞,看你怎么臨場發揮,說說你的思路,看看你的邏輯思維是否嚴謹。
以上,看看是否你都會,如果你都會,抓緊學習更多的知識去!如果你不會,抓緊學習更多的知識去!學無止盡~
上面的那些,由淺入深,五年十年的都可以問,有人說工作很多年的沒必要問這些基礎,我不這么認為。如果你開發多年,這些基礎我認為你應該是深入骨髓的,無須準備便可脫口而出的,其他任何理由都是借口。
java面試必問題你在項目中碰到過什么問題
『如果讓你來做HashMap擴容,如何實現在不影響讀寫的情況下擴容?』我覺得逼格高,不是體現在問題多刁鉆,知識點多深,而是一個非常明確,無歧義的問題,能考察出面試者多方面的能力。這個問題背后:
1.了解java中,HashMap的實現;如果一個面試者了解這一點,說明至少他關心過java提供的數據類型的實現,甚至極可能看過源碼,他應該不會是一個純粹的苦力。
2.知道『不影響讀寫的情況下擴容』是什么含義,說明他在工作中了解多線程的相關知識。
3.如果他能提到ConcurrentHashMap中的相關內容,說明他日常編程中有使用到concurrent包,可以繼續聊聊,否則他對多線程的使用可能非常初級。
4.如果他能提出一些解決方案,即使不完整,也能看出他對類似cas等算法、分布式一致性等問題的了解程度。這問題是面試官問我的···
一年經驗的java程序員面試會問哪些知識
首先學會Google,很重要。
實習生準備面試Java開發崗,一般會問什么問題呢
謝謝邀請!
作為一名從業多年的程序員,也出版過Java編程書籍,所以我來回答一下這個問題。
首先,對于剛學習完Java編程的準程序員來說,從實習崗位開始做起是比較現實的選擇,一方面實習崗位不會有太大的工作壓力,另一方面也能夠積累大量的實踐經驗。
對于實習崗位的應聘,主要的問題將集中在以下三個方面:
第一:Java的基本編程思想。Java編程思想的考察主要集中在對于“抽象”的理解,比如類、接口、抽象類分別用于哪些場景,各自的作用是什么等等。另外,面向對象的編程過程、封裝、繼承、多態等都是面試當中經常會遇到的問題。一些大型軟件開發企業往往會在筆試中涉及到IO、多線程和網絡編程(Socket)知識。
第二:數據庫知識。數據庫知識通常是Java實習崗位考察的一個重點,包括基本的Sql語句,數據庫部署等,另外需要掌握JDBC知識。雖然目前通過DAO框架,比如MyBatis,可以完成數據庫映射(OO與OR),但是掌握JDBC的細節還是有一定必要的。隨著大數據應用的逐漸普及,未來Java程序員也需要掌握NoSql數據庫的相關技術。
第三:前端開發知識。雖然Java開發以后端開發為主,但是前端開發知識通常也會涉及到一些,不少開發團隊還比較關注Java程序員的前端開發能力。前端開發知識主要涉及到Html、CSS和JavaScript,其中JavaScript是重點內容,未來JavaScript將是程序員需要掌握的重要技能之一,因為目前JavaScript的應用邊界被不斷擴展,從前端開發到后端開發(Nodejs)再到嵌入式開發,都有JavaScript的身影。
最后,如果應聘Web開發崗位,需要了解Spring框架知識,如果面試大數據開發崗位,還需要了解Hadoop、Spark平臺知識。
我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言!
面試JAVA程序員時,有哪些需要掌握的面試題
大家好,我是王小編。
最近,有一些剛剛學JAVA的同學問我,如何針對面試做一些題目,有哪些題目是在面試過程中會被問到的題目,哪些題目在技術面試時會經常被提及?今天,小編根據自己曾經的面試經驗和經歷,已經開發JAVA這幾年遇到的問題來說說面試JAVA時會被問道哪些題?
1,JAVA基礎面試題
面向對象的特征:封裝、繼承、多態
int和interger之間的區別
包裝類:裝箱與拆箱
String、StringBuilder、StringBuffer之間的區別
反射用途與實現
Session與Cookie之間的區別
自己常用的JDK包有哪些
equals與==之間的區別
jre與jdk之間的區別
I/O流之間的交換使用
JAVA的序列化與反序列化
HTTP請求的get和post的區別
注解的使用
hashcode與equals之間的使用與區別
object常用的類
JAVA的跨平臺性是怎么體現的
JAVA的封裝性主要實現方式
JAVA8,JAVA9的新特性
重載與重寫的區別
抽象類與接口的區別
類的繼承具體實現(extends)
2,JAVA集合面試題
list和set的區別
set與hashcode、equals之間的使用
list和map的使用
arraylist與linkedlist
hashset與hashmap的使用
mashmap的實現代碼與原理
手寫hashmap
多線程的使用
arraylist與vector的使用
多線程情況下的hashmap死循環問題
集合類源碼
3,進程與線程
進程與線程的概念
并發操作
創建線程的方式、過程
進程間通信問題
手寫火車站購票系統
簡述semaphore原理
簡述exchanger原理
線程池的實現方式
線程的生命周期
thread的實現原理
4,鎖機制
簡述線程安全問題
如何監測死鎖
產生死鎖的四個必要條件
synchronized的使用方式與情景
volatile的實現過程與實現原理
lock與synchronized的區別
AQS的同步隊列
同步與異步的概念
CSA無鎖概念
什么是ABA問題,出現問題時如何解決
樂觀鎖的使用情景
有哪些原子操作類
偏向鎖、輕量級鎖、重量級鎖、自旋鎖的概念
5,JVM的知識點
JVM運行時的區域劃分
內存移出問題
常見的GC回收機制算法
常見的JVM性能檢測和故障處理
JVM設置參數
JVM性能調優
強引用、弱引用、虛引用、硬引用
JAVA內存模型
6,設計模式
單例設計模式
工廠設計模式
代理設計模式
設計模式的六大原則與含義
手寫常見的設計模式
spring用到了哪些設計模式
mybatis用到了哪些設計模式
常見的開源代碼的設計模式
動態代理
每個設計模式的優缺點
7,數據結構
二叉樹、平衡二叉樹、B樹、紅黑樹
深度有限算法、廣度優先算法
普林母算法、迪可拉斯算法
快速排序算法
直接插入排序
冒泡排序算法
快速排序算法
折半查找算法
堆排序
一致性hash及其原理
8,網絡I/O基礎
BIO、AIO、NIO
長連接與短連接
http1.0與http2.0的區別
https的基本概念
http與https之間的區別
三次握手與四次握手,為什么要這么做
瀏覽器中的URL的使用問題
以上是我個人總結的JAVA基礎面試題目,在學習完JAVA基礎的前提上,繼續學習JAVA中級題目,如果你掌握了以上的所有問題,你可以是一名合格的JAVA初級程序員了。
????????如果以上問題有什么不懂,可以評論留言,我做一下簡單的回答。????????因為今天晚上不加班,哈哈哈。
文章分享結束,java應屆生面試一般問哪些問題和java面試一問三不知怎么辦的答案你都知道了嗎?歡迎再次光臨本站哦!