java面试题总结

经过历时两周,二十多家面试,终于有了一份比较满意的offer,面试还是挺能增长知识的,每次不管你准备了多少,总是有问题难到你的,基于此尽量回忆下,留作日后再看.

1,集合类面试题

arraylist和linkedlist的区别?底层实现?手写实现?线程安全吗以及原因?

hashmap的底层实现?put()执行过程?put null时的执行过程?

hashmap为什么不是线程安全的?发生碰撞的时候怎么处理?

concurrenthashmap的底层实现?是如何实现分段锁的?

linkedhashmap的底层实现?如何用linkedhashmap实现LRU算法?

hashtable与hashmap的对比?hashset是怎么实现的?

2,线程类问题

创建线程的方式?线程与进程的区别?进程间的通信方式,线程间的通信方式?

多线程并发时造成不安全的原因?解决方式有几种?

什么是线程池?创建线程池的方式?你常用的是哪种?参数的意思?

synchronized与lock的区别与实现原理?

threadlocal的用法以及原理?

sleep()与wait()的区别?

悲观锁与乐观锁的区别?

手写死锁,生产者与消费者问题?

3,IO流问题/NIO问题

你所接触的流有几种类型?

字符流与字节流的区别?以及流之间的关系?用到了哪种设计模式?

如何删除一个文件夹下面的所有文件?如何完成一个文件的复制?

什么是序列化?如何实现序列化?

如何理解NIO?NIO的核心部分有哪些?你项目中是怎么使用NIO的?

4,基础知识类问题

java语言的特点?你对面向对象的理解?

java为什么是单继承的,多继承有什么坏处?何时用类,何时使用接口?

接口和抽象类的区别?接口的修饰符有哪些?java8中只有一个方法的接口叫什么?

Integer i = 100;与Integer i1 = new Integer(100);的区别? i==i1??

重写与重载的区别?重写时的注意事项?

内部类和静态内部类的区别?

string和stringbuffer的区别?

重写equals()与hashcode()的重要性?

常见的类加载器有几种?什么是双亲委派机制?toncat的类加载机制?自定义类加载器的注意事项?

5,jvm和gc相关问题

jvm的结构?gc的结构?你所了解的gc算法?

gc的s0到s1是怎么进升的?

jvm中主要参数的含义?调整后会有什么影响?

说一说你所遇到过的jvm和gc相关的异常与你的解决方式(至少两个)?

6,spring/springMVC相关问题

spring IOC和DI的区别?AOP的实现原理?以及在你项目中是怎么用的?

spring bean的生命周期?bean的作用域?

springMVC的原理?

servlet的生命周期?servlet与jsp的区别?

spring中运用到的设计模式?spring中怎么进行广播通知?spring对事物的处理?

7,mysql相关问题

事物怎么理解?事物的特性有哪些?

你项目中用到的索引是哪种?原理是什么?以及索引的分类?

哪些操作会导致索引失效?以及解释最左前缀?

如何查看sql语句中有无用到索引?

bean中的属性名与数据库中的字段不一致时怎么解决?

主键与外键是什么?分别怎么使用?

mysql的事物隔离级别?你项目中使用的是哪种?如何查看?

关于sql语句的优化方案?以及mysql的冷热数据处理?

什么是存储过程?什么是执行计划?什么是触发器?

mysql相关的分库分表?读写分离?主从复制?以及结构相关的优化?

8,中间件相关问题(redis,rocketMQ,kafak)

redis与memcached的区别?以及使用的场景?

redis为什么是单线程的?redis怎么处理并发操作?

mq与kafka有什么区别?各适用场景为?

未完待续...








posted @   初见洞洞拐  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示