{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

java面試題有哪些?

genefygenefy 回答0 收藏1
收藏問題

10條回答

tomorrowwu

tomorrowwu

回答于2022-06-28 14:10

肝了一個月的面試題終于來啦,大家開心不。

2020年最新Java面試題整理,全網最全一份,包含各個技術棧,Java基礎,Java集合,多線程,Java異常,spring,spring MVC,spring boot,spring cloud,netty,dubbo,activemq,Java web,jvm,kafka,MongoDB,mybatis,MySQL,Nginx,rabbitmq,Redis,Tomcat,zookeeper,設計模式,數據結構,算法,分布式,限流,降級,cap原理等等知識點

話不多說,直接上圖

總共80多個PDF

【BAT必備】計算機網絡面試題:

鏈接:https://pan.baidu.com/s/1hFggmtdL1ZmE4utBlo8S1g 提取碼:qfkh

【BAT必備】設計模式面試題

鏈接:https://pan.baidu.com/s/1eXJveIVvQe-m3MdvLcT-fQ 提取碼:j0kx

【BAT必備】數據結構算法面試題:

鏈接:https://pan.baidu.com/s/1daFN9jY03fXsqwc9LeKi2w 提取碼:5ab7

【BAT必備】多線程面試題:

鏈接:https://pan.baidu.com/s/1GdvsNESoHPBjWKN2h-iK7Q 提取碼:cqib

【BAT必備】并發編程鎖面試題:

鏈接:https://pan.baidu.com/s/1hXPPtMY2dvz-g7QcSTc3PA 提取碼:zhmy

【BAT必備】tomcat面試題:

鏈接:https://pan.baidu.com/s/1qPZXx4lmLynmaF0XjRTzpQ 提取碼:5m16

【BAT必備】zookeeper面試題:

鏈接:https://pan.baidu.com/s/1EhOee9e1Qe-Q6RC8KlthxA 提取碼:p2am

【BAT必備】spring 全家桶面試題:

鏈接:https://pan.baidu.com/s/1DXGO-N5P6QIGKLZ8LIVOuQ 提取碼:m9v7

【BAT必備】rocketMq面試題:

鏈接:https://pan.baidu.com/s/1TEF3yUR4OOaIpj-4ud_79A 提取碼:3g3d

【BAT必備】redis面試題:

鏈接:https://pan.baidu.com/s/1qlanxWBfwvKUObnHulCQiA 提取碼:rjo7

【BAT必備】rabbitMq面試題:

鏈接:https://pan.baidu.com/s/1ywLiq3IUJVyZosPLNrmyTA 提取碼:0td4

【BAT必備】netty面試題:

鏈接:https://pan.baidu.com/s/1Pbv4aelqOt1dUPA2SwEB_Q 提取碼:2w1e

【BAT必備】Nginx面試題:

鏈接:https://pan.baidu.com/s/1r8YNyOz0N6MJ9F0045lEZw 提取碼:49tl

【BAT必備】MySQL面試題:

鏈接:https://pan.baidu.com/s/1GeX6Fs4nNi6fTUHKxJ2SZw 提取碼:8pow

【BAT必備】mybatis面試題:

鏈接:https://pan.baidu.com/s/1xOYiaiQ2JpPt2jb6GdWjaA 提取碼:aqd3

【BAT必備】MongoDB面試題:

鏈接:https://pan.baidu.com/s/1QTVx1TF8tDn6LUJr7wdfOQ 提取碼:j1qt

【BAT必備】Linux面試題:

鏈接:https://pan.baidu.com/s/1veZ3dBJmz1PduCE5tl-e1A 提取碼:txpf

【BAT必備】kafka面試題:

鏈接:https://pan.baidu.com/s/1SWhiBCswleYGsDupSGzE6g 提取碼:o1gv

【BAT必備】jvm面試題:

鏈接:https://pan.baidu.com/s/1xi-QLq_I75kha439EGqELw 提取碼:kxde

【BAT必備】java web面試題:

鏈接:https://pan.baidu.com/s/1r3Bupn9qhJbw5ebR_6h94A 提取碼:qba4

【BAT必備】Java基礎面試題:

鏈接:https://pan.baidu.com/s/1J40nYKIoV_VMCumoRpIyhQ 提取碼:5xo7

【BAT必備】dubbo面試題:

鏈接:https://pan.baidu.com/s/10flnh7Tb0Oxd3yZPQOnjsA 提取碼:5gc9

【BAT必備】activeMQ面試題:

鏈接:https://pan.baidu.com/s/1igNB64dpMCjCQkRzvqCXpQ 提取碼:006a

【BAT必備】分布式相關面試題大全面試題:

鏈接:https://pan.baidu.com/s/1ZcpJDh07B2NPAL4_4VC6jQ 提取碼:w4mw

【BAT必備】java面試題大全:

鏈接:https://pan.baidu.com/s/11jw0Ua4CZiI8-S6EadM_iQ 提取碼:epmp

【BAT必備】Java面試匯總

鏈接:https://pan.baidu.com/s/1vG9_cNoiYBW5TY32S4wGnQ 提取碼:k087

【BAT必備】2020年多家公司整理的350道Java面試題手冊

鏈接:https://pan.baidu.com/s/1FEGQVTgiyKG0kCasYn-n2g 提取碼:f7y1

【BAT必備】Java全部核心知識點整理

鏈接:https://pan.baidu.com/s/1StG-ib70TDAE1Hb4NVLQRQ 提取碼:5rp1


整理這些非常辛苦,大家 點個贊 在走吧

評論0 贊同0
  •  加載中...
legendmohe

legendmohe

回答于2022-06-28 14:10

2021大廠java面試題庫:可能會有些多,建議你都自己整理答案,然后去面試,提取去高頻的再好好記記,我覺得能很快找到工作的。

Java基礎面試題庫

  1. 說下面向對象四大特性
  2. Java語言有些特點
  3. 什么是Java程序的主類?應用程序和小程序的主類有何不同?
  4. 訪問修飾符public,private,protected,以及不寫(默認)時的區別?
  5. float f=3.4;是否正確?
  6. Java有沒有goto?
  7. &和&&的區別?
  8. Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
  9. 用最有效率的方法計算2乘以8?
  10. 什么是Java注釋
  11. Java有哪些數據類型
  12. final 有什么用?
  13. final finally finalize的區別
  14. String str = "i" 和String str = new String("1")一樣嗎?
  15. Java 中操作字符串都有哪些類?它們之間有什么區別?
  16. Java中為什么要用 clone?
  17. 深克隆和淺克隆?
  18. new一個對象的過程和clone一個對象的區別?
  19. Java中實現多態的機制是什么?
  20. 談談你對多態的理解?
  21. 構造器(constructor)是否可被重寫(override)?
  22. 兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
  23. String類的常用方法有哪些?
  24. char型變量中能否能不能存儲一個中文漢字,為什么?
  25. this關鍵字的用法
  26. super關鍵字的用法
  27. this與super的區別
  28. static存在的主要意義
  29. static的獨特之處
  30. static應用場景
  31. static注意事項
  32. break ,continue ,return 的區別及作用
  33. 在Java中定義一個不做事且沒有參數的構造方法的作用
  34. 構造方法有哪些特性?
  35. 靜態變量和實例變量區別
  36. 靜態方法和實例方法有何不同?
  37. 什么是方法的返回值?返回值的作用是什么?
  38. 什么是內部類?
  39. 內部類的分類有哪些
  40. Java中異常分為哪些種類?
  41. hashCode 與 equals (重要)
  42. hashCode()介紹
  43. 為什么要有 hashCode
  44. 抽象類和接口(Java7)的區別
  45. Java 8的接口新增了哪些特性?
  46. 重寫和重載的區別
  47. ArrayList和LinkedList有什么區別?
  48. HashMap是怎么實現的?
  49. HashMap在Java7和Java8中的實現有什么不同?
  50. HashMap有時候會死循環,你知道是什么原因嗎?
  51. ConcurrentHashMap是怎么實現的?
  52. 靜態代理和動態代理的區別
  53. JDK動態代理和CGLIB動態代理的區別

Java多線程面試題庫

  1. 說說synchronized的實現原理
  2. ReentrantLock與synchronized的區別
  3. ReentrantLock實現原理
  4. Java原子類AtomicInteger實現原理
  5. Java線程池實現原理
  6. ThreadLocal實現原理
  7. InheritableThreadLocal原理知道嗎?
  8. 說一下synchronized鎖升級過程
  9. 了解過什么是“偽共享”嗎?
  10. “偽共享”出現的原因是什么?
  11. 如何避免“偽共享”?
  12. Java里的線程有哪些狀態?
  13. 什么是悲觀鎖?什么是樂觀鎖?
  14. 怎么停止一個運行中的線程?
  15. 說一下你對volatile的理解?
  16. 并發編程三要素?
  17. 線程池的優點?
  18. CyclicBarrier和CountDownLatch的區別
  19. 什么是CAS?
  20. CAS的問題
  21. 什么是AQS?
  22. AQS支持幾種同步方式?
  23. 什么是自旋鎖?
  24. 什么是多線程的上下文切換?
  25. 什么是線程和進程?
  26. 程序計數器為什么是私有的?
  27. 虛擬機棧和本地方法棧為什么是私有的?
  28. 并發與并行的區別?
  29. 什么是線程死鎖?如何避免死鎖?
  30. sleep() 方法和 wait() 方法的區別和共同點?
  31. 為什么我們調用 start() 方法時會執行 run() 方法,為什么我們不能直接調用 run() 方法?
  32. 什么是線程安全問題?如何解決?
  33. 什么是活鎖?
  34. 什么是線程的饑餓問題?如何解決?
  35. 什么是線程的阻塞問題?如何解決?
  36. synchronized 關鍵字和 volatile 關鍵字的區別
  37. 說一說幾種常見的線程池及適用場景?
  38. 線程池都有哪幾種工作隊列?
  39. 什么是線程安全?
  40. Java中如何獲取到線程dump文件
  41. Java中用到的線程調度算法是什么?
  42. Thread.sleep(0)的作用是什么?
  43. 單例模式的線程安全性
  44. Semaphore有什么作用?
  45. Hashtable的size()方法中明明只有一條語句"return count",為什么還要做同步?
  46. 同步方法和同步塊,哪個是更好的選擇?
  47. 高并發、任務執行時間短的業務怎樣使用線程池?并發不高、任務執行時間長的業務怎樣使用線程池?并發高、業務執行時間長的業務怎樣使用線程池?

Java虛擬機面試題庫

  1. 說一下JVM的內存結構?
  2. 棧幀里面包含哪些東西?
  3. 程序計數器有什么作用?
  4. 字符串常量存放在哪個區域?
  5. 你熟悉哪些垃圾收集算法?
  6. Java里有哪些引用類型?
  7. JVM怎么判斷一個對象是不是要回收?
  8. GC Roots 有哪些?
  9. 你知道哪些GC類型?
  10. 對象都是優先分配在年輕代上的嗎?
  11. 你了解過哪些垃圾收集器?
  12. 說說CMS垃圾收集器的工作原理
  13. 說說G1垃圾收集器的工作原理
  14. 說說ZGC垃圾收集器的工作原理
  15. ZGC收集器中的染色指針有什么用?
  16. 說說類加載的過程
  17. 說下有哪些類加載器?
  18. 什么是雙親委派機制?
  19. 雙親委派機制可以被違背嗎?請舉例說明。
  20. Tomcat是怎么打破雙親委派機制的呢?
  21. Java對象的布局了解過嗎?
  22. 什么情況下會發生棧內存溢出?
  23. JVM新生代中為什么要分為Eden和Survivor?
  24. JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代?
  25. 什么是指令重排序?
  26. 什么是內存屏障?
  27. 什么是happen-before原則?
  28. 說說你知道的幾種主要的JVM參數
  29. 怎么打出線程棧信息?
  30. 為什么需要雙親委派模式?
  31. 怎么打破雙親委派模型?
  32. 說一下堆和棧的區別
  33. Java 8 為什么要將永久代(PermGen)替換為元空間(MetaSpace)呢?
  34. 說一下Java對象的創建過程
  35. 對象的訪問定位有哪幾種方式?
  36. 說一下堆內存中對象的分配的基本策略
  37. Minor Gc和Full GC 有什么不同呢?
  38. Java會存在內存泄漏嗎?請簡單描述。
  39. 如何判斷一個類是無用的類?
  40. 介紹一下類文件結構吧!
  41. 說一下 JVM 調優的工具?
  42. JVM調優命令有哪些?
  43. JRE、JDK、JVM 及 JIT 之間有什么不同?
  44. 程序計數器為什么是私有的?
  45. 如何判斷一個常量是廢棄常量 ?

Java IO面試題庫

  1. Java 中有幾種類型的流?
  2. 什么是 java序列化?
  3. 如何實現 java 序列化?
  4. 字節流和字符流的區別?
  5. PrintStream、BufferedWriter、PrintWriter的比較?
  6. 什么是節點流,什么是處理流,它們各有什么用處,處理流的創建有什么特征?
  7. 流一般需要不需要關閉,如果關閉的話在用什么方法,一般要在那個代碼塊里面關閉比較好,處理流是怎么關閉的,如果有多個流互相調用傳入是怎么關閉的?
  8. 什么是BIO
  9. 什么是NIO
  10. 什么是AIO
  11. 同步與異步
  12. 阻塞與非阻塞
  13. 同步、異步、阻塞、非堵塞
  14. 通道是個什么意思?
  15. 緩沖區是什么意思?
  16. IO多路復用的底層原理

MySQL面試題庫

  1. 什么是索引?
  2. 索引是個什么樣的數據結構呢?
  3. Hash索引和B+樹索引有什么區別或者說優劣呢?
  4. 在建立索引的時候,都有哪些需要考慮的因素呢?
  5. 了解過哪些存儲引擎?各有什么優缺點?
  6. 說一下什么是事務的ACID屬性吧
  7. 事務的隔離級別了解過嗎?
  8. 說說InnoDB的索引原理
  9. 說說InnoDB的MVCC機制
  10. 有了解過“回表”的概念嗎?什么情況下會出現“回表”?
  11. MySQL索引的類型
  12. 有做過MySQL的索引優化嗎?
  13. 什么是聚簇索引?
  14. InnoDB有聚簇索引嗎?MyIsam呢?
  15. MyIsam的數據是怎么存儲的?
  16. InnoDB的數據是怎么存儲的?
  17. InnoDB主鍵索引跟非主鍵索引在數據存儲上的差異
  18. InnoDB刪除某條記錄后,內部會怎么處理?
  19. InnoDB如果沒有設置主鍵的話,它內部會怎么處理?
  20. 為什么InnoDB一定會生成主鍵?
  21. MySQL分庫分表了解過嗎?
  22. MySQL的redo日志和undo日志分別有什么用?
  23. MySQL的redo日志的刷盤時機
  24. MySQL有哪些鎖?以及各種鎖的作用?
  25. MySQL中varchar與char的區別以及varchar(50)中的50代表的涵義
  26. MySQL有哪些日志,分別是什么用處?
  27. 在哪些情況下會發生針對該列創建了索引但是在查詢的時候并沒有使用呢?
  28. 為什么要盡量設定一個主鍵?
  29. 主鍵使用自增ID還是UUID?
  30. 字段為什么要求定義為not null?
  31. 如果要存儲用戶的密碼散列,應該使用什么字段進行存儲?
  32. varchar(10)和int(10)代表什么含義?
  33. MySQL的binlog有有幾種錄入格式?分別有什么區別?
  34. 超大分頁怎么處理?
  35. 關心過業務系統里面的sql耗時嗎?統計過慢查詢嗎?對慢查詢都怎么優化過?
  36. 什么是存儲過程?有哪些優缺點?
  37. 說一說三個范式
  38. 什么情況下應不建或少建索引
  39. 什么是表分區?
  40. 表分區與分表的區別
  41. 表分區有什么好處?
  42. MVVC了解過嗎
  43. 在MVCC并發控制中,讀操作可以分成哪幾類?
  44. 行級鎖定的優點
  45. 行級鎖定的缺點
  46. MySQL優化
  47. key和index的區別
  48. delete、truncate、drop區別
  49. MySQL主從復制原理流程
  50. 自增主鍵最大ID記錄,MyISAM和InnoDB分別是如何存儲的
  51. Mysql如何優化DISTINCT?
  52. 解釋MySQL外連接、內連接與自連接的區別

Redis面試題庫

  1. 什么是Redis?簡述它的優缺點?
  2. Redis相比memcached有哪些優勢?
  3. Redis有哪些數據結構?
  4. Redis主要消耗什么物理資源?
  5. Redis的全稱是什么?
  6. 一個字符串類型的值能存儲最大容量是多少?
  7. Redis為什么那么快?
  8. Redis如何實現分布式鎖?
  9. Redis是單線程還是多線程?
  10. Redis 官方為什么不提供 Windows 版本?
  11. 為什么 Redis 需要把所有數據放到內存中?
  12. Redis如何設置密碼及驗證密碼?
  13. Redis集群如何選擇數據庫?
  14. 緩存失效?緩存穿透?緩存雪崩?緩存并發?
  15. Redis中的熱key怎么處理?
  16. Redis中的大key怎么處理?
  17. 使用Redis統計網站的UV,應該怎么做?
  18. Redis事務機制了解過嗎?
  19. Redis key的淘汰策略有哪些?
  20. Redis在什么情況下會觸發key的回收?
  21. Redis的持久化了解過嗎?
  22. Redis在集群種查找key的時候,是怎么定位到具體節點的?
  23. Redis集群各個節點之間是怎么保持數據一致性的?
  24. 用Redis做延時隊列,具體應該怎么實現?
  25. Redis String的內部編碼有哪些?
  26. Redis 集群方案應該怎么做?都有哪些方案?
  27. Redis 集群方案什么情況下會導致整個集群不可用?
  28. MySQL 里有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中的數據都是熱點數據?
  29. Redis有哪些適合的場景?
  30. Redis和Redisson有什么關系?
  31. Redis中的管道有什么用?
  32. Redis如何做內存優化?

Spring面試題庫

  1. 什么是spring?
  2. 使用Spring框架的好處是什么?
  3. Spring由哪些模塊組成
  4. Spring是怎么解決循環依賴的?
  5. Spring Boot手動裝配有哪幾種方式?
  6. Spring Boot自動配置原理
  7. 談談自己對于Spring IOC的理解
  8. 談談自己對于Spring AOP的理解
  9. Spring AOP和AspectJ AOP有什么區別?
  10. Spring中的bean的作用域有哪些?
  11. Spring中的單例bean的線程安全問題了解嗎?
  12. Spring中的bean生命周期了解過嗎?
  13. Spring MVC的工作原理了解嘛?
  14. Spring框架中用到了哪些設計模式?
  15. @Component和@Bean的區別是什么?
  16. 將一個類聲明為Spring的bean的注解有哪些?
  17. Spring事務管理的方式有幾種?
  18. Spring事務中的隔離級別有哪幾種?
  19. Spring事務中有哪幾種事務傳播行為?
  20. Spring 事務底層原理
  21. BeanFactory和ApplicationContext有什么區別?
  22. Resource 是如何被查找、加載的?
  23. 解釋自動裝配的各種模式?
  24. 有哪些不同類型的IOC(依賴注入)?
  25. Spring AOP 實現原理
  26. ApplicationContext通常的實現是什么?
  27. Bean 工廠和 Application contexts 有什么區別?

Spring Boot面試題庫

  1. 什么是springboot
  2. Spring Boot 有哪些優點?
  3. 創建一個 Spring Boot Project 的最簡單的方法是什么?
  4. Spring 和 SpringBoot 有什么不同?
  5. 如何重新加載 Spring Boot 上的更改,而無需重新啟動服務器?
  6. Spring Boot 中的監視器是什么?
  7. 如何在 Spring Boot 中禁用 Actuator 端點安全性?
  8. 怎么使用 Maven 來構建一個 SpringBoot 程序?
  9. Spring Initializr 是創建 Spring Boot Projects 的唯一方法嗎?
  10. 為什么我們需要 spring-boot-maven-plugin?
  11. 什么是嵌入式服務器?我們為什么要使用嵌入式服務器呢?
  12. 如何在 Spring Boot 中添加通用的 JS 代碼?
  13. 如何使用 Spring Boot 部署到不同的服務器?
  14. 如何使用配置文件通過 Spring Boot 配置特定環境的配置?
  15. 什么是Swagger?你用Spring Boot實現了嗎?
  16. 如何實現Spring Boot應用程序的安全性?
  17. 比較一下Spring Security和Shiro各自的優缺點?
  18. Spring Boot中如何解決跨域問題?
  19. Spring Boot的核心注解是哪些?他由哪幾個注解組成的?
  20. 保護SpringBoot應用有哪些方法?
  21. SpringBoot 2.X有哪些新特性?與1.X有什么區別?

Spring Cloud面試題庫

  1. 什么是 spring cloud?
  2. 使用Spring Cloud有什么優勢?
  3. 服務注冊和發現是什么意思?Spring Cloud如何實現?
  4. Spring Cloud由哪些組件組成?
  5. 什么是Hystrix?它如何實現容錯?
  6. 什么是Hystrix斷路器?我們需要它嗎?
  7. 什么是Netflix Feign?它的優點是什么?
  8. Eureka的工作原理?
  9. 說說Eureka的自我保護機制?
  10. 什么是zuul?
  11. zuul的工作流程?
  12. 什么是服務熔斷?什么是服務降級?
  13. 什么是服務雪崩效應?
  14. ZuulFilter有哪些常用方法?
  15. 如何實現動態Zuul網關路由轉發?
  16. 什么是 Spring Cloud Bus?
  17. Spring Cloud Bus 原理?
  18. SpringCloud Config可以實現實時刷新嗎?
  19. Eureka和zookeeper都可以提供服務注冊與發現的功能,兩者的區別

MyBatis面試題庫

  1. 什么是Mybatis?
  2. Mybatis的優缺點?
  3. Mybatis使用場合?
  4. #{}和${}的區別是什么?
  5. 當實體類的屬性名和表種字段名不一致怎么辦?
  6. Mybatis是如何將sql執行結果封裝為目標對象并返回的?都有哪些映射形式?
  7. 如何獲取自動生成的(主)鍵值?
  8. Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重復?
  9. Mybatis動態SQL?
  10. 說一下resultMap和resultType?
  11. Mybatis全局配置文件中有哪些標簽?分別代表什么意思?
  12. Mybatis能執行一對一、一對多的關聯查詢嗎?都有哪些實現方式,以及它們之間的區別。
  13. Mybatis是否支持延遲加載?如果支持,它的實現原理是什么?
  14. Mybatis都有哪些Executor執行器?它們之間的區別是什么?
  15. Mybatis的一級、二級緩存

Netty面試題庫

  1. 你了解過哪些IO模型?
  2. 什么是Reactor模型?Reactor的3種版本都知道嗎?
  3. 了解過粘包拆包嗎?為什么會出現粘包拆包?怎么處理粘包拆包?
  4. UDP協議會有粘包拆包的問題嗎?為什么?
  5. Netty 是什么?
  6. 為什么要用 Netty?
  7. Netty 的應用場景了解么?
  8. Netty 的零拷貝了解么?
  9. Netty 的心跳機制了解么?
  10. Netty 中有哪些重要組件?
  11. Netty 發送消息有幾種方式?
  12. Netty 支持哪些心跳類型設置?
  13. 說說Netty的執行流程?
  14. Netty高性能體現在哪些方面?

微服務面試題庫

  1. 微服務有哪些優缺點?
  2. 作為注冊中心,Zookeeper和Eureka有什么區別?
  3. Service Mesh了解過嗎?
  4. 微服務有哪些特點?
  5. 單片,SOA 和微服務架構有什么區別?
  6. Spring Cloud 解決了哪些問題?
  7. 服務注冊和發現是什么意思?Spring Cloud 如何實現?
  8. Spring Cloud 和dubbo的區別?
  9. 什么是微服務?
  10. 微服務之間是如何通訊的?
  11. 請談談對SpringBoot 和SpringCloud的理解
  12. 什么是服務熔斷,什么是服務降級
  13. 你所知道的微服務技術棧有哪些?
  14. 什么是 Eureka服務注冊與發現?
  15. Eureka的基本架構是什么?
  16. 作為服務注冊中心,Eureka比Zookeeper好在哪里?

Zookeeper面試題庫

  1. Zookeeper有哪些節點類型?
  2. 了解過Zookeeper的ZAB協議嗎?
  3. Zookeeper怎么實現分布式鎖?
  4. Zookeeper是怎么保證數據一致性的?
  5. Zookeeper Leader選舉過程是怎樣的?
  6. Zookeeper怎么實現服務注冊?
  7. ZooKeeper是什么?
  8. ZooKeeper提供了什么?
  9. Zookeeper文件系統
  10. Zookeeper Watcher 機制
  11. 客戶端注冊Watcher實現
  12. 服務端處理Watcher實現
  13. ACL權限控制機制
  14. 服務器角色
  15. Zookeeper 下 Server工作狀態
  16. 數據同步
  17. zookeeper是如何保證事務的順序一致性的?
  18. 分布式集群中為什么會有Master?
  19. zk節點宕機如何處理?
  20. Zookeeper有哪幾種部署模式?
  21. 集群最少要幾臺機器,集群規則是怎樣的?
  22. 集群支持動態添加機器嗎?
  23. Zookeeper對節點的watch監聽通知是永久的嗎?為什么不是永久的?
  24. ZAB和Paxos算法的聯系與區別?
  25. Zookeeper的典型應用場景
  26. Zookeeper 和 Dubbo 的關系?
  27. zookeeper負載均衡和nginx負載均衡區別

消息隊列面試題庫

  1. 消息隊列有哪些應用場景?
  2. 消息隊列的弊端有哪些?
  3. 使用消息隊列,怎么確保消息不丟失?
  4. 使用消息隊列,如果處理重復消息?
  5. Kafka的消息是有序的嗎?如果保證Kafka消息的順序性?
  6. 消息如何保證冪等性
  7. 消息隊列積壓怎么辦
  8. 各種MQ的比較
  9. 如何解決消息隊列的延時以及過期失效問題?消息隊列滿了以后該怎么處理?有幾百萬消息持續積壓幾小時怎么解決?
  10. 為什么使用消息隊列?

Kafka面試題庫

  1. 為什么要使用 kafka?為什么要使用消息隊列?
  2. Kafka中的ISR、AR又代表什么?ISR的伸縮又指什么?
  3. kafka中的broker 是干什么的?
  4. kafka中的 zookeeper 起到什么作用?可以不用zookeeper么?
  5. kafka follower如何與leader同步數據?
  6. 什么情況下一個 broker 會從 ISR 中被踢出去?
  7. kafka 為什么那么快?
  8. kafka producer如何優化打入速度?
  9. kafka producer 打數據,ack 為 0, 1, -1 的時候代表啥, 設置 -1 的時候,什么情況下,leader 會認為一條消息 commit 了
  10. kafka unclean 配置代表啥?會對 spark streaming 消費有什么影響?
  11. 如果leader crash時,ISR為空怎么辦?
  12. kafka的message格式是什么樣的?
  13. kafka中consumer group 是什么概念?
  14. Kafka中的消息是否會丟失和重復消費?
  15. 為什么Kafka不支持讀寫分離?
  16. Kafka中是怎么體現消息順序性的?
  17. kafka如何實現延遲隊列?
  18. 什么是消費者組?
  19. 解釋下 Kafka 中位移(offset)的作用。
  20. 闡述下 Kafka 中的領導者副本(Leader Replica)和追隨者副本 (Follower Replica)的區別。
  21. 如何設置 Kafka 能接收的最大消息的大小?
  22. 監控 Kafka 的框架都有哪些?
  23. Broker 的 Heap Size 如何設置?
  24. 如何估算 Kafka 集群的機器數量?
  25. Leader 總是 -1,怎么破?
  26. LEO、LSO、AR、ISR、HW 都表示什么含義?
  27. Kafka 能手動刪除消息嗎?
  28. consumer_offsets 是做什么用的?
  29. 分區 Leader 選舉策略有幾種?
  30. Kafka 的哪些場景中使用了零拷貝(Zero Copy)?
  31. 如何調優 Kafka?
  32. Controller 發生網絡分區(Network Partitioning)時,Kafka 會怎么樣?
  33. 簡述 Follower 副本消息同步的完整流程。

RabbitMQ面試題庫

  1. 什么是RabbitMQ?為什么使用RabbitMQ?
  2. RabbitMQ有什么優缺點?
  3. 什么是元數據?元數據分為哪些類型?包括哪些內容?與cluster相關的元數據有哪些?元數據是如何保存的?元數據在cluster中是如何分布的?
  4. 在單node系統和多node構成的cluster系統中聲明queue、exchange,以及進行binding會有什么不同?
  5. 客戶端連接到cluster中的任意node上是否都能正常工作?
  6. 若cluster中擁有某個queue的owner node失效了,且該queue 被聲明具有durable屬性,是否能夠成功從其他node上重新聲明該 queue ?
  7. RabbitMQ 的消息是怎么發送的?
  8. RabbitMQ 怎么避免消息丟失?
  9. RabbitMQ的使用場景有哪些?
  10. RabbitMQ有哪些重要的角色?
  11. 如何確保消息正確地發送至RabbitMQ?如何確保消息接收方消費了消息?
  12. 要保證消息持久化成功的條件有哪些?
  13. RabbitMQ 有幾種廣播類型?
  14. vhost 是什么?起什么作用?
  15. 消息基于什么傳輸?
  16. 消息如何分發?
  17. 消息怎么路由?
  18. 如何確保消息接收方消費了消息?
  19. 如何避免消息重復投遞或重復消費?
  20. 死信隊列和延遲隊列的使用

計算機網絡面試題庫

  1. 請簡述TCP/UDP的區別
  2. TCP對應的協議和UDP對應的協議
  3. 有哪些私有(保留)地址?
  4. 你能說一說OSI七層模型?
  5. 說一說TCP/IP四層模型
  6. 簡述IP地址的分類?
  7. 簡述ARP地址解析協議工作原理
  8. 簡述ICMP、TFTP、HTTP、NAT、DHCP協議
  9. 說一說TCP的三次握手
  10. 為什么TCP要三次握手
  11. TCP建立連接時為什么要傳回 SYN
  12. TCP為什么要四次揮手
  13. 滑動窗口和流量控制
  14. 擁塞控制
  15. HTTP 協議包括哪些請求?
  16. TCP time_wait狀態是主動斷開方才有,還是被動斷開方才有?還是兩邊都有?
  17. TCP的keepalive機制了解過嗎?
  18. HTTP的keepalive和TCP的keepalive,有什么區別?
  19. TCP與UDP的區別?
  20. 簡述 HTTP1.0/1.1/2.0 的區別
  21. HTTPS的原理了解過嗎?
  22. TCP里Nagle算法了解過嗎?可以禁用嗎?在Java里怎么禁用?
  23. HTTP協議為什么無法實現服務端推送?
  24. websocket協議升級過程了解過嗎?
  25. websocket幀結構了解過嗎?

數據結構與算法面試題庫

  1. 什么是算法?
  2. TreeMap和TreeSet在排序時如何比較元素?Collections工具類中的sort()方法如何比較元素?
  3. 如何知道二叉樹的深度?
  4. 介紹一下,堆排序的原理是什么?
  5. 數組和鏈表的區別
  6. 二分查找了解過嗎?
  7. 說下你熟悉的排序算法
  8. 布隆過濾器了解過嗎?
  9. 一致性hash算法了解過嗎?
  10. 如何在一個1到100的整數數組中找到丟失的數字?
  11. 請你講講LRU算法的實現原理?
  12. 為什么要設計后綴表達式,有什么好處?
  13. 什么是B樹?
  14. 什么是B+樹?
  15. 談一談,id全局唯一且自增,如何實現?

設計模式面試題庫

  1. 接口是什么?為什么要使用接口而不是直接使用具體類?
  2. 設計模式六大原則?
  3. Java怎么實現單例模式?
  4. 什么是代理模式?什么是動態代理?Java中動態代理有哪些實現方式?
  5. 設計模式的類型
  6. 說說你所熟悉或聽說過的 j2ee 中的幾種常用模式?
  7. 簡述一下你了解的 Java 設計模式(總結)
  8. 適配器模式是什么?什么時候使用?
  9. 適配器模式與裝飾器模式有什么區別?
  10. 適配器模式和代理模式之間有什么不同?
  11. 什么是模板方法模式?試舉例說明。
  12. OOP中的組合、聚合和關聯有什么區別?
  13. 給我一個符合開閉原則的設計模式的例子?
  14. 工廠模式與抽象工廠模式的區別?
  15. 舉出一個例子,在這種情況你會更傾向于使用抽象類,而不是接口?
  16. Dubbo 源碼使用了哪些設計模式?
  17. Spring 當中用到了哪些設計模式?

分布式面試題庫

  1. 分布式id如何生成?
  2. 雪花算法了解過嗎?
  3. 什么是CAP定理?
  4. 分布式事務了解過嗎?
  5. 什么是二階段提交(2PC)?什么是三階段提交(3PC)?
  6. TCC了解過嗎?
  7. Paxos算法了解過嗎?
  8. Zookeeper的Zab協議了解過嗎?
  9. 知道什么是Gossip協議嗎?
  10. 了解過哪些負載均衡算法?
  11. 負載均衡的實現方案有哪些?
  12. 正向代理和反向代理的區別
  13. 分布式 Session了解過嗎?如何實現?
  14. 如何防止表單重復提交?
  15. 如何設計一個秒殺系統?
  16. 分布式系統的接口冪等性設計
  17. 如何保障請求執行順序
  18. BASE理論了解過嗎?
  19. SOA和微服務架構有哪些區別?

Linux面試題庫

  1. vim有幾種工作模式?
  2. find 命令如何使用?
  3. 如何在 /usr 目錄下找出大小超過 10MB 的文件?
  4. 如何在 /var 目錄下找出 90 天之內未被訪問過的文件?
  5. 如何在 /home 目錄下找出 120 天之前被修改過的文件?
  6. 在整個目錄樹下查找文件 “core” ,如發現則無需提示直接刪除它們?
  7. ls 命令
  8. df 命令
  9. rm 命令
  10. mv 命令
  11. cp 命令
  12. tail 命令
  13. grep 命令
  14. sed 命令
  15. 用 sed 命令將指定的路徑 /usr/local/http 替換成為 /usr/src/local/http ?
  16. awk 命令
  17. 打印 /etc/passwd 的 1 到 3 行?
  18. vim 命令
  19. diff 命令
  20. sort 命令
  21. xargs 命令
  22. 把當前目錄下所有后綴名為 .txt 的文件的權限修改為 777 ?
  23. tar 命令
  24. gzip 命令
  25. bzip2 命令
  26. unzip 命令
  27. export 命令
  28. yum 命令
  29. rpm 命令
  30. shutdown 命令
  31. service 命令
  32. whereis 命令
  33. 用一條命令顯示本機 eth0 網卡的 IP 地址,不顯示其它字符?
  34. 如何禁止服務器被 ping ?
  35. 設置 DNS 需要修改哪個配置文件?
  36. 在 Linux 下如何指定dns服務器,來解析某個域名?

Docker面試題庫

  1. 什么Docker
  2. Docker與虛擬機有何不同
  3. 什么是Docker鏡像
  4. 什么是Docker容器
  5. Docker容器有幾種狀態
  6. DockerFile中最常見的指定是什么?

  7. Docker的常用命令?
  8. 容器與主機之間的數據拷貝命令?
  9. 啟動nginx容器(隨機端口映射),并掛載本地文件目錄到容器html的命令?
  10. 如何使用 Docker 技術創建與環境無關的容器系統?
  11. 有什么方法確定一個 Docker 容器運行狀態
  12. Docker Image 和 Docker Layer (層) 有什么不同
  13. 如何停止所有正在運行的容器?
  14. 如何清理批量后臺停止的容器?
  15. 如何臨時退出一個正在交互的容器的終端,而不終止它?
  16. Docker 群(Swarm)是什么
  17. 在使用 Docker 技術的產品中如何監控其運行
  18. 什么是孤兒卷及如何刪除它?
  19. 在 Windows 系統上可以運行原生的 Docker 容器嗎?
  20. 在 非 Linux 操作系統平臺上如何運行 Docker ?

Dubbo面試題庫

  1. Dubbo是什么?
  2. 為什么要用Dubbo?
  3. Dubbo 和 Dubbox 有什么區別?
  4. dubbo都支持什么協議,推薦用哪種?
  5. Dubbo需要 Web 容器嗎?
  6. Dubbo內置了哪幾種服務容器?
  7. Dubbo默認使用什么注冊中心,還有別的選擇嗎?
  8. Dubbo有哪幾種配置方式?
  9. 在 Provider 上可以配置的 Consumer 端的屬性有哪些?
  10. Dubbo啟動時如果依賴的服務不可用會怎樣?
  11. Dubbo推薦使用什么序列化框架,你知道的還有哪些?
  12. Dubbo默認使用的是什么通信框架,還有別的選擇嗎?
  13. 注冊了多個同一樣的服務,如果測試指定的某一個服務呢?
  14. Dubbo支持服務多協議嗎?
  15. 當一個服務接口有多種實現時怎么做?
  16. 服務上線怎么兼容舊版本?
  17. Dubbo可以對結果進行緩存嗎?
  18. Dubbo服務之間的調用是阻塞的嗎?
  19. Dubbo支持分布式事務嗎?
  20. Dubbo支持服務降級嗎?
  21. Dubbo如何優雅停機?
  22. 服務提供者能實現失效踢出是什么原理?
  23. 如何解決服務調用鏈過長的問題?
  24. 服務讀寫推薦的容錯策略是怎樣的?
  25. Dubbo必須依賴的包有哪些?
  26. Dubbo的管理控制臺能做什么?
  27. 說說 Dubbo 服務暴露的過程。

Elasticsearch面試題庫

  1. 為什么要使用Elasticsearch?
  2. Elasticsearch是如何實現Master選舉的?
  3. Elasticsearch中的節點(比如共20個),其中的10個選了一個master,另外10個選了另一個master,怎么辦?
  4. 詳細描述一下Elasticsearch索引文檔的過程。
  5. 詳細描述一下Elasticsearch更新和刪除文檔的過程
  6. 詳細描述一下Elasticsearch搜索的過程
  7. Elasticsearch對于大數據量(上億量級)的聚合如何實現?
  8. 在并發情況下,Elasticsearch如果保證讀寫一致?
  9. ElasticSearch中的集群、節點、索引、文檔、類型是什么?
  10. ElasticSearch中的分片是什么?
  11. 什么是ElasticSearch?
  12. Elasticsearch中的倒排索引是什么?
  13. Elasticsearch中的分析器是什么?
  14. 說說Elasticsearch常用的調優手段?
  15. Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法?
  16. 客戶端在和集群連接時,如何選擇特定的節點執行請求?
  17. 在 Elasticsearch 中,是怎么根據一個詞找到對應的倒排索引的?
  18. 對于 GC 方面,在使用 Elasticsearch 時要注意什么?
  19. 在并發情況下,Elasticsearch 如果保證讀寫一致?
  20. 如何監控 Elasticsearch 集群狀態?

Java集合面試題庫

  1. 常見的集合有哪些?
  2. 常見的集合底層實現
  3. HashMap與HashTable的區別?
  4. ConcurrentHashMap和Hashtable的區別?
  5. ConcurrentHashMap實現原理
  6. ArrayList 和 Vector 的區別?
  7. ArrayList和LinkedList的區別?
  8. HashMap 默認的初始化長度是多少?
  9. 談談對HashMap 構造方法中初始容量、加載因子的理解
  10. Java集合框架是什么?說出一些集合框架的優點?
  11. 集合框架中的泛型有什么優點?
  12. 為何Collection不從Cloneable和Serializable接口繼承?
  13. 為何Map接口不繼承Collection接口?
  14. Iterator是什么?
  15. Enumeration和Iterator接口的區別?
  16. Iterater和ListIterator之間有什么區別?
  17. fail-fast與fail-safe有什么區別?
  18. hashCode()和equals()方法有何重要性?
  19. 我們能否使用任何類作為Map的key?
  20. 如何決定選用HashMap還是TreeMap?
  21. 哪些集合類提供對元素的隨機訪問?
  22. BlockingQueue是什么?
  23. 隊列和棧是什么,列出它們的區別?
  24. Collections類是什么?
  25. Comparable和Comparator接口有何區別?

Java高并發面試題庫

  1. 什么是進程
  2. 什么是線程
  3. 進程間如何通訊
  4. 線程間如何通訊
  5. 同步和異步有何不同,在什么情況下分別使用它們?舉例說明
  6. 進程調度算法
  7. Java中Unsafe類詳解
  8. 如何測試并發量?
  9. 有三個線程T1,T2,T3,怎么確保它們按順序執行?
  10. 什么是線程調度器(Thread Scheduler)和時間分片(Time Slicing)?
  11. 數據庫死鎖?
  12. 什么是鎖順序死鎖?
  13. 死鎖的避免與診斷?
  14. 常見的并發容器?
  15. 常見的同步工具類?
  16. Nginx多進程模型是如何實現高并發的?
  17. CopyOnWriteArrayList
  18. AQS
  19. Java里的阻塞隊列
  20. Fork/Join框架

Kubernetes面試題庫

  1. 什么是Kubernetes?
  2. Kubernetes與Docker有什么關系?
  3. 什么是Container Orchestration?
  4. Kubernetes如何簡化容器化部署?
  5. 什么是Google容器引擎?
  6. 什么是Heapster?
  7. 什么是Minikube?
  8. 什么是Kubectl?
  9. 什么是Kubelet?
  10. Kubernetes Architecture的不同組件有哪些?
  11. 你對Kube-proxy有什么了解?
  12. 您能否介紹一下Kubernetes中主節點的工作情況?
  13. kube-apiserver和kube-scheduler的作用是什么?
  14. 你能簡要介紹一下Kubernetes控制管理器嗎?
  15. 什么是etcd?
  16. 你對Kubernetes的負載均衡器有什么了解?
  17. 什么是Ingress網絡,它是如何工作的?
  18. 您對云控制器管理器有何了解?
  19. 什么是Container資源監控?
  20. Replica Set 和 Replication Controller之間有什么區別?

Maven面試題庫

  1. maven是什么?
  2. 使用Maven好處
  3. Maven的坐標和依賴
  4. Maven的?命周期
  5. 你們項目為什么選用 Maven 進行構建?
  6. Maven 規約是什么?
  7. Maven 常用命令
  8. Maven 有哪些優點和缺點
  9. Maven 版本規則?
  10. 對于一個多模塊項目,如果管理項目依賴的版本?
  11. Maven 依賴原則?
  12. 如何解決 jar 沖突?
  13. 什么是 Maven 插件?
  14. Maven依賴沖突
  15. 依賴的解析機制

MongoDB面試題庫

  1. 什么是MongoDB?
  2. MongoDB的優勢有哪些
  3. 什么是集合(表)?
  4. 什么是文檔(記錄)
  5. 為什么用MOngoDB?
  6. 在哪些場景使用MongoDB
  7. MongoDB中的命名空間是什么意思?
  8. MongoDB中的分片什么意思
  9. 為什么要在MongoDB中使用分析器
  10. MongoDB支持主鍵外鍵關系嗎
  11. MongoDB支持哪些數據類型
  12. 為什么要在MongoDB中用"Code"數據類型
  13. 為什么要在MongoDB中用"Regular Expression"數據類型
  14. 為什么在MongoDB中使用"Object ID"數據類型
  15. "ObjectID"有哪些部分組成
  16. 在MongoDb中什么是索引
  17. 在MongoDB中什么是副本集
  18. MongoDB支持存儲過程嗎?如果支持的話,怎么用?
  19. 如何理解MongoDB中的GridFS機制,MongoDB為何使用GridFS來存儲文件?
  20. 為什么MongoDB的數據文件很大?

Jenkins面試題庫

  1. 什么是Jenkins?
  2. Maven, Ant和Jenkins有什么區別?
  3. Jenkins支持哪些SCM工具?
  4. 在Jenkins中, 什么是持續集成?
  5. Jenkins的優勢是什么?
  6. 可以使用哪些命令手動啟動Jenkins?
  7. 如何在Jenkins中創建備份和復制文件?
  8. 如何通過Jenkins克隆Git存儲庫?
  9. 什么是jenkinsfile?為什么使用jenkinsfile
  10. 什么是Blue Ocean

Mycat面試題庫

  1. Mycat是什么?
  2. 什么叫混合切分
  3. 在項目組中,切分后的庫從哪里而來?
  4. 搭建mycat的核心配置文件有哪些?
  5. mycat分庫可以分成100個庫嗎?
  6. 進行庫表拆分時,拆分規則怎么取舍?
  7. Mycat中全局ID方案有哪些?程序自定義全局ID的方案有哪些?
  8. Mycat的在分庫分表之后,它是怎么支持聯表查詢的?
  9. 配置文件不會變多,配置的節點主機會變多?
  10. 你們項目中分片的實現方式是什么?

Nginx面試題庫

  1. 請解釋一下什么是 Nginx ?
  2. 為什么要用Nginx?
  3. Nginx怎么處理請求的?
  4. Nginx的優缺點?
  5. Nginx應用場景?
  6. 使用“反向代理服務器”的優點是什么?
  7. 列舉Nginx服務器的最佳用途。
  8. 請解釋Nginx如何處理HTTP請求。
  9. 在Nginx中,如何使用未定義的服務器名稱來阻止處理請求?
  10. 在Nginx中如何在URL中保留雙斜線?
  11. ngx_http_upstream_module的作用是什么?
  12. fastcgi 與 cgi 的區別?
  13. Nginx 常用命令?
  14. Nginx 常用配置?
  15. 請陳述stub_status和sub_filter指令的作用是什么?

RocketMQ面試題庫

  1. RocketMQ中的Topic和JMS的queue有什么區別?
  2. RocketMQ Broker中的消息被消費后會立即刪除嗎?
  3. RocketMQ消費模式有幾種?
  4. 消費消息是push還是pull?
  5. broker如何處理拉取請求的?
  6. RocketMQ如何做負載均衡?
  7. 消息重復消費如何解決?
  8. 如何讓RocketMQ保證消息的順序消費?
  9. RocketMQ如何保證消息不丟失?
  10. rocketMQ的消息堆積如何處理
  11. RocketMQ在分布式事務支持這塊機制的底層原理?
  12. 如果讓你來動手實現一個分布式消息中間件,整體架構你會如何設計實現?
  13. 高吞吐量下如何優化生產者和消費者的性能?
  14. 再說說RocketMQ 是如何保證數據的高容錯性的?
  15. 任何一臺Broker突然宕機了怎么辦?

shiro面試題庫

  1. 什么是shiro
  2. 解釋下Shiro的核心概念:Subject、SecurityManager、Realm
  3. Shiro的優點
  4. Shiro有哪些組件?
  5. 說下Authentication 身份驗證的流程
  6. Authorization 授權的方式和流程是怎樣的?
  7. Cryptography 加密的過程是這樣的?
  8. Realm 域如何使用?
  9. shiro攔截器的執行流程
  10. Session Manager 會話管理介紹一下

Servlet面試題庫

  1. Servlet的生命周期?
  2. Servlet和JSP的區別?
  3. Servlet的基本架構
  4. 什么情況下調用doGet()和doPost()?
  5. 頁面間對象傳遞的方法
  6. 四種會話跟蹤技術
  7. Request對象的主要方法
  8. 如何配置Servlet的初始化參數?
  9. 如何讀取Servlet的初始化參數?
  10. init(ServletConfig)方法執行次數
  11. init(ServletConfig)方法與異常

Tomcat面試題庫

  1. Tomcat的缺省端口是多少,怎么修改?
  2. tomcat 有哪幾種Connector 運行模式(優化)?
  3. Tomcat有幾種部署方式?
  4. tomcat容器是如何創建servlet類實例?用到了什么原理?
  5. tomcat 如何優化?
  6. tomcat內存調優了解過嗎?
  7. tomcat垃圾回收策略調優了解嗎?
  8. tomcat共享session如何處理?
  9. 如何添加JMS遠程監控
  10. Tomcat一個請求的完整過程

java8面試題庫

  1. Java 8 新特性簡介:
  2. 抽象類 和 接口的 異同?
  3. Java8支持函數編程是什么意思?
  4. Java 8中的可選項是什么?
  5. hashMap原理,java8做的改變
  6. 解釋Java 8-中間操作與終端操作?
  7. 什么是Lambda表達式?
  8. Lambda函數的優點:
  9. 什么是Java8中的MetaSpace?它與PermGen Space有何不同?
  10. 是什么使Java SE 8優于其他?
  11. Lambda表達式的參數列表與Lambda箭頭運算符有何不同?

密碼學面試題庫

  1. 什么是base64
  2. MD5
  3. SHA
  4. HMAC
  5. 密碼的常用術語
  6. 單向加密算法
  7. 復雜的對稱加密(DES、PBE)、非對稱加密算法
  8. 非對稱加密
  9. DES

操作系統面試題庫

  1. 說下進程的狀態
  2. 說下進程和線程的聯系與區別
  3. 為什么進程上下文切換比線程上下文切換代價高?
  4. 說下你對進程同步的理解
  5. 進程的通信方式有哪些
  6. 進程調度的種類有哪些?
  7. 非搶占式調度與搶占式調度的區別是什么?
  8. 說下你知道的調度算法
  9. 一個程序從開始運行到結束的完整過程(四個過程)
  10. 死鎖出現的條件?
  11. 如何處理死鎖問題
  12. 如何處理死鎖問題
  13. 什么是臨界資源
  14. 介紹一下內存池、進程池、線程池
  15. 動態鏈接庫與靜態鏈接庫的區別
  16. 說下對虛擬內存的理解
  17. 頁面置換算法了解多少?
  18. 中斷與系統調用了解嗎?
  19. 用戶態切換到內核態的方式有哪些?
  20. 用戶態和核心態(內核態)之間的區別是什么呢?
  21. 內部碎片與外部碎片分別是什么?
  22. 系統調用與庫函數的區別
  23. 守護、僵尸、孤兒進程的概念

編譯原理面試題庫

  1. 詞法分析
  2. 語法分析
  3. 語義分析
  4. 中間代碼生成
  5. 目標代碼生成
  6. 表格管理程序
  7. 出錯處理
  8. 句型、句子、語言
  9. 有窮自動機(有限自動機)
  10. 全局優化

計算機組成原理

  1. 計算機系統由哪兩部分組成?計算機系統性能取決于什么?
  2. 計算機系統5層層次結構從下到上由哪五層組成?哪些是物理機,哪些是虛擬機?
  3. 在計算機系統結構中,什么是翻譯?什么是解釋?
  4. 什么是計算機體系結構?什么是計算機組成?以乘法指令為例說明二者區別。
  5. 馮諾依曼機器的主要特點?
  6. 程序訪問的局部性
  7. 字長
  8. Cache的基本工作原理
  9. Cache和主存之間的映射方式
  10. Cache中主存塊的替換算法
  11. 二進制一般使用什么方法轉換成十進制?
  12. 計算機直接使用原碼計算有什么缺點?
  13. 請計算12、124、1023、-1、-127的二進制原碼。
  14. 計算機的補碼解決了什么問題?
  15. 什么是溢出?什么是上溢?什么是下溢?
  16. 浮點數之間做加減法運算需要幾個步驟?每個步驟都是必須的嗎?為什么?
  17. 虛擬存儲器的基本概念
  18. 頁式虛擬存儲器
  19. 段式虛擬存儲器
  20. 段頁式虛擬存儲器

評論0 贊同0
  •  加載中...
mzlogin

mzlogin

回答于2022-06-28 14:10

Java 面試題有哪些?面試經常會問什么樣的問題?互聯網大廠的面試題是怎么樣的呢?今天,我們就一起來聊一聊,關于 Java 相關的面試題。


面試題推薦

關于 Java 相關的面試題,其實有很多,而且在 GitHub 上,有很多人整理了很多 Java 相關面試題,而且這些面試題里不僅配有答案,分析,很多面試題都包含了一些類似于 BAT TMD 等大廠的面試題,看這些面試題,可以讓你充分了解大廠面試 Java 會經常為什么樣的問題。


所以,今天我就給大家推薦兩個關于 Java 面試的開源項目。里面就包含了很多 Java 面試題,還有經驗分享。


JavaGuide

這個開源項目就是:JavaGuide ,它已經有 6 萬多人 star 了。號稱是:【Java 學習 + 面試指南】,一份涵蓋大部分 Java 程序員所需要掌握的核心知識。


來看一看包含了哪些核心知識吧!看圖:

上面是整個開源項目的目錄,具體每個目錄下有什么呢?如下:

我在這里就不一一列舉了,比如,我們點擊其中一個鏈接,看看具體有哪些面試題呢?

是不是內容很豐富呢?

這個開源項目地址:

https://github.com/Snailclimb/JavaGuide


Java-Interview

這個開源項目的名稱就是:Java-Interview ,它起的名字更厲害,更唬人,就是:Java 面試必會,直通 BAT 。對,就是這么夸張,你看完之后,讓你直通 BAT 。


里面整合和整理了很多面試題。比如這樣:

再比如,具體內容:

不僅有問題,還帶有答案,也是整理很多 Java 相關的面試題。所以,建議大家在上面復習和學習,去應對面試,可以做到充分準備。畢竟,我們不打無準備之仗嘛。


所以,你可以在 GitHub 上去獲取,一搜,出來一堆。GitHub 對于程序員來講,絕對是個好地方。


怎么樣,經過我這么一回答,是不是豁然開朗了呢?如果感覺不錯,記得給個贊哦!

評論0 贊同0
  •  加載中...
explorer_ddf

explorer_ddf

回答于2022-06-28 14:10

謝邀回答!!!????????????

我認為,Java面試試題眾多,重在對基礎理論知識和實際操作的考核,給你分享一些面試題目(由于篇幅有限,答案省略),主要有:

1. 什么是Spring MVC框架的控制器?

2.SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決?

3.結合項目談談你對 MVC 的理解?

4.什么是Spring MVC?SpringMVC的工作流程是什么?

5.SpringMVC的優點是什么?

6.SpringMVC與Struts2的區別?

7.Spring框架分為哪七大模塊,各模塊的主要功能作用是什么?

8.Spring框架中的三大核心思想是什么?

9.AOP的概念以及使用AOP機制有什么好處?

10.Java編程中實現AOP有幾種方式?

11.jsp靜態包含和動態包含的區別?

12.jsp有哪些內置對象?作用分別是什么?

13.Tomcat 有哪幾種Connector 運行模式?

14.你所知道的集合類都有哪些?主要方法?

15.說出ArrayList、Vector、LinkedList 的存儲性能和特性?

16.Collection 和Collections 的區別?

17.HashMap 和Hashtable 的區別?

18.Arraylist 與Vector 區別?

19.Set 里的元素是不能重復的,那么用什么方法來區分重復與否呢?

20.介紹JAVA中的Collection FrameWork?如何寫自己的數據結構?

21.EJB與JAVA BEAN的區別是什么?

22.請你介紹EJB的基本架構?等等。

以上題目是我分享的一點點建議,希望能對你有所幫助和啟發,也希望與你相互學習、共同進步!!!





評論0 贊同0
  •  加載中...
wangshijun

wangshijun

回答于2022-06-28 14:10

我也是一直做java開發很多年啦,經歷過的面試很多了,大公司小公司都待過,給你一些建議吧。

java面試題面還是很廣的,下面給你分類整理下來的。

1、java基礎知識。比如面向對象的特征、多態、訪問修飾符范圍、static和final關鍵字、抽象類與接口、深拷貝與淺拷貝、序列化與反序列化、幾種數據結構、拆箱與裝箱

2、java集合相關的。比如集合框架理解、list、set、hashmap底層實現以及區別?hashmap底層原理,put和get方法怎么實現的?hashmap與hashTable區別?concurrentHashMap底層實現?

3、java異常處理。異常分類?編譯時異常與運行時異常區別?舉例子有哪些運行時異常?

4、jvm內存模型。以及GC垃圾回收機智和算法。

5、spring相關。解釋IOC和AOP,以及他們的原理。bean生命周期

6、mysql。索引是什么?索引分類?索引優化?

7、mybaits相關。動態標簽,字符串替換,防注入。

8、dubbo。dubbo服務注冊與發現。服務負載均衡算法,dubbo配置與使用。

9、多線程。synchronized用法與底層原理,與lock的區別?線程池有哪些?線程池有哪些參數?線程池優化?

10、redis。redis數據類型有哪些,每個類型的使用場景?redis為什么這么快?redis怎么保證高可用?redis怎么保證與數據庫數據一致?

11、消息隊列。activeMQ、rabbitMQ、rocketMQ、kafka,都可以了解下,以及怎么保證高可用和處理高并發。

12、排序算法與數據結構。冒泡排序、快速排序、選擇排序、插入排序等等

大概就有這么個方面的,好好準備還是有很多機會的。

我主要做java 開發的,大家有什么其他問題可以關注我給我私信,或者繼續在評論區和我溝通,我有java高級分布式高并發消息隊列面試視頻可以分享,大家一起進步

互聯網高級java高并發分布式消息隊列面試視頻在蜻蜓FM,搜索“淺戲互聯網”,喜歡的朋友可以關注一下,謝謝。

評論0 贊同0
  •  加載中...
gaara

gaara

回答于2022-06-28 14:10

謝邀。一般關于面試的java框架都是根據你簡歷中之前項目用到的框架來問。題主沒有問到具體的框架,我就談談目前公司招聘要求最多,也是公司用的最多的三個框架SSM。

關于Spring:

1.談談你對Spring IOC和DI的理解,它們有什么區別?

2.Spring配置bean實例化有哪些方式?

3.請介紹一下Spring框架中Bean的生命周期和作用域

4.Bean注入屬性有哪幾種方式?

5.什么是AOP,AOP的作用是什么?

6.Spring如何處理線程并發問題?

7.介紹一下Spring的事物管理

關于SpringMVC:

1.什么是SpringMVC ?簡單介紹下你對SpringMVC的理解?

2.說說SpringMVC的流程?

3.SpringMVC有什么優點?

4.SpringMVC怎么樣設定重定向和轉發的?

5.如何解決POST請求中文亂碼問題,GET的又如何處理呢?

6.Spring MVC的異常處理 ?

7.SpringMvc的核心入口類是什么?

8.SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決?

9. @RequestMapping注解用在類上面有什么作用?

10.如果前臺有很多個參數傳入,并且這些參數都是一個對象的,那么怎么樣快速得到這個對象?

11.SpringMvc如何處理視圖?

關于Mybatis:

1.#{}和${}的區別是什么?

2.當實體類中的屬性名和表中的字段名不一樣 ,怎么辦?

3.聊聊你對Mybatis的了解和認識?

4. Mybatis工作原理

5.Mapper.xml映射文件中有哪些常用標簽?

6.Mybatis是如何進行分頁的?分頁插件的原理是什么?

7.Mybatis動態sql是做什么的?都有哪些動態sql?簡述一下動態sql的執行原理?

8.Mybatis是如何將sql執行結果封裝為目標對象并返回的?都有哪些映射形式?

以上題目是我分享的一點點建議,希望能對你有所幫助。有興趣還可以關注我,定期分享技術干貨,在程序員進階的路上一起學習成長。

評論0 贊同0
  •  加載中...
caozhijian

caozhijian

回答于2022-06-28 14:10

1.不可變對象

指對象一旦被創建狀態不能再改變。任何修改都會創建一個新的對象,如 String、Integer及其它包裝類。

2.能否創建一個包含可變對象的不可變對象?

可以。不要共享可變對象的引用就可以了,如果需要變化就返回原對象的一個拷貝。最常見的例子是對象中包含一個日期對象的引用.

3.java 創建對象的方式

  • 采用new
  • 通過反射
  • 采用clone
  • 通過序列化機制

前2者都需要顯式地調用構造方法. 造成耦合性最高的恰好是第一種,因此你發現無論什么框架,只要涉及到解耦必先減少new的使用.

4.switch中能否使用string做參數

在idk 1.7之前,switch只能支持byte,short,char,int或者其對應的封裝類以及Enum類型。從idk 1.7之后switch開始支持String.

5.Object中有哪些公共方法?

  • equals()
  • clone()
  • getClass()
  • notify(),notifyAll(),wait()

6. object中定義了哪些方法?

clone(), equals(), hashCode(), toString(), notify(), notifyAll(), wait(), finalize(), getClass()

7. HashMap和HashTable的區別

  • HashTable是線程安全的HashMap不是
  • HashMap中允許存在null鍵和null值,HashTable中不允許

8. HashMap的實現原理

HashMap的底層實現是“基于拉鏈法的散列表”。

9.String 是最基本的數據類型嗎?

不是。Java中的基本數據類型只有8個:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type)和枚舉類型(enumeration type),剩下的都是引用類型(reference type)。

