java 面試題 由淺入深_面試官由淺入深的面試套路

閱讀文本大概需要3分鐘。

60244cc7757656e3ef056a294a2a7a93.png

從上圖看來面試官面試是有套路的,一不小心就一直被套路。

0x01:Thread

面試官

:創建線程有哪幾種方式?

應聘者

:繼承Thread類、實現Runable接口、使用j.u.c中的線程池

面試官

:繼承Thread類和實現Runable接口有什么區別?

應聘者

1、Runnable接口可以避免單繼承的限制,要是繼承Thread類的話,那么就不能繼承其他的類了,因為只能單繼承,如果實現了接口Runnale后,還可以繼承其他的類,或實現其他的接口。

2、Runnable增強了程序的健壯性,代碼能夠被多個程序共享,實現了數據 與代碼是獨立的。

3、實現Runnable接口的線程的運行代碼存在實現Runnable接口子類的run()方法中,繼承Thread類的線程的代碼存在Thread子類的run()方法中。

面試官

j.u.c中的線程池的處理流程

應聘者

1、當向線程池提交一個任務之后,線程池的處理流程如下:

判斷當前核心線程數量是否大于最大值,否則創建一個新線程來執行任務,是則將該線程加入阻塞隊列,進入下一步。

判斷當前阻塞隊列是否已滿,否則將任務存儲到隊列,是則進入下一步。

判斷當前線程池中的線程是否達到最大值,否則創建一個新線程執行任務,是則交給飽和策略處理該任務。

2、線程池提供的飽和策略目前有以下4種:

AbortPolicy:直接拋出異常(默認策略)。

CallerRunsPolicy:只用調用者所在線程來運行任務。

DiscardOldestPolicy:丟棄隊列里最近的一個任務,并執行當前任務。

DiscardPolicy:不處理,直接丟棄。

0x02:Redis

面試官

:redis有哪些數據類型?

應聘者:

string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

面試官

:在項目中你用到哪些數據類型?主要用到什么場景

應聘者:

在項目中經常使用string和hash,用string來存儲登錄用戶的用戶信息;使用hash存儲一類相同類型的數據。

面試官

:redis的string類型是怎么實現的?

應聘者:

redis數據庫底層沒有直接使用c的字符串表示,而是自己使用名為簡單動態字符串(simple dynamic string,SDS)

struct sdshdr{

int len; //記錄buf數組中以使用字節的數量,等于SDS所保存字符串的長度

int free; //記錄buf數組中未使用字節的數量

char buf[]; //字節數組,用于保存字符串

}

從以上兩個案例可以看出,面試的時候一個好的面試官應該可以由淺入深。在一個知識面全方位的考察應聘者。所以在準備面試的時候不能淺行則止,要深入了解原理;特別已經在職場打拼5年以上的從業者,更需要深入了解各種知識點的原理。否則只能做些業務相關的開發工作,很難達到架構師的級別。

以下分享一些面試題:

1、對微服務的理解

2、JDK1.8的新特性

3、Map集合1.8的新特性

4、MySQL索引的數據結構

5、MySQL為什么使用自增主鍵比較好

6、垃圾回收算法

7、簡單講講自己比較好的項目,自己的職責,然后展開一些問題,比如某些功能怎么實現,項目出現了什么難點問題怎么解決?

8、分布式調度如何實現

9、Redis數據類型,string類型如何實現

10、復合注解的實現

11、spring boot的多環境

12、A順序調用BCD服務(bcd對DB都有操作),c故障斷開,B如何保證數據一致性

13、四則運算算法題,說說實現邏輯以及如何定位優先級

14、Session如何共享

15、Session怎么存,怎么才能防止不一致

關注我

每天進步一點點

喜歡!在看?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396302.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎么用centos7運行c語言程序_centos如何編譯c語言代碼

centos如何編譯c語言代碼,文件,選項,作用,鏈接,程序 centos如何編譯c語言代碼 易采站長站,站長之家為您整理了centos如何編譯c語言代碼的相關內容。 編譯c,c++代碼 安裝gcc 1、使用如下命令查詢 centos 官方gcc的所有包:yum -list gcc* 可安裝的軟件包gcc.x86_64gcc-c++.x86…

第四篇:基本數據類型及用法(1)

字符串(str型) -可以做加法,乘法 乘法例: n1"alex" n2n1*3 print(n2) #結果:alexalexalex -首字母大寫: capitalize() -所有字母變小寫: casefold()、lower() #casefold更牛,很多未知的對應關系也…

Android Studio 錯誤集

錯誤列表與解決方案: 1.Android studio Gradle project sync failed Android studio 構建項目出錯 Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assign more memory to Gradle in the projects gradle.properties file.…

需求簡報_代碼簡報:我如何通過做自己喜歡的事情來獲得頂級技術實習

需求簡報Here are three stories we published this week that are worth your time:這是我們本周發布的三個值得您關注的故事: How I landed a top-tier tech internship by doing something I love: 7 minute read 我如何通過做自己喜歡的事情獲得一流的技術實習…

review what i studied `date` - 2017-3-31

在11 月份內,每天的早上6 點到12 點中,每隔2 小時執行一次/usr/bin/httpd.sh 怎么實現0 6-12/2 * 11 * /usr/bin/httpd.shNginx中的ip_hash是指講一個地址的請求永久分發至后端的一臺RealServer,直至這臺RealServer宕機Zabbix和Nagios的工作原…

