面試知識點

Java/web基礎java

 

Static,final關鍵字,抽象類,代碼塊,Object類的方法,==equelsmysql

集合的繼承關係及其特性,以及hashMap存取(1.7,1.8),常見IO流對象及使用linux

反射的知識點nginx

經常使用設計模式:git

多線程方面:web

瞭解併發面試

建立線程redis

線程生命週期,算法

線程中的方法:spring

(sleep.wait,notify,join,yeild,interrupt,interrupted,isInterrupted)

synchronized用法(靜態方法,非靜態方法),特色和缺點等

Lock的使用;ReentrantLock,ReentrantReadWriteLock,公平鎖,Condition實現等待通知機制,synchronized的區別和比較等

volatile關鍵字用法,JMM內存模型,happens-before原則,使用場景等

線程池,繼承關係,任務類型和區別,核心參數和工做流程策略,幾種常見線程池

理解悲觀鎖,樂觀鎖,CAS優缺點等,數據庫實現樂觀鎖,Atomic系列

JUC包下countdownlatch,seamphore,cyclicbarrier的使用

Threadlocal,conCurrenthashmap使用

經常使用阻塞隊列及使用,區別等

 

cokkiesession的使用,區別等http/https,servlet,get,post請求

NIO

 

代碼考察:二分查找,冒泡排序,遞歸,死鎖,單列,設計模式,集合操做

 

框架:

SpringMVC流程,註解,攔截器的使用,@ControllerAdvice+@ExceptionHandler全局異常

Spring IOC/AOP的理解,

Bean的生命週期,做用域

自定義AOP,JDK/cglib代理

Spring事物,隔離級別,傳播機制

Spring中多線程@EnableAsync, @Async

Spring定時任務

spring事件(Application Event

Spring中用到設計模式

自定義註解

SpringBoot:使用,理解,一些註解做用等。。。

 

Mybatis

Mybatis的工做流程,mybatis的攔截器機制

#{}${}的用法和區別

mybatis一級緩存二級緩存以及兩者區別,二級緩存的策略

 

 

數據庫:

優化方案;

索引的基本知識

索引使用場景和索引失效場景,

索引的數據結構:

讀寫分離,其餘。。。

 

 

JVM:

虛擬機的內存區域分類,用處,異常等信息,常見參數(xms,xmx…

內存分配的方式以及如何選擇

內存泄漏和內存溢出

對象的訪問定位的兩種方式(句柄和直接指針兩種方式)

對象建立的步驟

判斷一個對象是否存活?(或者GC對象的斷定方法)

java垃圾回收機制

垃圾收集算法和經常使用垃圾回收器,GC回收策略(minor gcMajor GC,full gc

類加載機制(類加載器,自定義,什麼場景使用)+雙親委派

JDK 1.8以後Perm Space有哪些變更

分佈式:

CAP,BASE理論

分佈式事物的實現方式(2段,3段,基於最終一致性和TCC補償)

分佈式鎖的實現

分佈式鎖的使用場景

分佈式惟一ID生成方案

 

Redis

數據結構,經常使用API,持久化,分片集羣

 

Dubbo+zookeeper/CloudRPCREST

 

其餘:mqquartzlinux,docker,其餘工做中的問題

數禾:

  1. concurrenthashmap鎖機制,什麼狀況下加鎖
  2. hashMao原理,怎麼解決hash衝突,爲何是不安全的
  3. springIOC機制講一下4.springAOP使用場景,你是怎麼用的
  4. redis數據結構發佈訂閱機制,你是用於什麼業務場景,爲何要採用
  5. mybatis的xml怎麼和dao的方法名稱對應起來的

6.rabbitMq,你是用來幹啥的,講講,路由模式怎麼講消息發送到指定的queue

7.Nginx反向代理和負載均衡如何配置

8dubbo超時機制

10.mysql查詢的時候,若是某一列有一個字段是null,那麼相對在查詢結果集的前面,仍是後面?爲何?

12.線程池,有哪幾種,幾個重要參數說一下

 

諾亞財富:

1.jwt往死裏問。

2.hsahMap的原理、hashMap  jdk1.8比jdk1.7有哪些變化,紅黑樹的算法時間複雜度是多少,鏈表的時間複雜度是多少?

3.單點登陸問題,若是一個用戶開啓兩個瀏覽器,怎麼再第二個瀏覽器登陸的時候,把第一個登出

4.rabbitMq 生產者怎麼保證消費者必定消費了消息。

5.給我一個數字,讓我在數組裏以最快的速度找出一組兩個數字的和等於這個數字,而且輸出兩個數字的下標

6.redis我都用過哪些數據結構,通常都用來放什麼,鏈接用的是jedis。仍是redisTemplate

7.分佈式事務,通常都有個全局事務id,若是讓你本身設計全局事務id,你怎麼設計,不借用任何中間件

8jpa,我是用來連mysql的嗎,我回答是,他就沒問了

9. 分佈式任務調度框架

10.git版本管理工具,咱們是怎麼管理接口的版本的

 

 

 

 


1.分佈式鎖不用redisson框架實現,直接用redis怎麼實現
2.hashMap數組+鏈表的鏈表是怎麼排序的?懂底層實現嗎
3.concurrentHashMap 什麼狀況下加鎖
4.redis數據結構zset用過嗎?用來幹啥的
5.悲觀鎖、樂觀鎖、樂觀鎖是怎麼實現的,CAS、AQS、ABA是個啥玩意,我不懂
6.mysql索引算法,B+樹講一下,預編譯有什麼好處,除了防止sql注入還有啥好處;#和$的區別;最左原則講一下
7.怎麼作到百億級別的數據查詢,只須要幾毫秒就能返回想要的結果
8.若是有個很大的文件,在併發量幾百甚至上千的狀況下,都去請求這個文件,你怎麼作好快速響應?
9.線程池有哪幾種,經常使用的的那幾個參數講一下,都是什麼意義,你經常使用哪一個,我說newFIxed那個,他說使用這個線程池須要注意什麼,我沒想起來?

10.線程有哪些狀態,說一下,run和strat有什麼區別

11.若是一個能支撐100併發的如今忽然讓支持300甚至500併發,又不給你增長機器,你怎麼作?
12.kafka有什麼很差的地方嗎?dubbo+zookeeper有什麼很差的地方嗎?使用zookeeper作過度布式鎖嗎?
13.分佈式事務用過哪些?跨庫事務用過嗎?

 

 

 

分享下今天的面試題:說下HashMap,nginx使用那些功能,線程池,ZK有那些功能,選舉咋弄的,voliate關鍵字用法,項目結構圖,數據庫優化,B數b+樹的區別,threadLoal的實現和問題,手寫涉及模式,AOP的代理及實現,分佈式事物的實現,多路複用,JVM的垃圾收集算法優缺點,五子棋怎麼收子,怎麼保證線程安全和又發揮多線程的快速做用,Spring Cloud hystrix中信號量和線程池的區別,ribbon的實現原理,CPU滿了怎麼檢查,docker File命令,CAS怎麼實現共享數據的分配

 

 

 

redis和數據庫的一致性問題
zookeeper底層協議
手寫rpc框架
zookeeper選舉機制算法
zookpper生產者掛了,消費者怎麼辦
reids持久化機制
redis主從同步機制
redis若是物理內存快用完了怎麼辦

分庫分表
怎麼作兩個庫的表的關聯查詢
fullGc發生在哪裏
mongo分配的副本

mysql索引會不會用在varchar列上
restful風格怎麼理解

 

Spring中的CacheManager