10.float f=3.4;是否正確?

不正確。3.4是雙精度數,將雙精度型(double)賦值給浮點型(float)屬于下轉型(down-casting,也稱為窄化)會造成精度損失,因此需要強制類型轉換float f =(float)3.4; 或者寫成float f =3.4F;。

11.Java有沒有goto?

goto 是Java中的保留字,在目前版本的Java中沒有使用。《The Java Programming Language》附錄中有goto和const,但這兩個是目前無法使用的關鍵字,因此有些地方將其稱之為保留字,其實保留字這個詞應該有更廣泛的意義,因為熟悉C語言的程序員都知道,在系統類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字。

12.http1.0,http1.1,http2.0區別

1.0相比1.1可以一次傳輸多個文件,各類瀏覽器大概都支持3~5個請求同時發送。

http2.0主要是二進制的格式替代了原來的文本,增加了多路復用和首部壓縮解決了head of line blocking,另外還有server pushing等新特性。

協議的東西還是建議看一看官網的說明。

13.Get/Post對緩存的影響

此題其實是問瀏覽器緩存對于HTTP Method中Get和Post的請求是否支持,答案是不支持Post Method。Get可以被瀏覽器緩存。

14.多態的好處

允許不同類對象對同一消息做出響應,主要優點:

  • 可替換性:多態對已存在代碼具有可替換性;
  • 可擴充性:增加新的子類不影響已經存在的類結構;
  • 接口性:多態是超累通過方法簽名,想子類提供一個公共接口,由子類來完善或者重寫它來實現的;
  • 靈活性;
  • 簡化性。

