JAVA总结

JAVA面经

kafka 各组件之间的关系,broker,consumer,topic,consumer group,partition 等

初始Kafka

kafka的对于同一个topic 的offset是否只会有一个

spark streaming的原理

redis 各种数据结构的使用场景

mysql索引什么情况下触发

spark 和flink 的区别对比

  1. Ddos攻击
  2. java域的关键字以及区别
  3. hashmap数据结构以及如何计算hashcode,以及地址冲突了怎么办?
  4. 手撕arraylist实现
  5. 泛型以及泛型擦除,编译时还是运行时,擦除之后是什么?(object)
  6. content provider
  7. https的uri以及过程
  8. handler、looper、message关系,looper一直运行吗?如何唤醒?关闭屏幕的话handler还在吗?
  9. anr是什么,原因,如何监控?
  10. 内存泄漏以及handler 中的内存泄漏
  11. fragment和activity关系以及优点如何使用生命周期
  12. . hashmap数据结构和hashtable区别,如何实现hashmap线程安全
  13. wait sleep区别
  14. treemap Hashmap区别
  15. 设计模式具体,以及单例模式的实现方式有哪些,手撕单例模式
  16. activity生命周期
  17. ZK如何实现分布式锁,ZK如何执行写流程,ZK的fastElection
  18. .一个需要:传入一个map,每个key对应的类型都有自己的校验流程,如何设计代码(要求代码维护起来方便),如何实现并发校验?(答的线程池)当一个流程失败,如何将线程池队列中的该流程的任务剔除?
  19. Redis数据结构
  20. HashMap (5)
  21. hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
  22. 什么情况下用HashMap,什么情况用ConcurrentHashMap?
  23. CHM(3)
  24. ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好
  25. ZK如何实现配置中心?Watch机制如何实现(这个和Redis的订阅推送机制差别很大)?
  26. Redis和Zk如何实现分布式锁?为什么Redis要用lua脚本方式实现?
  27. redis数据结构?
  28. redis数据淘汰机制
  29. 如果Redis有1亿个key,使用keys命令是否会影响线上服务?
    Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么
  30. JVM内存结构,CMS细节
  31. Java GC机制?GC Roots有哪些?
  32. AtomicInteger怎么实现原子修改的?
  33. 三大特性
  34. 继承的子类异常和父类异常
  35. hashmap底层
  36. 高并发:多线程的方式 什么时候用多线程
  37. 介绍一下SSM
  38. 线程池Redis底层数据结构
  39. Redis的hashmap和java的hashmap的区别
  40. Redis的set的时间复杂度
  41. Thread 和 Runable的区别
  42. 类加载机制
  43. G1和CMS的差别
  44. 电商项目中秒杀系统实现流程,怎么解决超卖(答 redis son分布式信号量)
  45. redis son信号量底层原理(答lua脚本),lua脚本怎么保证原子性(不会)
  46. redis 持久化(提到了RDB持久化笨重会丢失数据,AOF实时性强一点但也会丢失数据)
  47. redis 持久化消息时宕机了导致分布式信号量没来得及持久化,恢复后信号量的值数据不一致怎么解决(想了一会,面试官提示消息队列,就回答了 redis 恢复后将数据和消息队列的持久化进行比较)
  48. redis 基本数据类型(中途在zset答了跳表),跳表怎么实现的(说了底层数据结构list, node, level,查找过程)
  49. JVM运行时数据区介绍一下
  50. JVM哪些东西是线程独享的(PC计数器,Java虚拟机栈所有)
  51. JVM堆中的划分,比例(8:1:1),为什么(答复制 算法 效率高,大部分对象存活时间短,所以sur vivo r占比较少)
  52. JVM怎么判断哪些对象需要回收(可达性分析,GC Roots)
  53. JUC有看过源码吗?synchronized和ReentrantLock区别(重量级锁底层实现不一样,公平锁和非公平锁实现)
  54. 公平锁和非公平锁哪个效率高?(这个想了一会,答了非公平锁,公平锁把当前线程直接放队列,非公平锁cas成功就获得锁,少了几次线程切换,解释到中途面试官就打断了,继续问)
  55. java基本数据类型
  56. ArrayList和LinkedList区别?你如何理解动态数组中的动态?扩容的底层原理与过程?那么扩容这个过程的时间复杂度?

Java 知识

基础语法:

基础语法
多线程

文档资料

进阶

JVM知识图解
注射和反射

框架知识

SpringMVC 视频学习网站
SpringBoot 视频学习网站
Mybatis 视频学习网站
spring + mybatis 我的图解
Spring data jap 有时间就去了解下(尚硅谷)
tomcat 有时间就去了解下
SpringCloud 有时间就去了解下(尚硅谷)
MybatisPlus 有时间就去了解下(尚硅谷)

