💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
1、重载重写的区别? 2、转发和重定向的区别? 3、画下 HashMap 的结构图?HashMap 、 HashTable 和 ConcurrentHashMap 的区别? 4、statement 和 preparedstatement 区别? 5、JSP 中一个中取值与直接取值的区别?会有什么安全问题? 6、实现一个线程安全的单例模式 8、自己实现一个 List,(主要实现 add等常用方法) 9、Spring 中 IOC 和 AOP 的理解? 10、两个对象的 hashcode 相同,是否对象相同?equal() 相同呢? 11、@RequestBody 和 @ResponseBody 区别? 12、JVM 一个错误,什么情况下会发生? 3、讲下这个 XSS 攻击 4、HashMap 的结构?HashMap 、 HashTable 和 ConcurrentHashMap 的区别? 5、HashMap 中怎么解决冲突的?(要我详细讲下) 6、ConcurrentHashMap 和 HashTable 中线程安全的区别?为啥建议用 ConcurrentHashMap ?能把 ConcurrentHashMap 里面的实现详细的讲下吗? 7、Session 和 Cookie 的区别? 8、你项目中登录是怎样做的,用的 Cookie 和 Session? 9、讲讲你对 Spring 中的 IOC 和 AOP 的理解? 10、问了好几个注解的作用? 11、statement 和 preparedstatement 区别? 12、$ 和 # 的区别?以及这两个在哪些地方用? 14、讲讲 Python 中的多线程和 Java 中的多线程区别? 15、自己刚好前几天在看线程池,立马就把面试官带到我熟悉的线程池,和面试官讲了下 JDK 自带的四种线程池、ThreadPoolExecutor 类中的最重要的构造器里面的七个参数,然后再讲了下线程任务进入线程池和核心线程数、缓冲队列、最大线程数量比较。 16、线程同步,你了解哪几种方式? 17、讲下 Synchronized? 18、讲下 RecentLock 可重入锁? 什么是可重入锁?为什么要设计可重入锁? 19、讲下 Volatile 吧?他是怎样做到同步的? 20、Volatile 为什么不支持原子性?举个例子 21、Atomic 怎么设计的?(没看过源码,当时回答错了,后来才发现里面全部用 final 修饰的属性和方法) 25、JVM 里的几个问题? 26、事务的特性? 27、隔离级别? 28、网络状态码?以 2、3、4、5 开头的代表什么意思。 29、并发和并行的区别? 3、说一说数据库建表吧(从范式讲) 4、讲讲多态? 5、将两个数转换(不借助第三个参数) 6、手写个插入排序吧(写完了和面试官讲了下执行流程) 7、讲讲你对 Spring 中的 IOC 和 AOP 的理解? 2、什么是多态?哪里体现了多态的概念? 3、HashMap 源码分析,把里面的东西问了个遍?最后问是不是线程安全?引出 ConcurrentHashMap 4、ConcurrentHashMap 源码分析 5、类加载,双亲委托机制 6、Java内存模型(一开始说的不是他想要的,主要想问我堆和栈的细节) 7、垃圾回收算法 8、线程池,自己之前看过,所以说的比较多,最后面试官说了句:看你对线程池了解还是很深了 9、事务的四种特性 10、什么是死锁? 11、乐观锁和悲观锁的策略 12、高可用网站的设计(有什么技术实现) 13、低耦合高内聚 14、设计模式了解不?你用过哪几种,为什么用,单例模式帮我们做什么东西?有什么好处? 15、你参与什么项目中成长比较快?学到了什么东西,以前是没有学过的? 16、项目中遇到的最大困难是怎样的?是怎么解决的? 17、智力题(两根不均匀的香,点一头烧完要一个小时,怎么确定15分钟) 3、线程同步的方法?Synchronized、Volatile、(面试官好像觉得 Volatile 不可以做到同步,我和他说了半天的 Volatile 原理 ,他竟然不认同,我开始怀疑他的实力了)、ThreadLocal、Atomic。 说到这些了,我当时竟然没把他带进我我给他挖的坑里去(线程池,之前好好研究过呢,可惜了) 4、Spring IOC 和 AOP 的理解?叫我写 AOP 的代码,我没写 5、JDK 动态代理和 Cglib 代理区别? 5、你觉得项目里面你觉得哪些技术比较好?我指了两个,然后他也没有问下去。 6、解释下 XSS 攻击 7、Spring 和 SpringBoot 的区别? 8、JVM 垃圾回收算法?分代中为什么要分三层? 9、OOM 是什么?什么情况会发生? 堆内存设置的参数是什么? 如何⾃定义⼀个类加载器?你使⽤过哪些或者你在什么场景下需要⼀个⾃ 定义的类加载器吗? 一个hashmap,1000的线程并发读,200个并发写,你这么设计保证线程安全 volatile你准备怎么实现 简单介绍一下HashMap (其中包括底层数据结构、为什么默认长度的为16、线程安全问题等) 介绍一下红黑树 (因为HashMap在JDK1.8中数据结构加入了红黑树) 简单说一下ConcurrentHashMap (主要是与HashMap的区别、怎么实现线程安全的) 说一下数据库的事务以及数据库的隔离级别 是否了解数据库索引 (这里主要问的是BTree以及B+Tree的区别、B+Tree的特性) 介绍一下悲观锁、乐观锁 (区别、什么时候用等) 如果现在只有一张火车票,怎么让所有人都看见但是只有一个人能购买成功 (这里就是悲观锁乐观锁的应用处理并发问题) 简单介绍一下AOP、实现动态代理的方式 写一下快速排序/堆排序/归并排序的伪代码并说明时间复杂度 (伪代码也可以不用写,但是一定要说明白流程;时间复杂度也要会) 说明一下哪种排序是稳定的 简单说一下垃圾回收机制 说一下Dom4J以及SAX的区别,什么时候用,怎么用 说一下Maven,为什么要用Maven 说一下线程池的源码,里面的变量都是什么意思 介绍JVM内存分区,以及各个区中的垃圾回收机制 是否了解双亲委派机制模型(问的就是类加载器) 介绍一下NIO,怎么使用NIO 一系列的并发问题 你有两台服务器是相互协作工作的(一台维护,另一台运行),你怎么处理请求以及静态数据问题? 两台服务器同时购买同一件东西,不在数据库端、服务器端加锁,怎么处理并发 如果让你设计一块缓存,你会怎么设计?(这个问题我感觉很难,他会问你数据结构以及时间复杂度。而且缓存存入的东西不能有逻辑运算,没有逻辑运算就意味着你在调用的时候怎么对准确的调用到存入的信息。并且在内存满了的时候你会怎么设计清除掉垃圾数据。) List 和 Set 的区别 2、HashSet 是如何保证不重复的 3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4、HashMap 的扩容过程 5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的? 6、final finally finalize 7、强引用 、软引用、 弱引用、虚引用 8、Java反射 9、Arrays.sort 实现原理和 Collection 实现原理 10、LinkedHashMap的应用 11、cloneable接口实现原理 12、异常分类以及处理机制 13、wait和sleep的区别 14、数组在内存中如何分配 synchronized 的实现原理以及锁优化? 2、volatile 的实现原理? 3、Java 的信号灯? 4、synchronized 在静态方法和普通方法的区别? 5、怎么实现所有线程在等待某个事件的发生才会去执行? 6、CAS?CAS 有什么缺陷,如何解决? 7、synchronized 和 lock 有什么区别? 8、Hashtable 是怎么加锁的 ? 9、HashMap 的并发问题? 10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树? 11、AQS 12、如何检测死锁?怎么预防死锁? 13、Java 内存模型? 14、如何保证多线程下 i++ 结果正确? 15、线程池的种类,区别和使用场景? 16、分析线程池的实现原理和线程的调度过程? 17、线程池如何调优,最大数目如何确认? 18、ThreadLocal原理,用的时候需要注意什么? 19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别? 20、LockSupport工具 21、Condition接口及其实现原理 22、Fork/Join框架的理解 23、分段锁的原理,锁力度减小的思考 24、八种阻塞队列以及各个阻塞队列的特性 BeanFactory 和 FactoryBean? 2、Spring IOC 的理解,其初始化过程? 3、BeanFactory 和 ApplicationContext? 4、Spring Bean 的生命周期,如何被管理的? 5、Spring Bean 的加载过程是怎样的? 6、如果要你实现Spring AOP,请问怎么实现? 7、如果要你实现Spring IOC,你会注意哪些问题? 8、Spring 是如何管理事务的,事务管理机制? 9、Spring 的不同事务传播行为有哪些,干什么用的? 10、Spring 中用到了那些设计模式? 11、Spring MVC 的工作原理? 12、Spring 循环注入的原理? 13、Spring AOP的理解,各个术语,他们是怎么相互工作的? 14、Spring 如何保证 Controller 并发的安全? Netty 1、BIO、NIO和AIO 2、Netty 的各大组件 3、Netty的线程模型 4、TCP 粘包/拆包的原因及解决方法 5、了解哪几种序列化协议?包括使用场景和如何去选择 6、Netty的零拷贝实现 7、Netty的高性能表现在哪些方面 分布式相关 1、Dubbo的底层实现原理和机制 2、描述一个服务从发布到被消费的详细过程 3、分布式系统怎么做服务治理 4、接口的幂等性的概念 5、消息中间件如何解决消息丢失问题 6、Dubbo的服务请求失败怎么处理 7、重连机制会不会造成错误 8、对分布式事务的理解 9、如何实现负载均衡,有哪些算法可以实现? 10、Zookeeper的用途,选举的原理是什么? 11、数据的垂直拆分水平拆分。 12、zookeeper原理和适用场景 13、zookeeper watch机制 14、redis/zk节点宕机如何处理 15、分布式集群下如何做到唯一序列号 16、如何做一个分布式锁 17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗 18、MQ系统的数据如何保证不丢失 19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题 20、zookeeper的选举策略 21、全局ID 数据库 1、mysql分页有什么优化 2、悲观锁、乐观锁 3、组合索引,最左原则 4、mysql 的表锁、行锁 5、mysql 性能优化 6、mysql的索引分类:B+,hash;什么情况用什么索引 7、事务的特性和隔离级别 乐观锁重试次数等问题 缓存 1、Redis用过哪些数据数据,以及Redis底层怎么实现 2、Redis缓存穿透,缓存雪崩 3、如何使用Redis来实现分布式锁 4、Redis的并发竞争问题如何解决 5、Redis持久化的几种方式,优缺点是什么,怎么实现的 6、Redis的缓存失效策略 7、Redis集群,高可用,原理 8、Redis缓存分片 9、Redis的数据淘汰策略 JVM 1、详细jvm内存模型 2、讲讲什么情况下回出现内存溢出,内存泄漏? 3、说说Java线程栈 4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢? 5、JVM 出现 fullGC 很频繁,怎么去线上排查问题? 6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式? 7、类的实例化顺序 8、JVM垃圾回收机制,何时触发MinorGC等操作 9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的 10、各种回收器,各自优缺点,重点CMS、G1 11、各种回收算法 12、OOM错误,stackoverflow错误,permgen space错误