15.代碼中如何實現多態

  • 接口實現
  • 繼承父類重寫方法
  • 同一類中進行方法重載

16.虛擬機是如何實現多態的

動態綁定技術(dynamic binding),執行期間判斷所引用對象的實際類型,根據實際類型調用對應的方法.

17.接口的意義

接口的意義用三個詞就可以概括:規范,擴展,回調.

18.抽象類的意義

  • 為其他子類提供一個公共的類型
  • 封裝子類中重復定義的內容
  • 定義抽象方法,子類雖然有不同的實現,但是定義時一致的

19.父類的靜態方法能否被子類重寫

不能。子類繼承父類后,有相同的靜態方法和非靜態,這是非靜態方法覆蓋父類中的方法,父類的該靜態方法被隱藏,另外子類可集成父類的靜態與非靜態方法,至于方法重載我覺得它其中一要素就是在同一類中,不能說父類中的什么方法與子類里的什么方法是方法重載的體現。

以上19道java經典面試題。

最后

為幫助那些往想互聯網方向轉行想學習,卻因為時間不夠,資源不足而放棄的人。我搜集整理了一套完整的IT學習資料,包括運營技巧、SEO優化等,比自己在網上零散收集的結構性和連貫性更強,只為幫助那些想學習的人!需要的同學可私信!私信!回復“資料”