终极

SpringCloud 相关的技术(微服务直接的调用原理、缓存一致性、秒杀、接口幂等性都知识)

一、Java基础 44 道

  1. 解释下什么是面向对象?面向对象和面向过程的区别?

  2. 面向对象的三大特性?分别解释下?

  3. JDK、JRE、JVM 三者之间的关系?

  4. 重载和重写的区别?

  5. Java 中是否可以重写一个 private 或者 static 方法?

  6. 构造方法有哪些特性?

  7. 在 Java 中定义一个不做事且没有参数的构造方法有什么作用?

  8. Java 中创建对象的几种方式?

  9. 抽象类和接口有什么区别?

  10. 静态变量和实例变量的区别?

  11. 12、short s1 = 1;s1 = s1 + 1;有什么错?那么 short s1 = 1; s1 += 1;呢?有没有错误?

  12. Integer 和 int 的区别?

  13. 装箱和拆箱的区别

  14. switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?

  15. 16、final、finally、finalize 的区别

  16. == 和 equals 的区别?

  17. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?

  18. 为什么重写 equals() 就一定要重写 hashCode() 方法?

  19. & 和 && 的区别?

  20. Java 中的参数传递时传值呢?还是传引用?

  21. Java 中的 Math.round(-1.5) 等于多少?

  22. 如何实现对象的克隆?

  23. 深克隆和浅克隆的区别?

  24. 什么是 Java 的序列化,如何实现 Java 的序列化?

  25. 什么情况下需要序列化?

  26. Java 的泛型是如何工作的 ? 什么是类型擦除 ?

  27. 什么是泛型中的限定通配符和非限定通配符 ?

  28. List 和 List 之间有什么区别 ?

  29. Java 中的反射是什么意思?有哪些应用场景?

  30. 反射的优缺点?

  31. Java 中的动态代理是什么?有哪些应用?

  32. 怎么实现动态代理?

  33. static 关键字的作用?

  34. super 关键字的作用?

  35. 字节和字符的区别?

  36. String 为什么要设计为不可变类?

  37. String、StringBuilder、StringBuffer 的区别?

  38. String 字符串修改实现的原理?

  39. String str = “i” 与 String str = new String(“i”) 一样吗?

  40. String 类的常用方法都有那些?

  41. final 修饰 StringBuffer 后还可以 append 吗?

  42. Java 中的 IO 流的分类?说出几个你熟悉的实现类?

  43. 字节流和字符流有什么区别?

  44. BIO、NIO、AIO 有什么区别?

二、Java异常 9 道

  1. finally 块中的代码什么时候被执行?

  2. finally 是不是一定会被执行到?

  3. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

  4. try-catch-finally 中那个部分可以省略?

  5. Error 和 Exception 的区别?

  6. 运行时异常与受检异常有何异同?

  7. throw 和 throws 的区别?

  8. 常见的异常类有哪些?

  9. 主线程可以捕获到子线程的异常吗?

三、Java集合 24 道

  1. Java 中常用的容器有哪些?

  2. ArrayList 和 LinkedList 的区别?

  3. ArrayList 实现 RandomAccess 接口有何作用?为何 LinkedList 却没实现这个接口?

  4. ArrayList 的扩容机制?

  5. Array 和 ArrayList 有何区别?什么时候更适合用 Array?

  6. HashMap 的实现原理/底层数据结构?JDK1.7 和 JDK1.8

  7. HashMap 的 put 方法的执行过程?

  8. HashMap 的 get 方法的执行过程?

  9. HashMap 的 resize 方法的执行过程?

  10. HashMap 的 size 为什么必须是 2 的整数次方?

  11. HashMap 多线程死循环问题?

  12. HashMap 的 get 方法能否判断某个元素是否在 map 中?

  13. HashMap 与 HashTable 的区别是什么?

  14. HashMap 与 ConcurrentHashMap 的区别是什么?

  15. HashTable 和 ConcurrentHashMap 的区别?

  16. ConcurrentHashMap 的实现原理是什么?

  17. HashSet 的实现原理?

  18. HashSet 怎么保证元素不重复的?

  19. LinkedHashMap 的实现原理?

  20. Iterator 怎么使用?有什么特点?

  21. Iterator 和 ListIterator 有什么区别?

  22. Iterator 和 Enumeration 接口的区别?

  23. fail-fast 与 fail-safe 有什么区别?

  24. Collection 和 Collections 有什么区别?