java string轉long報錯_java.lang.Integer cannot be cast to java.lang.Long解決辦法

你好我是辰兮,本次是項目遇到的java.lang.Integer cannot be cast to java.lang.Long異常以及相對應的解決方案。文章目錄一、實戰問題用postman測試數據報錯,類型轉換異常!如何將Integer類型轉換成長整形 ?先轉成String型&#x…

pyqt 界面關閉信號_木辛老師的編程課堂之Python和Qt實戰慕課軟件開發:增加關閉按鈕...

軟件實戰開始,快速提供編程能力;通過實戰,分析產品需求,梳理設計需求,提升項目分析和架構的能力。快點跟著木辛老師一起學習吧!請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程…

從零開始nodejs系列文章

http://blog.fens.me/series-nodejs/轉載于:https://www.cnblogs.com/chinafbi/p/5394482.html

Leetcode589.N-ary Tree Preorder TraversalN叉樹的前序遍歷

給定一個 N 叉樹&#xff0c;返回其節點值的前序遍歷。 class Node { public:int val;vector<Node*> children;Node() {}Node(int _val, vector<Node*> _children) {val _val;children _children;} };//遞歸 class Solution { public:vector<int> res;vect…

打破雙親委派么,怎么打破_質量保證被打破。 這就是我們如何使其像其他所有東西一樣敏捷。...

打破雙親委派么,怎么打破by Derwin由Derwin 質量保證被打破。 這就是我們如何使其像其他所有東西一樣敏捷。 (Quality Assurance is broken. Here’s how we can make it as agile as everything else.) Process is the key to great software.過程是出色軟件的關鍵。 In gen…

android java.lang.linkageerror_使用eclipse中的maven構建web應用出現 java.lang.LinkageError異常...

????: Servlet.service() for servlet [jsp] in context with path [/webdemo] threw exception [java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different typ…

android 鍵盤遮蓋輸入框_Android軟鍵盤擋住輸入框的終極解決方案

前言開發做得久了&#xff0c;總免不了會遇到各種坑。而在Android開發的路上&#xff0c;『軟鍵盤擋住了輸入框』這個坑&#xff0c;可謂是一個曠日持久的巨坑——來來來&#xff0c;我們慢慢看。入門篇最基本的情況&#xff0c;如圖所示&#xff1a;在頁面底部有一個EditText&…

最全面的幾何畫板實用教程視頻免費下載

不同的選擇就會有不同的人生夜&#xff0c;這里小編為奮斗在教學一線的老師們送個大福利&#xff0c;這也是老師們充實自己的好去處。作為數學老師一枚&#xff0c;在平時的教學中應該用到很多教學輔助軟件&#xff0c;而幾何畫板就是其中一款。眾所周知&#xff0c;幾何畫板是…

Redis(1):簡介

2019獨角獸企業重金招聘Python工程師標準>>> Redis之父Salvatore Sanfilippo于2009年將Redis開源。VMware公司從2010年開始贊助Redis的開發&#xff0c;Salvatore Sanfilippo和Pieter Noordhuis(另一名主要的代碼貢獻者)同年加入VMware&#xff0c;全職開發Redis。R…

小程序服務器域名5次_為什么您不應該在100美元的服務器上用5天的時間構建面向500,000個用戶的應用程序...

小程序服務器域名5次by Howard Lo霍華德羅 為什么您不應該在100美元的服務器上用5天的時間構建面向500,000個用戶的應用程序 (Why you shouldn’t build an app aimed at 500,000 users in 5 days on a $100 server) A few days ago, I read Erik Duindam’s “How I built an…

tp5 異步處理_tp5框架ajax異步添加數據的代碼實現

本篇文章給大家帶來的內容是關于tp5框架ajax異步添加數據的代碼實現&#xff0c;有一定的參考價值&#xff0c;有需要的朋友可以參考一下&#xff0c;希望對你有所幫助。ajax異步無刷新處理數據的用戶體驗還是不錯的&#xff0c;在我們的項目開發中算是經常使用到的一個知識點。…

java中類型轉換的造型_Java總結篇系列:類型轉換/造型

Java中&#xff0c;經常可以遇到類型轉換的場景&#xff0c;從變量的定義到復制、數值變量的計算到方法的參數傳遞、基類與派生類間的造型等&#xff0c;隨處可見類型轉換的身影。Java中的類型轉換在Java編碼中具有重要的作用。首先&#xff0c;來了解下數據類型的基本理解&…

Google Maps API V3 之 路線服務

Google官方教程&#xff1a; Google 地圖 API V3 使用入門 Google 地圖 API V3 針對移動設備進行開發 Google 地圖 API V3 之事件 Google 地圖 API V3 之控件 Google 地圖 API V3 之 疊加層 Google Maps API V3 之繪圖庫 信息窗口 Google Maps API V3 之 圖層 Google Maps API …

day 04 作業 循環和分之

# 讀程序&#xff0c;總結程序的功能:"""1.求2 的20次方numbers1for i in range(0,20):numbers*2print(numbers)2.求100以內能整除3 或 7的數&#xff0c;并21不能整除的數summation 0num 1while num<100: if (num%30 or num%70) and num%21!0: …

Mysql數據庫多實例配置

二進制安裝&#xff1a; [rootlufengcentos ~]# mkdir /home/lufeng/tools -p [rootlufengcentos ~]# cd /home/lufeng/tools [rootlufengcentos tools]# rz [rootlufengcentos tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz [rootlufengcentos tools]# mkdir -p /ap…