評論0 贊同0
  •  加載中...
henry14

henry14

回答于2022-06-28 14:10

SpringMVC

  1. 什么是Spring MVC ?簡單介紹下你對springMVC的理解?
  2. SpringMVC的流程?
  3. Springmvc的優點
  4. SpringMVC和struts2的區別有哪些?
  5. 如何解決POST請求中文亂碼問題,GET的又如何處理呢?

Spring

  1. AOP(面向切面編程)的原理
  2. AOP的使用場景
  3. IOC(控制反轉)的原理
  4. Spring框架中的單例bean是線程安全的嗎?
  5. 常用的注解
  6. 用到的設計模式
  7. Spring的優點(解耦、很多主流框架的集成 低侵入式設計,代碼的污染極低 等等)
  8. SpringBean的作用域
  9. 事務機制
  10. Spring的核心類,及作用 如BeanFactory、ApplicationContext、BeanWrapper
  11. Spring支持的ORM?
  12. BeanFactory 接口和 ApplicationContext 接口有什么區別 ?
  13. 依賴注入的方式有幾種:接口注入、Setter注入、構造方法注入

Mybatis

  1. 什么是mybatis?
  2. MyBatis與Hibernate有哪些不同?
  3. Mybait的優缺點
  4. 常見的標簽
  5. 分頁及常用的分頁插件
  6. #{}和${}的區別是什么?
  7. 一對一、一對多的關聯查詢 ?
  8. Mybatis的一級、二級緩存:
  9. Mybatis比IBatis比較大的幾個改進是什么?
  10. IBatis和MyBatis在核心處理類分別叫什么?
  11. IBatis和MyBatis在細節上的不同有哪些?
  12. 為什么說Mybatis是半自動ORM映射工具?它與全自動的區別在哪里?
  13. MyBatis與Hibernate有哪些不同?