四、Java并发 42 道

  1. 并行和并发有什么区别?

  2. 线程和进程的区别?

  3. 守护线程是什么?

  4. 创建线程的几种方式?

  5. Runnable 和 Callable 有什么区别?

  6. 线程状态及转换?

  7. sleep() 和 wait() 的区别?

  8. 线程的 run() 和 start() 有什么区别?

  9. 在 Java 程序中怎么保证多线程的运行安全?

  10. Java 线程同步的几种方法?

  11. Thread.interrupt() 方法的工作原理是什么?

  12. 谈谈对 ThreadLocal 的理解?

  13. 在哪些场景下会使用到 ThreadLocal?

  14. 说一说自己对于 synchronized 关键字的了解?

  15. 如何在项目中使用 synchronized 的?

  16. 说说 JDK1.6 之后的 synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优化吗?

  17. 谈谈 synchronized 和 ReenTrantLock 的区别?

  18. synchronized 和 volatile 的区别是什么?

  19. 谈一下你对 volatile 关键字的理解?

  20. 说下对 ReentrantReadWriteLock 的理解?

  21. 说下对悲观锁和乐观锁的理解?

  22. 乐观锁常见的两种实现方式是什么?

  23. 乐观锁的缺点有哪些?

  24. CAS 和 synchronized 的使用场景?

  25. 简单说下对 Java 中的原子类的理解?

  26. atomic 的原理是什么?

  27. 说下对同步器 AQS 的理解?

  28. AQS 的原理是什么?

  29. AQS 对资源的共享模式有哪些?

  30. AQS 底层使用了模板方法模式,你能说出几个需要重写的方法吗?

  31. 说下对信号量 Semaphore 的理解?

  32. CountDownLatch 和 CyclicBarrier 有什么区别?

  33. 说下对线程池的理解?为什么要使用线程池?

  34. 创建线程池的参数有哪些?

  35. 如何创建线程池?

  36. 线程池中的的线程数一般怎么设置?需要考虑哪些问题?

  37. 执行 execute() 方法和 submit() 方法的区别是什么呢?

  38. 说下对 Fork和Join 并行计算框架的理解?

  39. JDK 中提供了哪些并发容器?

  40. 谈谈对 CopyOnWriteArrayList 的理解?

  41. 谈谈对 BlockingQueue 的理解?分别有哪些实现类?

  42. 谈谈对 ConcurrentSkipListMap 的理解?

五、Java JVM 42 道

  1. 说一下 Jvm 的主要组成部分?及其作用?

  2. 谈谈对运行时数据区的理解?

  3. 堆和栈的区别是什么?

  4. 堆中存什么?栈中存什么?

  5. 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?

  6. Java 中的参数传递时传值呢?还是传引用?

  7. Java 对象的大小是怎么计算的?

  8. 对象的访问定位的两种方式?

  9. 判断垃圾可以回收的方法有哪些?

  10. 垃圾回收是从哪里开始的呢?

  11. 被标记为垃圾的对象一定会被回收吗?

  12. 谈谈对 Java 中引用的了解?

  13. 谈谈对内存泄漏的理解?

  14. 内存泄露的根本原因是什么?

  15. 举几个可能发生内存泄漏的情况?

  16. 尽量避免内存泄漏的方法?

  17. 常用的垃圾收集算法有哪些?

  18. 为什么要采用分代收集算法?

  19. 分代收集下的年轻代和老年代应该采用什么样的垃圾回收算法?

  20. 什么是浮动垃圾?

  21. 什么是内存碎片?如何解决?

  22. 常用的垃圾收集器有哪些?

  23. 谈谈你对 CMS 垃圾收集器的理解?

  24. 谈谈你对 G1 收集器的理解?

  25. 说下你对垃圾回收策略的理解/垃圾回收时机?

  26. 谈谈你对内存分配的理解?大对象怎么分配?空间分配担保?

  27. 说下你用过的 JVM 监控工具?

  28. 如何利用监控工具调优?

  29. JVM 的一些参数?

  30. 谈谈你对类文件结构的理解?有哪些部分组成?

  31. 谈谈你对类加载机制的了解?

  32. 类加载各阶段的作用分别是什么?

  33. 有哪些类加载器?分别有什么作用?

  34. 类与类加载器的关系?

  35. 谈谈你对双亲委派模型的理解?工作过程?为什么要使用

  36. 怎么实现一个自定义的类加载器?需要注意什么?

  37. 怎么打破双亲委派模型?

  38. 有哪些实际场景是需要打破双亲委派模型的?

  39. 谈谈你对编译期优化和运行期优化的理解?

  40. 为何 HotSpot 虚拟机要使用解释器与编译器并存的架构?

  41. 说下你对 Java 内存模型的理解?

  42. 内存间的交互操作有哪些?需要满足什么规则?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值