Java基礎面試題庫|附答案|持續更新
- 說下面向對象四大特性
- Java語言有些特點
- 什么是Java程序的主類?應用程序和小程序的主類有何不同?
- 訪問修飾符public,private,protected,以及不寫(默認)時的區別?
- float f=3.4;是否正確?
- Java有沒有goto?
- &和&&的區別?
- Math.round(11.5) 等於多少?Math.round(-11.5)等於多少?
- 用最有效率的方法計算2乘以8?
- 什么是Java注釋
- Java有哪些數據類型
- final 有什么用?
- final finally finalize的區別
- String str = "i" 和String str = new String("1")一樣嗎?
- Java 中操作字符串都有哪些類?它們之間有什么區別?
- Java中為什么要用 clone?
- 深克隆和淺克隆?
- new一個對象的過程和clone一個對象的區別?
- Java中實現多態的機制是什么?
- 談談你對多態的理解?
- 構造器(constructor)是否可被重寫(override)?
- 兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
- String類的常用方法有哪些?
- char型變量中能否能不能存儲一個中文漢字,為什么?
- this關鍵字的用法
- super關鍵字的用法
- this與super的區別
- static存在的主要意義
- static的獨特之處
- static應用場景
- static注意事項
- break ,continue ,return 的區別及作用
- 在Java中定義一個不做事且沒有參數的構造方法的作用
- 構造方法有哪些特性?
- 靜態變量和實例變量區別
- 靜態方法和實例方法有何不同?
- 什么是方法的返回值?返回值的作用是什么?
- 什么是內部類?
- 內部類的分類有哪些
- Java中異常分為哪些種類?
- hashCode 與 equals (重要)
- hashCode()介紹
- 為什么要有 hashCode
- 抽象類和接口(Java7)的區別
- Java 8的接口新增了哪些特性?
- 重寫和重載的區別
- ArrayList和LinkedList有什么區別?
- HashMap是怎么實現的?
- HashMap在Java7和Java8中的實現有什么不同?
- HashMap有時候會死循環,你知道是什么原因嗎?
- ConcurrentHashMap是怎么實現的?
- 靜態代理和動態代理的區別
- JDK動態代理和CGLIB動態代理的區別
Java多線程面試題庫|附答案|持續更新
- 說說synchronized的實現原理
- ReentrantLock與synchronized的區別
- ReentrantLock實現原理
- Java原子類AtomicInteger實現原理
- Java線程池實現原理
- ThreadLocal實現原理
- InheritableThreadLocal原理知道嗎?
- 說一下synchronized鎖升級過程
- 了解過什么是“偽共享”嗎?
- “偽共享”出現的原因是什么?
- 如何避免“偽共享”?
- Java里的線程有哪些狀態?
- 什么是悲觀鎖?什么是樂觀鎖?
- 怎么停止一個運行中的線程?
- 說一下你對volatile的理解?
- 並發編程三要素?
- 線程池的優點?
- CyclicBarrier和CountDownLatch的區別
- 什么是CAS?
- CAS的問題
- 什么是AQS?
- AQS支持幾種同步方式?
- 什么是自旋鎖?
- 什么是多線程的上下文切換?
- 什么是線程和進程?
- 程序計數器為什么是私有的?
- 虛擬機棧和本地方法棧為什么是私有的?
- 並發與並行的區別?
- 什么是線程死鎖?如何避免死鎖?
- sleep() 方法和 wait() 方法的區別和共同點?
- 為什么我們調用 start() 方法時會執行 run() 方法,為什么我們不能直接調用 run() 方法?
- 什么是線程安全問題?如何解決?
- 什么是活鎖?
- 什么是線程的飢餓問題?如何解決?
- 什么是線程的阻塞問題?如何解決?
- synchronized 關鍵字和 volatile 關鍵字的區別
- 說一說幾種常見的線程池及適用場景?
- 線程池都有哪幾種工作隊列?
- 什么是線程安全?
- Java中如何獲取到線程dump文件
- Java中用到的線程調度算法是什么?
- Thread.sleep(0)的作用是什么?
- 單例模式的線程安全性
- Semaphore有什么作用?
- Hashtable的size()方法中明明只有一條語句"return count",為什么還要做同步?
- 同步方法和同步塊,哪個是更好的選擇?
- 高並發、任務執行時間短的業務怎樣使用線程池?並發不高、任務執行時間長的業務怎樣使用線程池?並發高、業務執行時間長的業務怎樣使用線程池?
Java虛擬機面試題庫|附答案|持續更新
- 說一下JVM的內存結構?
- 棧幀里面包含哪些東西?
- 程序計數器有什么作用?
- 字符串常量存放在哪個區域?
- 你熟悉哪些垃圾收集算法?
- Java里有哪些引用類型?
- JVM怎么判斷一個對象是不是要回收?
- GC Roots 有哪些?
- 你知道哪些GC類型?
- 對象都是優先分配在年輕代上的嗎?
- 你了解過哪些垃圾收集器?
- 說說CMS垃圾收集器的工作原理
- 說說G1垃圾收集器的工作原理
- 說說ZGC垃圾收集器的工作原理
- ZGC收集器中的染色指針有什么用?
- 說說類加載的過程
- 說下有哪些類加載器?
- 什么是雙親委派機制?
- 雙親委派機制可以被違背嗎?請舉例說明。
- Tomcat是怎么打破雙親委派機制的呢?
- Java對象的布局了解過嗎?
- 什么情況下會發生棧內存溢出?
- JVM新生代中為什么要分為Eden和Survivor?
- JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代?
- 什么是指令重排序?
- 什么是內存屏障?
- 什么是happen-before原則?
- 說說你知道的幾種主要的JVM參數
- 怎么打出線程棧信息?
- 為什么需要雙親委派模式?
- 怎么打破雙親委派模型?
- 說一下堆和棧的區別
- Java 8 為什么要將永久代(PermGen)替換為元空間(MetaSpace)呢?
- 說一下Java對象的創建過程
- 對象的訪問定位有哪幾種方式?
- 說一下堆內存中對象的分配的基本策略
- Minor Gc和Full GC 有什么不同呢?
- Java會存在內存泄漏嗎?請簡單描述。
- 如何判斷一個類是無用的類?
- 介紹一下類文件結構吧!
- 說一下 JVM 調優的工具?
- JVM調優命令有哪些?
- JRE、JDK、JVM 及 JIT 之間有什么不同?
- 程序計數器為什么是私有的?
- 如何判斷一個常量是廢棄常量 ?
Java IO面試題庫|附答案|持續更新
- Java 中有幾種類型的流?
- 什么是 java序列化?
- 如何實現 java 序列化?
- 字節流和字符流的區別?
- PrintStream、BufferedWriter、PrintWriter的比較?
- 什么是節點流,什么是處理流,它們各有什么用處,處理流的創建有什么特征?
- 流一般需要不需要關閉,如果關閉的話在用什么方法,一般要在那個代碼塊里面關閉比較好,處理流是怎么關閉的,如果有多個流互相調用傳入是怎么關閉的?
- 什么是BIO
- 什么是NIO
- 什么是AIO
- 同步與異步
- 阻塞與非阻塞
- 同步、異步、阻塞、非堵塞
- 通道是個什么意思?
- 緩沖區是什么意思?
- IO多路復用的底層原理
MySQL面試題庫|附答案|持續更新
- 什么是索引?
- 索引是個什么樣的數據結構呢?
- Hash索引和B+樹索引有什么區別或者說優劣呢?
- 在建立索引的時候,都有哪些需要考慮的因素呢?
- 了解過哪些存儲引擎?各有什么優缺點?
- 說一下什么是事務的ACID屬性吧
- 事務的隔離級別了解過嗎?
- 說說InnoDB的索引原理
- 說說InnoDB的MVCC機制
- 有了解過“回表”的概念嗎?什么情況下會出現“回表”?
- MySQL索引的類型
- 有做過MySQL的索引優化嗎?
- 什么是聚簇索引?
- InnoDB有聚簇索引嗎?MyIsam呢?
- MyIsam的數據是怎么存儲的?
- InnoDB的數據是怎么存儲的?
- InnoDB主鍵索引跟非主鍵索引在數據存儲上的差異
- InnoDB刪除某條記錄后,內部會怎么處理?
- InnoDB如果沒有設置主鍵的話,它內部會怎么處理?
- 為什么InnoDB一定會生成主鍵?
- MySQL分庫分表了解過嗎?
- MySQL的redo日志和undo日志分別有什么用?
- MySQL的redo日志的刷盤時機
- MySQL有哪些鎖?以及各種鎖的作用?
- MySQL中varchar與char的區別以及varchar(50)中的50代表的涵義
- MySQL有哪些日志,分別是什么用處?
- 在哪些情況下會發生針對該列創建了索引但是在查詢的時候並沒有使用呢?
- 為什么要盡量設定一個主鍵?
- 主鍵使用自增ID還是UUID?
- 字段為什么要求定義為not null?
- 如果要存儲用戶的密碼散列,應該使用什么字段進行存儲?
- varchar(10)和int(10)代表什么含義?
- MySQL的binlog有有幾種錄入格式?分別有什么區別?
- 超大分頁怎么處理?
- 關心過業務系統里面的sql耗時嗎?統計過慢查詢嗎?對慢查詢都怎么優化過?
- 什么是存儲過程?有哪些優缺點?
- 說一說三個范式
- 什么情況下應不建或少建索引
- 什么是表分區?
- 表分區與分表的區別
- 表分區有什么好處?
- MVVC了解過嗎
- 在MVCC並發控制中,讀操作可以分成哪幾類?
- 行級鎖定的優點
- 行級鎖定的缺點
- MySQL優化
- key和index的區別
- delete、truncate、drop區別
- MySQL主從復制原理流程
- 自增主鍵最大ID記錄,MyISAM和InnoDB分別是如何存儲的
- Mysql如何優化DISTINCT?
- 解釋MySQL外連接、內連接與自連接的區別
Redis面試題庫|附答案|持續更新
- 什么是Redis?簡述它的優缺點?
- Redis相比memcached有哪些優勢?
- Redis有哪些數據結構?
- Redis主要消耗什么物理資源?
- Redis的全稱是什么?
- 一個字符串類型的值能存儲最大容量是多少?
- Redis為什么那么快?
- Redis如何實現分布式鎖?
- Redis是單線程還是多線程?
- Redis 官方為什么不提供 Windows 版本?
- 為什么 Redis 需要把所有數據放到內存中?
- Redis如何設置密碼及驗證密碼?
- Redis集群如何選擇數據庫?
- 緩存失效?緩存穿透?緩存雪崩?緩存並發?
- Redis中的熱key怎么處理?
- Redis中的大key怎么處理?
- 使用Redis統計網站的UV,應該怎么做?
- Redis事務機制了解過嗎?
- Redis key的淘汰策略有哪些?
- Redis在什么情況下會觸發key的回收?
- Redis的持久化了解過嗎?
- Redis在集群種查找key的時候,是怎么定位到具體節點的?
- Redis集群各個節點之間是怎么保持數據一致性的?
- 用Redis做延時隊列,具體應該怎么實現?
- Redis String的內部編碼有哪些?
- Redis 集群方案應該怎么做?都有哪些方案?
- Redis 集群方案什么情況下會導致整個集群不可用?
- MySQL 里有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中的數據都是熱點數據?
- Redis有哪些適合的場景?
- Redis和Redisson有什么關系?
- Redis中的管道有什么用?
- Redis如何做內存優化?
Spring面試題庫|附答案|持續更新
- 什么是spring?
- 使用Spring框架的好處是什么?
- Spring由哪些模塊組成
- Spring是怎么解決循環依賴的?
- Spring Boot手動裝配有哪幾種方式?
- Spring Boot自動配置原理
- 談談自己對於Spring IOC的理解
- 談談自己對於Spring AOP的理解
- Spring AOP和AspectJ AOP有什么區別?
- Spring中的bean的作用域有哪些?
- Spring中的單例bean的線程安全問題了解嗎?
- Spring中的bean生命周期了解過嗎?
- Spring MVC的工作原理了解嘛?
- Spring框架中用到了哪些設計模式?
- @Component和@Bean的區別是什么?
- 將一個類聲明為Spring的bean的注解有哪些?
- Spring事務管理的方式有幾種?
- Spring事務中的隔離級別有哪幾種?
- Spring事務中有哪幾種事務傳播行為?
- Spring 事務底層原理
- BeanFactory和ApplicationContext有什么區別?
- Resource 是如何被查找、加載的?
- 解釋自動裝配的各種模式?
- 有哪些不同類型的IOC(依賴注入)?
- Spring AOP 實現原理
- ApplicationContext通常的實現是什么?
- Bean 工廠和 Application contexts 有什么區別?
Spring Boot面試題庫|附答案|持續更新
- 什么是springboot
- Spring Boot 有哪些優點?
- 創建一個 Spring Boot Project 的最簡單的方法是什么?
- Spring 和 SpringBoot 有什么不同?
- 如何重新加載 Spring Boot 上的更改,而無需重新啟動服務器?
- Spring Boot 中的監視器是什么?
- 如何在 Spring Boot 中禁用 Actuator 端點安全性?
- 怎么使用 Maven 來構建一個 SpringBoot 程序?
- Spring Initializr 是創建 Spring Boot Projects 的唯一方法嗎?
- 為什么我們需要 spring-boot-maven-plugin?
- 什么是嵌入式服務器?我們為什么要使用嵌入式服務器呢?
- 如何在 Spring Boot 中添加通用的 JS 代碼?
- 如何使用 Spring Boot 部署到不同的服務器?
- 如何使用配置文件通過 Spring Boot 配置特定環境的配置?
- 什么是Swagger?你用Spring Boot實現了嗎?
- 如何實現Spring Boot應用程序的安全性?
- 比較一下Spring Security和Shiro各自的優缺點?
- Spring Boot中如何解決跨域問題?
- Spring Boot的核心注解是哪些?他由哪幾個注解組成的?
- 保護SpringBoot應用有哪些方法?
- SpringBoot 2.X有哪些新特性?與1.X有什么區別?
Spring Cloud面試題庫|附答案|持續更新
- 什么是 spring cloud?
- 使用Spring Cloud有什么優勢?
- 服務注冊和發現是什么意思?Spring Cloud如何實現?
- Spring Cloud由哪些組件組成?
- 什么是Hystrix?它如何實現容錯?
- 什么是Hystrix斷路器?我們需要它嗎?
- 什么是Netflix Feign?它的優點是什么?
- Eureka的工作原理?
- 說說Eureka的自我保護機制?
- 什么是zuul?
- zuul的工作流程?
- 什么是服務熔斷?什么是服務降級?
- 什么是服務雪崩效應?
- ZuulFilter有哪些常用方法?
- 如何實現動態Zuul網關路由轉發?
- 什么是 Spring Cloud Bus?
- Spring Cloud Bus 原理?
- SpringCloud Config可以實現實時刷新嗎?
- Eureka和zookeeper都可以提供服務注冊與發現的功能,兩者的區別
MyBatis面試題庫|附答案|持續更新
- 什么是Mybatis?
- Mybatis的優缺點?
- Mybatis使用場合?
- #{}和${}的區別是什么?
- 當實體類的屬性名和表種字段名不一致怎么辦?
- Mybatis是如何將sql執行結果封裝為目標對象並返回的?都有哪些映射形式?
- 如何獲取自動生成的(主)鍵值?
- Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重復?
- Mybatis動態SQL?
- 說一下resultMap和resultType?
- Mybatis全局配置文件中有哪些標簽?分別代表什么意思?
- Mybatis能執行一對一、一對多的關聯查詢嗎?都有哪些實現方式,以及它們之間的區別。
- Mybatis是否支持延遲加載?如果支持,它的實現原理是什么?
- Mybatis都有哪些Executor執行器?它們之間的區別是什么?
- Mybatis的一級、二級緩存
Netty面試題庫|附答案|持續更新
- 你了解過哪些IO模型?
- 什么是Reactor模型?Reactor的3種版本都知道嗎?
- 了解過粘包拆包嗎?為什么會出現粘包拆包?怎么處理粘包拆包?
- UDP協議會有粘包拆包的問題嗎?為什么?
- Netty 是什么?
- 為什么要用 Netty?
- Netty 的應用場景了解么?
- Netty 的零拷貝了解么?
- Netty 的心跳機制了解么?
- Netty 中有哪些重要組件?
- Netty 發送消息有幾種方式?
- Netty 支持哪些心跳類型設置?
- 說說Netty的執行流程?
- Netty高性能體現在哪些方面?
微服務面試題庫|附答案|持續更新
- 微服務有哪些優缺點?
- 作為注冊中心,Zookeeper和Eureka有什么區別?
- Service Mesh了解過嗎?
- 微服務有哪些特點?
- 單片,SOA 和微服務架構有什么區別?
- Spring Cloud 解決了哪些問題?
- 服務注冊和發現是什么意思?Spring Cloud 如何實現?
- Spring Cloud 和dubbo的區別?
- 什么是微服務?
- 微服務之間是如何通訊的?
- 請談談對SpringBoot 和SpringCloud的理解
- 什么是服務熔斷,什么是服務降級
- 你所知道的微服務技術棧有哪些?
- 什么是 Eureka服務注冊與發現?
- Eureka的基本架構是什么?
- 作為服務注冊中心,Eureka比Zookeeper好在哪里?
Zookeeper面試題庫|附答案|持續更新
- Zookeeper有哪些節點類型?
- 了解過Zookeeper的ZAB協議嗎?
- Zookeeper怎么實現分布式鎖?
- Zookeeper是怎么保證數據一致性的?
- Zookeeper Leader選舉過程是怎樣的?
- Zookeeper怎么實現服務注冊?
- ZooKeeper是什么?
- ZooKeeper提供了什么?
- Zookeeper文件系統
- Zookeeper Watcher 機制
- 客戶端注冊Watcher實現
- 服務端處理Watcher實現
- ACL權限控制機制
- 服務器角色
- Zookeeper 下 Server工作狀態
- 數據同步
- zookeeper是如何保證事務的順序一致性的?
- 分布式集群中為什么會有Master?
- zk節點宕機如何處理?
- Zookeeper有哪幾種部署模式?
- 集群最少要幾台機器,集群規則是怎樣的?
- 集群支持動態添加機器嗎?
- Zookeeper對節點的watch監聽通知是永久的嗎?為什么不是永久的?
- ZAB和Paxos算法的聯系與區別?
- Zookeeper的典型應用場景
- Zookeeper 和 Dubbo 的關系?
- zookeeper負載均衡和nginx負載均衡區別
消息隊列面試題庫|附答案|持續更新
- 消息隊列有哪些應用場景?
- 消息隊列的弊端有哪些?
- 使用消息隊列,怎么確保消息不丟失?
- 使用消息隊列,如果處理重復消息?
- Kafka的消息是有序的嗎?如果保證Kafka消息的順序性?
- 消息如何保證冪等性
- 消息隊列積壓怎么辦
- 各種MQ的比較
- 如何解決消息隊列的延時以及過期失效問題?消息隊列滿了以后該怎么處理?有幾百萬消息持續積壓幾小時怎么解決?
- 為什么使用消息隊列?
Kafka面試題庫|附答案|持續更新
- 為什么要使用 kafka?為什么要使用消息隊列?
- Kafka中的ISR、AR又代表什么?ISR的伸縮又指什么?
- kafka中的broker 是干什么的?
- kafka中的 zookeeper 起到什么作用?可以不用zookeeper么?
- kafka follower如何與leader同步數據?
- 什么情況下一個 broker 會從 ISR 中被踢出去?
- kafka 為什么那么快?
- kafka producer如何優化打入速度?
- kafka producer 打數據,ack 為 0, 1, -1 的時候代表啥, 設置 -1 的時候,什么情況下,leader 會認為一條消息 commit 了
- kafka unclean 配置代表啥?會對 spark streaming 消費有什么影響?
- 如果leader crash時,ISR為空怎么辦?
- kafka的message格式是什么樣的?
- kafka中consumer group 是什么概念?
- Kafka中的消息是否會丟失和重復消費?
- 為什么Kafka不支持讀寫分離?
- Kafka中是怎么體現消息順序性的?
- kafka如何實現延遲隊列?
- 什么是消費者組?
- 解釋下 Kafka 中位移(offset)的作用。
- 闡述下 Kafka 中的領導者副本(Leader Replica)和追隨者副本 (Follower Replica)的區別。
- 如何設置 Kafka 能接收的最大消息的大小?
- 監控 Kafka 的框架都有哪些?
- Broker 的 Heap Size 如何設置?
- 如何估算 Kafka 集群的機器數量?
- Leader 總是 -1,怎么破?
- LEO、LSO、AR、ISR、HW 都表示什么含義?
- Kafka 能手動刪除消息嗎?
- consumer_offsets 是做什么用的?
- 分區 Leader 選舉策略有幾種?
- Kafka 的哪些場景中使用了零拷貝(Zero Copy)?
- 如何調優 Kafka?
- Controller 發生網絡分區(Network Partitioning)時,Kafka 會怎么樣?
- 簡述 Follower 副本消息同步的完整流程。
RabbitMQ面試題庫|附答案|持續更新
- 什么是RabbitMQ?為什么使用RabbitMQ?
- RabbitMQ有什么優缺點?
- 什么是元數據?元數據分為哪些類型?包括哪些內容?與cluster相關的元數據有哪些?元數據是如何保存的?元數據在cluster中是如何分布的?
- 在單node系統和多node構成的cluster系統中聲明queue、exchange,以及進行binding會有什么不同?
- 客戶端連接到cluster中的任意node上是否都能正常工作?
- 若cluster中擁有某個queue的owner node失效了,且該queue 被聲明具有durable屬性,是否能夠成功從其他node上重新聲明該 queue ?
- RabbitMQ 的消息是怎么發送的?
- RabbitMQ 怎么避免消息丟失?
- RabbitMQ的使用場景有哪些?
- RabbitMQ有哪些重要的角色?
- 如何確保消息正確地發送至RabbitMQ?如何確保消息接收方消費了消息?
- 要保證消息持久化成功的條件有哪些?
- RabbitMQ 有幾種廣播類型?
- vhost 是什么?起什么作用?
- 消息基於什么傳輸?
- 消息如何分發?
- 消息怎么路由?
- 如何確保消息接收方消費了消息?
- 如何避免消息重復投遞或重復消費?
- 死信隊列和延遲隊列的使用
計算機網絡面試題庫|附答案|持續更新
- 請簡述TCP/UDP的區別
- TCP對應的協議和UDP對應的協議
- 有哪些私有(保留)地址?
- 你能說一說OSI七層模型?
- 說一說TCP/IP四層模型
- 簡述IP地址的分類?
- 簡述ARP地址解析協議工作原理
- 簡述ICMP、TFTP、HTTP、NAT、DHCP協議
- 說一說TCP的三次握手
- 為什么TCP要三次握手
- TCP建立連接時為什么要傳回 SYN
- TCP為什么要四次揮手
- 滑動窗口和流量控制
- 擁塞控制
- HTTP 協議包括哪些請求?
- TCP time_wait狀態是主動斷開方才有,還是被動斷開方才有?還是兩邊都有?
- TCP的keepalive機制了解過嗎?
- HTTP的keepalive和TCP的keepalive,有什么區別?
- TCP與UDP的區別?
- 簡述 HTTP1.0/1.1/2.0 的區別
- HTTPS的原理了解過嗎?
- TCP里Nagle算法了解過嗎?可以禁用嗎?在Java里怎么禁用?
- HTTP協議為什么無法實現服務端推送?
- websocket協議升級過程了解過嗎?
- websocket幀結構了解過嗎?
數據結構與算法面試題庫|附答案|持續更新
- 什么是算法?
- TreeMap和TreeSet在排序時如何比較元素?Collections工具類中的sort()方法如何比較元素?
- 如何知道二叉樹的深度?
- 介紹一下,堆排序的原理是什么?
- 數組和鏈表的區別
- 二分查找了解過嗎?
- 說下你熟悉的排序算法
- 布隆過濾器了解過嗎?
- 一致性hash算法了解過嗎?
- 如何在一個1到100的整數數組中找到丟失的數字?
- 請你講講LRU算法的實現原理?
- 為什么要設計后綴表達式,有什么好處?
- 什么是B樹?
- 什么是B+樹?
- 談一談,id全局唯一且自增,如何實現?
設計模式面試題庫|附答案|持續更新
- 接口是什么?為什么要使用接口而不是直接使用具體類?
- 設計模式六大原則?
- Java怎么實現單例模式?
- 什么是代理模式?什么是動態代理?Java中動態代理有哪些實現方式?
- 設計模式的類型
- 說說你所熟悉或聽說過的 j2ee 中的幾種常用模式?
- 簡述一下你了解的 Java 設計模式(總結)
- 適配器模式是什么?什么時候使用?
- 適配器模式與裝飾器模式有什么區別?
- 適配器模式和代理模式之間有什么不同?
- 什么是模板方法模式?試舉例說明。
- OOP中的組合、聚合和關聯有什么區別?
- 給我一個符合開閉原則的設計模式的例子?
- 工廠模式與抽象工廠模式的區別?
- 舉出一個例子,在這種情況你會更傾向於使用抽象類,而不是接口?
- Dubbo 源碼使用了哪些設計模式?
- Spring 當中用到了哪些設計模式?
分布式面試題庫|附答案|持續更新
- 分布式id如何生成?
- 雪花算法了解過嗎?
- 什么是CAP定理?
- 分布式事務了解過嗎?
- 什么是二階段提交(2PC)?什么是三階段提交(3PC)?
- TCC了解過嗎?
- Paxos算法了解過嗎?
- Zookeeper的Zab協議了解過嗎?
- 知道什么是Gossip協議嗎?
- 了解過哪些負載均衡算法?
- 負載均衡的實現方案有哪些?
- 正向代理和反向代理的區別
- 分布式 Session了解過嗎?如何實現?
- 如何防止表單重復提交?
- 如何設計一個秒殺系統?
- 分布式系統的接口冪等性設計
- 如何保障請求執行順序
- BASE理論了解過嗎?
- SOA和微服務架構有哪些區別?
Linux面試題庫|附答案|持續更新
- vim有幾種工作模式?
- find 命令如何使用?
- 如何在 /usr 目錄下找出大小超過 10MB 的文件?
- 如何在 /var 目錄下找出 90 天之內未被訪問過的文件?
- 如何在 /home 目錄下找出 120 天之前被修改過的文件?
- 在整個目錄樹下查找文件 “core” ,如發現則無需提示直接刪除它們?
- ls 命令
- df 命令
- rm 命令
- mv 命令
- cp 命令
- tail 命令
- grep 命令
- sed 命令
- 用 sed 命令將指定的路徑 /usr/local/http 替換成為 /usr/src/local/http ?
- awk 命令
- 打印 /etc/passwd 的 1 到 3 行?
- vim 命令
- diff 命令
- sort 命令
- xargs 命令
- 把當前目錄下所有后綴名為 .txt 的文件的權限修改為 777 ?
- tar 命令
- gzip 命令
- bzip2 命令
- unzip 命令
- export 命令
- yum 命令
- rpm 命令
- shutdown 命令
- service 命令
- whereis 命令
- 用一條命令顯示本機 eth0 網卡的 IP 地址,不顯示其它字符?
- 如何禁止服務器被 ping ?
- 設置 DNS 需要修改哪個配置文件?
- 在 Linux 下如何指定dns服務器,來解析某個域名?
Docker面試題庫|附答案|持續更新
- 什么Docker
- Docker與虛擬機有何不同
- 什么是Docker鏡像
- 什么是Docker容器
- Docker容器有幾種狀態
- DockerFile中最常見的指定是什么?
- Docker的常用命令?
- 容器與主機之間的數據拷貝命令?
- 啟動nginx容器(隨機端口映射),並掛載本地文件目錄到容器html的命令?
- 如何使用 Docker 技術創建與環境無關的容器系統?
- 有什么方法確定一個 Docker 容器運行狀態
- Docker Image 和 Docker Layer (層) 有什么不同
- 如何停止所有正在運行的容器?
- 如何清理批量后台停止的容器?
- 如何臨時退出一個正在交互的容器的終端,而不終止它?
- Docker 群(Swarm)是什么
- 在使用 Docker 技術的產品中如何監控其運行
- 什么是孤兒卷及如何刪除它?
- 在 Windows 系統上可以運行原生的 Docker 容器嗎?
- 在 非 Linux 操作系統平台上如何運行 Docker ?
Dubbo面試題庫|附答案|持續更新
- Dubbo是什么?
- 為什么要用Dubbo?
- Dubbo 和 Dubbox 有什么區別?
- dubbo都支持什么協議,推薦用哪種?
- Dubbo需要 Web 容器嗎?
- Dubbo內置了哪幾種服務容器?
- Dubbo默認使用什么注冊中心,還有別的選擇嗎?
- Dubbo有哪幾種配置方式?
- 在 Provider 上可以配置的 Consumer 端的屬性有哪些?
- Dubbo啟動時如果依賴的服務不可用會怎樣?
- Dubbo推薦使用什么序列化框架,你知道的還有哪些?
- Dubbo默認使用的是什么通信框架,還有別的選擇嗎?
- 注冊了多個同一樣的服務,如果測試指定的某一個服務呢?
- Dubbo支持服務多協議嗎?
- 當一個服務接口有多種實現時怎么做?
- 服務上線怎么兼容舊版本?
- Dubbo可以對結果進行緩存嗎?
- Dubbo服務之間的調用是阻塞的嗎?
- Dubbo支持分布式事務嗎?
- Dubbo支持服務降級嗎?
- Dubbo如何優雅停機?
- 服務提供者能實現失效踢出是什么原理?
- 如何解決服務調用鏈過長的問題?
- 服務讀寫推薦的容錯策略是怎樣的?
- Dubbo必須依賴的包有哪些?
- Dubbo的管理控制台能做什么?
- 說說 Dubbo 服務暴露的過程。
Elasticsearch面試題庫|附答案|持續更新
- 為什么要使用Elasticsearch?
- Elasticsearch是如何實現Master選舉的?
- Elasticsearch中的節點(比如共20個),其中的10個選了一個master,另外10個選了另一個master,怎么辦?
- 詳細描述一下Elasticsearch索引文檔的過程。
- 詳細描述一下Elasticsearch更新和刪除文檔的過程
- 詳細描述一下Elasticsearch搜索的過程
- Elasticsearch對於大數據量(上億量級)的聚合如何實現?
- 在並發情況下,Elasticsearch如果保證讀寫一致?
- ElasticSearch中的集群、節點、索引、文檔、類型是什么?
- ElasticSearch中的分片是什么?
- 什么是ElasticSearch?
- Elasticsearch中的倒排索引是什么?
- Elasticsearch中的分析器是什么?
- 說說Elasticsearch常用的調優手段?
- Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法?
- 客戶端在和集群連接時,如何選擇特定的節點執行請求?
- 在 Elasticsearch 中,是怎么根據一個詞找到對應的倒排索引的?
- 對於 GC 方面,在使用 Elasticsearch 時要注意什么?
- 在並發情況下,Elasticsearch 如果保證讀寫一致?
- 如何監控 Elasticsearch 集群狀態?
Java集合面試題庫|附答案|持續更新
- 常見的集合有哪些?
- 常見的集合底層實現
- HashMap與HashTable的區別?
- ConcurrentHashMap和Hashtable的區別?
- ConcurrentHashMap實現原理
- ArrayList 和 Vector 的區別?
- ArrayList和LinkedList的區別?
- HashMap 默認的初始化長度是多少?
- 談談對HashMap 構造方法中初始容量、加載因子的理解
- Java集合框架是什么?說出一些集合框架的優點?
- 集合框架中的泛型有什么優點?
- 為何Collection不從Cloneable和Serializable接口繼承?
- 為何Map接口不繼承Collection接口?
- Iterator是什么?
- Enumeration和Iterator接口的區別?
- Iterater和ListIterator之間有什么區別?
- fail-fast與fail-safe有什么區別?
- hashCode()和equals()方法有何重要性?
- 我們能否使用任何類作為Map的key?
- 如何決定選用HashMap還是TreeMap?
- 哪些集合類提供對元素的隨機訪問?
- BlockingQueue是什么?
- 隊列和棧是什么,列出它們的區別?
- Collections類是什么?
- Comparable和Comparator接口有何區別?
Java高並發面試題庫|附答案|持續更新
- 什么是進程
- 什么是線程
- 進程間如何通訊
- 線程間如何通訊
- 同步和異步有何不同,在什么情況下分別使用它們?舉例說明
- 進程調度算法
- Java中Unsafe類詳解
- 如何測試並發量?
- 有三個線程T1,T2,T3,怎么確保它們按順序執行?
- 什么是線程調度器(Thread Scheduler)和時間分片(Time Slicing)?
- 數據庫死鎖?
- 什么是鎖順序死鎖?
- 死鎖的避免與診斷?
- 常見的並發容器?
- 常見的同步工具類?
- Nginx多進程模型是如何實現高並發的?
- CopyOnWriteArrayList
- AQS
- Java里的阻塞隊列
- Fork/Join框架
Kubernetes面試題庫|附答案|持續更新
- 什么是Kubernetes?
- Kubernetes與Docker有什么關系?
- 什么是Container Orchestration?
- Kubernetes如何簡化容器化部署?
- 什么是Google容器引擎?
- 什么是Heapster?
- 什么是Minikube?
- 什么是Kubectl?
- 什么是Kubelet?
- Kubernetes Architecture的不同組件有哪些?
- 你對Kube-proxy有什么了解?
- 您能否介紹一下Kubernetes中主節點的工作情況?
- kube-apiserver和kube-scheduler的作用是什么?
- 你能簡要介紹一下Kubernetes控制管理器嗎?
- 什么是etcd?
- 你對Kubernetes的負載均衡器有什么了解?
- 什么是Ingress網絡,它是如何工作的?
- 您對雲控制器管理器有何了解?
- 什么是Container資源監控?
- Replica Set 和 Replication Controller之間有什么區別?
Maven面試題庫|附答案|持續更新
- maven是什么?
- 使用Maven好處
- Maven的坐標和依賴
- Maven的⽣命周期
- 你們項目為什么選用 Maven 進行構建?
- Maven 規約是什么?
- Maven 常用命令
- Maven 有哪些優點和缺點
- Maven 版本規則?
- 對於一個多模塊項目,如果管理項目依賴的版本?
- Maven 依賴原則?
- 如何解決 jar 沖突?
- 什么是 Maven 插件?
- Maven依賴沖突
- 依賴的解析機制
MongoDB面試題庫|附答案|持續更新
- 什么是MongoDB?
- MongoDB的優勢有哪些
- 什么是集合(表)?
- 什么是文檔(記錄)
- 為什么用MOngoDB?
- 在哪些場景使用MongoDB
- MongoDB中的命名空間是什么意思?
- MongoDB中的分片什么意思
- 為什么要在MongoDB中使用分析器
- MongoDB支持主鍵外鍵關系嗎
- MongoDB支持哪些數據類型
- 為什么要在MongoDB中用"Code"數據類型
- 為什么要在MongoDB中用"Regular Expression"數據類型
- 為什么在MongoDB中使用"Object ID"數據類型
- "ObjectID"有哪些部分組成
- 在MongoDb中什么是索引
- 在MongoDB中什么是副本集
- MongoDB支持存儲過程嗎?如果支持的話,怎么用?
- 如何理解MongoDB中的GridFS機制,MongoDB為何使用GridFS來存儲文件?
- 為什么MongoDB的數據文件很大?
Jenkins面試題庫|附答案|持續更新
- 什么是Jenkins?
- Maven, Ant和Jenkins有什么區別?
- Jenkins支持哪些SCM工具?
- 在Jenkins中, 什么是持續集成?
- Jenkins的優勢是什么?
- 可以使用哪些命令手動啟動Jenkins?
- 如何在Jenkins中創建備份和復制文件?
- 如何通過Jenkins克隆Git存儲庫?
- 什么是jenkinsfile?為什么使用jenkinsfile
- 什么是Blue Ocean
- Mycat是什么?
- 什么叫混合切分
- 在項目組中,切分后的庫從哪里而來?
- 搭建mycat的核心配置文件有哪些?
- mycat分庫可以分成100個庫嗎?
- 進行庫表拆分時,拆分規則怎么取舍?
- Mycat中全局ID方案有哪些?程序自定義全局ID的方案有哪些?
- Mycat的在分庫分表之后,它是怎么支持聯表查詢的?
- 配置文件不會變多,配置的節點主機會變多?
- 你們項目中分片的實現方式是什么?
Nginx面試題庫|附答案|持續更新
- 請解釋一下什么是 Nginx ?
- 為什么要用Nginx?
- Nginx怎么處理請求的?
- Nginx的優缺點?
- Nginx應用場景?
- 使用“反向代理服務器”的優點是什么?
- 列舉Nginx服務器的最佳用途。
- 請解釋Nginx如何處理HTTP請求。
- 在Nginx中,如何使用未定義的服務器名稱來阻止處理請求?
- 在Nginx中如何在URL中保留雙斜線?
- ngx_http_upstream_module的作用是什么?
- fastcgi 與 cgi 的區別?
- Nginx 常用命令?
- Nginx 常用配置?
- 請陳述stub_status和sub_filter指令的作用是什么?
RocketMQ面試題庫|附答案|持續更新
- RocketMQ中的Topic和JMS的queue有什么區別?
- RocketMQ Broker中的消息被消費后會立即刪除嗎?
- RocketMQ消費模式有幾種?
- 消費消息是push還是pull?
- broker如何處理拉取請求的?
- RocketMQ如何做負載均衡?
- 消息重復消費如何解決?
- 如何讓RocketMQ保證消息的順序消費?
- RocketMQ如何保證消息不丟失?
- rocketMQ的消息堆積如何處理
- RocketMQ在分布式事務支持這塊機制的底層原理?
- 如果讓你來動手實現一個分布式消息中間件,整體架構你會如何設計實現?
- 高吞吐量下如何優化生產者和消費者的性能?
- 再說說RocketMQ 是如何保證數據的高容錯性的?
- 任何一台Broker突然宕機了怎么辦?
shiro面試題庫|附答案|持續更新
- 什么是shiro
- 解釋下Shiro的核心概念:Subject、SecurityManager、Realm
- Shiro的優點
- Shiro有哪些組件?
- 說下Authentication 身份驗證的流程
- Authorization 授權的方式和流程是怎樣的?
- Cryptography 加密的過程是這樣的?
- Realm 域如何使用?
- shiro攔截器的執行流程
- Session Manager 會話管理介紹一下
Servlet面試題庫|附答案|持續更新
- Servlet的生命周期?
- Servlet和JSP的區別?
- Servlet的基本架構
- 什么情況下調用doGet()和doPost()?
- 頁面間對象傳遞的方法
- 四種會話跟蹤技術
- Request對象的主要方法
- 如何配置Servlet的初始化參數?
- 如何讀取Servlet的初始化參數?
- init(ServletConfig)方法執行次數
- init(ServletConfig)方法與異常
Tomcat面試題庫|附答案|持續更新
- Tomcat的缺省端口是多少,怎么修改?
- tomcat 有哪幾種Connector 運行模式(優化)?
- Tomcat有幾種部署方式?
- tomcat容器是如何創建servlet類實例?用到了什么原理?
- tomcat 如何優化?
- tomcat內存調優了解過嗎?
- tomcat垃圾回收策略調優了解嗎?
- tomcat共享session如何處理?
- 如何添加JMS遠程監控
- Tomcat一個請求的完整過程
java8面試題庫|附答案|持續更新
- Java 8 新特性簡介:
- 抽象類 和 接口的 異同?
- Java8支持函數編程是什么意思?
- Java 8中的可選項是什么?
- hashMap原理,java8做的改變
- 解釋Java 8-中間操作與終端操作?
- 什么是Lambda表達式?
- Lambda函數的優點:
- 什么是Java8中的MetaSpace?它與PermGen Space有何不同?
- 是什么使Java SE 8優於其他?
- Lambda表達式的參數列表與Lambda箭頭運算符有何不同?
密碼學面試題庫|附答案|持續更新
- 什么是base64
- MD5
- SHA
- HMAC
- 密碼的常用術語
- 單向加密算法
- 復雜的對稱加密(DES、PBE)、非對稱加密算法
- 非對稱加密
- DES
操作系統面試題庫|附答案|持續更新
- 說下進程的狀態
- 說下進程和線程的聯系與區別
- 為什么進程上下文切換比線程上下文切換代價高?
- 說下你對進程同步的理解
- 進程的通信方式有哪些
- 進程調度的種類有哪些?
- 非搶占式調度與搶占式調度的區別是什么?
- 說下你知道的調度算法
- 一個程序從開始運行到結束的完整過程(四個過程)
- 死鎖出現的條件?
- 如何處理死鎖問題
- 如何處理死鎖問題
- 什么是臨界資源
- 介紹一下內存池、進程池、線程池
- 動態鏈接庫與靜態鏈接庫的區別
- 說下對虛擬內存的理解
- 頁面置換算法了解多少?
- 中斷與系統調用了解嗎?
- 用戶態切換到內核態的方式有哪些?
- 用戶態和核心態(內核態)之間的區別是什么呢?
- 內部碎片與外部碎片分別是什么?
- 系統調用與庫函數的區別
- 守護、僵屍、孤兒進程的概念
編譯原理面試題庫|附答案|持續更新
- 詞法分析
- 語法分析
- 語義分析
- 中間代碼生成
- 目標代碼生成
- 表格管理程序
- 出錯處理
- 句型、句子、語言
- 有窮自動機(有限自動機)
- 全局優化
計算機組成原理
- 計算機系統由哪兩部分組成?計算機系統性能取決於什么?
- 計算機系統5層層次結構從下到上由哪五層組成?哪些是物理機,哪些是虛擬機?
- 在計算機系統結構中,什么是翻譯?什么是解釋?
- 什么是計算機體系結構?什么是計算機組成?以乘法指令為例說明二者區別。
- 馮諾依曼機器的主要特點?
- 程序訪問的局部性
- 字長
- Cache的基本工作原理
- Cache和主存之間的映射方式
- Cache中主存塊的替換算法
- 二進制一般使用什么方法轉換成十進制?
- 計算機直接使用原碼計算有什么缺點?
- 請計算12、124、1023、-1、-127的二進制原碼。
- 計算機的補碼解決了什么問題?
- 什么是溢出?什么是上溢?什么是下溢?
- 浮點數之間做加減法運算需要幾個步驟?每個步驟都是必須的嗎?為什么?
- 虛擬存儲器的基本概念
- 頁式虛擬存儲器
- 段式虛擬存儲器
- 段頁式虛擬存儲器