Hibernate

  1. Hibernate工作原理
  2. Hibernate是如何延遲加載(懶加載)?
  3. 緩存機制(一級緩存、二級緩存)
  4. Hibernate的查詢方式有幾種Hibernate中save、persist和saveOrUpdate這三個方法的不同之處?
  5. get()與load()的區別
  6. Hibernate中的SessionFactory有什么作用? SessionFactory是線程安全的嗎?

SpringBoot

  1. 常用的starter有哪些
  2. Spring Boot 的配置文件有哪幾種格式?它們有什么區別?
  3. Spring Boot 的核心注解是哪個?常用的注解(如@EnableEurekaClient
  4. @EnableFeignClients @FeignClient @EnableTransactionManagement
  5. @RestController @Configuration @Order @ControllerAdvice等)
  6. Spring Boot 需要獨立的容器運行嗎?( 可以不需要,內置了 Tomcat/ Jetty 等容器。)
  7. 運行 Spring Boot 有哪幾種方式?
  8. SpringBoot與SpringCloud的關系
  9. SpringCloud的各類組件(Feign、Eureka、Hystrix等)的理解及使用

Nginx

  1. Nginx作用
  2. 常用命令
  3. 負載均衡的幾種常用方式?
  4. session不同步怎么辦
  5. 前端服務器集群后做負載均衡和動靜分離

其他

  1. Thymeleaf、freemarker等模板引擎

  2. NoSQL:Redis、Memcache和MongoDB等的區別、使用

  3. xml解析(DOM解析、SAX解析、JDOM解析、DOM4J解析)

  4. POI實現Microsoft Office格式檔案讀和寫的功能

  5. 多線程、線程池的原理及實現

  6. 設計模式

  7. Kafka、MQ等消息機制

  8. Sql優化

  9. jvm原理

  10. 常用搜索引擎Elasticsearch等

  11. 扎實的java基礎



程序猿,他們想的是什么?他們想的永遠都是技術,他們崇尚的也永遠都是技術。

評論0 贊同0
  •  加載中...
vibiu

vibiu

回答于2022-06-28 14:10

作為一家有著12年教學經驗且只專心教Java的培訓機構,自然有很多高質量的面試題:

Java常見面試題及答案(131~140企業真題)

131、j2ee中的應用服務器有哪些?(ACD)

A. Weblogic

B. Tomcat

C. JBoss

D. WebSphere

E. IIS

132、EJB程序與普通的java程序區別有哪些?

EJB是sun的服務器端組件模型,最大的用處是部署分布式應用程序當然,還有許多方式可以實現分布式應用,類似微軟的.net技術。

憑借 java 跨平臺的優勢,用EJB 技術部署的分布式系統可以不限于特定的平臺。EJB(EnterpriseJavaBean)是J2EE的一部分,定義了一個用于開發基于組件的企業多重應用程序的標準。其特點包括網絡服務支持和核心開發工具(SDK)。

在J2EE里,Enterprise Java Beans(EJB)稱為Java企業Bean,是Java 的核心代碼,分別是會話 Bean(Session Bean),實體 Bean(Entity Bean)和消息驅動 Bean(MessageDriven Bean)。

簡單來講:比如做一個工程就和蓋房子,如果,你會 java,那么你就擁有了基本的技能,一步一步累磚,總能把房子蓋好但是EJB就是一個框架,蓋房子的時候,先有這個框架,然后你根據這個框架去累磚,房子就會蓋的又快又好。java是基礎,EJB 是在java上發展出來的模型,框架。

133、請簡述什么是集群?

服務器集群就是指將很多服務器集中起來一起進行同一種服務,在客戶端看來就象是只有一個服務器。集群可以利用多個計算機進行并行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常運行。一旦在服務器上安裝并運行了群集服務,該服務器即可加入群集。群集化操作可以減少單點故障數量,并且實現了群集化資源的高可用性。

134、字符串中有重復的內容去重 例如:abbccccaaddaggb-->abvadagb

public class Test {

public static void main(String[] args) {

List<String> list = new ArrayList<String>();

list.add("a");

list.add("a");

list.add("a");

list.add("b");

list.add("b");

list.add("c");

System.out.println("沒有去重前的數據為>>>" + list.toString());

for (int i = 0; i < list.size() - 1; i++) {

for (int j = list.size() - 1; j > i; j--) {

if (list.get(j).equals(list.get(i))) {

list.remove(j);

}

}

}

System.out.println("去重后的數據為>>>" + list.toString());

}

}

135、利用 java 面向對象的思路設計正方形、長方形、圓的計算面積的類圓:

class MianJi {

float r;

float pai = (float) 3.14;

void gongShi() {

Float s = pai * r * r;

System.out.println("圓的面積為" + s);

}

void zhengFangXing(float bianChang) {

System.out.println("正方形的面積為" + bianChang * bianChang);

}

void changFangXing(float chang, float kuan) {

System.out.println("長方形的面積為" + chang * kuan);

}

public static void main(String[] arg) {

MianJi c = new MianJi();

System.out.println("請輸入圓的半徑:");

Scanner sc = new Scanner(System.in);

c.r = sc.nextFloat(); c.gongShi();

System.out.println("請輸入正方形的邊長:");

float bian = sc.nextFloat();

c.zhengFangXing(bian);

System.out.println("請輸入長方形的長和寬:");

float chang = sc.nextFloat();

float kuan = sc.nextFloat();

c.changFangXing(chang, kuan);

}

}

136、任何>=6的偶數都可以分解為兩個質數之和,從鍵盤輸入一個偶數,輸出其分解的質數

public class Test { public static void main(String[] args) { int num = inPut(); outPut(num); } public static int inPut() { Scanner sc = new Scanner(System.in); System.out.println("請輸入大于 6 的偶數:"); int num = sc.nextInt(); if (num % 2 != 0 || num <= 6) { System.out.println("輸入錯誤,請重新輸入大于 6 的偶數:"); return inPut(); } return num; } public static boolean isPrim(int num) { for (int i = 2; i <= Math.sqrt((double) num); i++) { if (num % i == 0) { return false; } } return true; } public static void outPut(int num) { for (int i = 2; i <= num / 2; i++) { if (isPrim(i) == true && isPrim(num - i) == true) { System.out.println(i + " " + (num - i)); } } } }

137、什么叫對象?什么叫類?什么是面向對象(OOP)?

類的概念:類是具有相同屬性和行為的一組對象的集合。它為屬于該類的所有對象提供了統一的抽象描述,其內部包括屬性和行為兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名并包括屬性說明和服務說明兩個主要部分。

對象的概念:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。客觀世界是由對象和對象之間的聯系組成的。

類與對象的關系就如模具和鑄件的關系,類的實例化結果就是對象,而對一類對象的抽象就是類。類描述了一組有相同特性(屬性)和相同行為(方法)的對象。

上面大概就是它們的定義吧,也許你是剛接觸面象對象的朋友,不要被概念的東西搞暈了, 給你舉個列子吧,如果你去中關村想買幾臺組裝的PC機,到了那里你第一步要干什么,是不是裝機的工程師和你坐在一起,按你提供的信息和你一起完成一個裝機的配置單呀,這個配置單就可以想像成是類,它就是一張紙,但是它上面記錄了你要買的PC機的信息,如果用這個配置單買10臺機器,那么這10臺機子,都是按這個配置單組成的,所以說這10臺機子是一個類型的,也可以說是一類的。那么什么是對象呢,類的實例化結果就是對象,用這個配置單配置出來(實例化出來)的機子就是對象,是我們可以操作的實體,10 臺機子,10 個對象。每臺機子都是獨立的,只能說明他們是同一類的,對其中一個機(對象)做任何動作都不會影響其它9臺機器,但是我對類修改,也就是在這個配置單上加一個或少一個配件,那么裝出來的9個機子都改變了,這是類和對象的關系(類的實例化結果就是對象)

138、JAVA中使用final修飾符,對程序有哪些影響?

● 修飾類

當用final修飾一個類時,表明這個類不能被繼承。也就是說,如果一個類你永遠不會讓他被繼承,就可以用final進行修飾。final類中的成員變量可以根據需要設為final,但是要注意 final 類中的所有成員方法都會被隱式地指定為final 方法。在使用 final 修飾類的時候,要注意謹慎選擇,除非這個類真的在以后不會用來繼承或者出于安全的考慮,盡量不要將類設計為 final類。

● 修飾方法

被final修飾的方法將不能被子類覆蓋,主要用于:

把方法鎖定,以防任何繼承類修改它的含義。

在早期的Java實現版本中,會將final方法轉為內嵌調用,所以效率能夠提升。

● 修飾變量

對于一個final變量,如果是基本數據類型的變量,則其數值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。當用 final 作用于類的成員變量時,成員變量(注意是類的成員變量,局部變量只需要保證在使用之前被初始化賦值即可)必須在定義時或者構造器中進行初始化賦值,而且final變量一旦被初始化賦值之后,就不能再被賦值了。

139、寫出 5 個你在 JAVA 開發中常用的包含(全名),并簡述其作用。

● java.lang.*

提供利用Java編程語言進行程序設計的基礎類。最重要的類是Object(它是類層次結構的根)和Class(它的實例表示正在運行的應用程序中的類)。

● java.util.*

包含集合框架、遺留的Collection類、事件模型、日期和時間設施、國際化和各種實用工具類(字符串標記生成器、隨機數生成器和位數組、日期 Date 類、堆棧 Stack 類、向量 Vector 類等)。集合類、時間處理模式、日期時間工具等各類常用工具包。

● java.io.*

Java 的核心庫java.io提供了全面的IO接口。包括:文件讀寫、標準設備輸出等。Java 中 IO是以流為基礎進行輸入輸出的,所有數據被串行化寫入輸出流,或者從輸入流讀入。

● java.net.*

并非所有系統都支持 IPv6 協議,而當 Java 網絡連接堆棧嘗試檢測它并在可用時透明地使用它時,還可以利用系統屬性禁用它。在IPv6不可用或被顯式禁用的情況下,Inet6Address 對大多數網絡連接操作都不再是有效參數。雖然可以保證在查找主機名時 java.net.InetAddress.getByName之類的方法不返回Inet6Address,但仍然可能通過傳遞字面值來創建此類對象。在此情況下,大多數方法在使用 Inet6Address 調用時都將拋出異常。

● java.sql.*

提供使用JavaTM編程語言訪問并處理存儲在數據源(通常是一個關系數據庫)中的數據的API。此API包括一個框架,憑借此框架可以動態地安裝不同驅動程序來訪問不同數據源。

140、方法重載(overload)需要滿足什么條件,方法覆蓋/方法重寫(override)需要滿足什么條件?

重載需要滿足的條件:在同一類中定義的方法,方法名必須相同,參數一定不同。

發生覆蓋的條件:“三同一不低”,子類和父類的方法名稱,參數列表,返回類型必須完全相同,而且子類方法的訪問修飾符的權限不能比父類低。子類方法不能拋出比父類方法更多的異常。即子類方法所拋出的異常必須和父類方法所拋出的異常一致,或者是其子類,或者什么也不拋出;被覆蓋的方法不能是final類型的。因為final修飾的方法是無法覆蓋的。被覆蓋的方法不能為private。否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。被覆蓋的方法不能為static。所以如果父類中的方法為靜態的,而子類中的方法不是靜態的,但是兩個方法除了這一點外其他都滿足覆蓋條件,那么會發生編譯錯誤。反之亦然。即使父類和子類中的方法都是靜態的,并且滿足覆蓋條件,但是仍然不會發生覆蓋,因為靜態方法是在編譯的時候把靜態方法和類的引用類型進行匹配。

重寫規則:重寫方法不能比被重寫方法限制有更嚴格的訪問級別。(但是可以更廣泛,比如父類方法是包訪問權限,子類的重寫方法是public訪問權限)。比如:Object類有個toString()方法,開始重寫這個方法的時候我們總容易忘記public修飾符,編譯器當然不會放過任何教訓我們的機會。出錯的原因就是:沒有加任何訪問修飾符的方法具有包訪問權限,包訪問權限比 public當然要嚴格了,所以編譯器會報錯的。參數列表必須與被重寫方法相同。重寫有個孿生的弟弟叫重載,也就是后面要出場的。如果子類方法的參數與父類對應的方法不同,那么就是你認錯人了,那是重載,不是重寫。返回類型必須與被重寫方法的返回類型相同。

父類方法A:void eat(){}子類方法B:int eat(){}兩者雖然參數相同,可是返回類型不同,所以不是重寫。

父類方法A:int eat(){} 子類方法 B:long eat(){} 返回類型雖然兼容父類,但是不同就是不同,所以不是重寫。

評論0 贊同0
  •  加載中...
silenceboy

silenceboy

回答于2022-06-28 14:10

我會定時更新一些Java題庫,現在好多做大的都商業化了,而且網上的面試題庫有些太久了,不適合,我自己平時上下班地鐵上會寫一些面試題,純粹也是為了讓自己總結一下,順便分享給大家,你可以關注看看。

評論0 贊同0
  •  加載中...

相關問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<