Java高频面试栏
文章平均质量分 75
JAVA领域优质创作者
互粉互粉,有关注比回
展开
-
Java高频面试之基础篇
使用new关键字使用反射clone方法反序列化序列化:(方便在磁盘上存储或者在网络上传输)把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。利用ObjectOutputStream和ObjectInputStream序列化和反序列化时一定要实现Serializable接口,否则会报异常利用fastjson序列化字符串时不实现Serializable不会报异常@Dataperson.setName("张三三");原创 2024-03-07 08:13:03 · 1844 阅读 · 0 评论 -
Java高频面试之总纲篇
Java高频面试题总纲,包括Java高频面试之基础篇,Java高频面试之集合篇,Java高频面试之异常篇,Java高频面试之并发篇,Java高频面试之Mysql篇,Java高频面试之Redis篇,Java高频面试之消息队列与分布式篇,50道SQL面试题,奇奇怪怪的面试题,五花八门的内存溢出原创 2024-03-07 08:36:54 · 1905 阅读 · 0 评论 -
50道SQL面试题
13、查询没学过"数学老师-杰斯"老师讲授的任一门课程的学生姓名(有意思 逆向思维更简单,先查出学过的,包括学了部分的和全部的,在用not in)40、查询选修“数学老师-杰斯”老师所授课程的学生中成绩最高的学生姓名及其成绩(数学老师可能教了多门课,某一门课的最高成绩可能并列多人)9、查询所有课程成绩都小于60分的学生的学号、姓名(有意思,如果不用max可能难度不小)1、查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号。10、查询没有学全所有课的学生的学号、姓名(和6差不多)原创 2024-03-07 08:16:49 · 2148 阅读 · 0 评论 -
奇奇怪怪的面试题
两个线程并发执行下列代码,其中直接使用线程安全类ConcurrentHashMap的put方法时不需要考虑多线程间互相覆盖的问题。关于 hashCode 和 equals 的处理,下列哪些说法是正确的?Set中存的对象为自定义对象时重写hashCode 和 equals这两种方法。如果自定义对象作为Map的键,那么最好覆写hashCode和equals。下面选项中,请找出BigDecimal创建方法存在精度风险的选项?输出false false T。输出false 和 true。输出 false 0 T。原创 2024-03-07 08:15:31 · 1447 阅读 · 0 评论 -
五花八门的内存溢出
运行时数据区域除了程序计数器外都有可能溢出。原创 2024-03-07 08:14:36 · 1383 阅读 · 0 评论 -
Java高频面试之异常篇
try-catch-finally 中那个部分可以省略?Error 和 Exception 的区别?finally 块中的代码什么时候被执行?throw 和 throws 的区别?主线程可以捕获到子线程的异常吗?运行时异常与受检异常有何异同?常见的异常类有哪些?原创 2024-03-07 08:13:54 · 1438 阅读 · 0 评论 -
Java高频面试之消息队列与分布式篇
消息队列的基本作用是提供可靠、高效、异步的消息通信机制,实现系统之间的解耦、异步处理、削峰填谷、数据分发和错误处理等功能。它在分布式系统、微服务架构和大规模应用中发挥着重要的作用。原创 2024-03-07 08:13:28 · 2154 阅读 · 0 评论 -
Java高频面试之并发篇
锁升级锁升级是指在多线程并发访问中,锁的状态从低级别的锁形式逐渐升级到高级别的锁形式,以提高并发性能和减少开销。无锁状态(01):初始状态下,对象没有被线程持有锁,任何线程都可以访问。偏向锁(101):当一个线程获得锁时,JVM会将锁标记置为偏向锁,并将线程ID记录在锁对象的对象头中。此时,其他线程可以继续访问该对象,无需进行同步操作(修改锁对象对象头中的线程id)。只有当线程竞争锁时(一个线程在同步代码外要进去,一个线程在同步代码里面),偏向锁会被撤销,锁状态升级为轻量级锁。原创 2024-03-07 08:12:29 · 1895 阅读 · 0 评论 -
Java高频面试之SSM篇
OOP将业务封装为对象(对象的属性与行为/方法),横切关注点跨越了对象的边界(多个对象之间有共同的行为)横切关注点:多个模块或组件共享的功能(方法),例如日志记录,事务管理,安全等。原创 2024-03-07 08:12:04 · 2136 阅读 · 0 评论 -
Java高频面试之Redis篇
按照这个核心思想,Redis 中的 LRU 策略,会在每个数据对应的 RedisObject 结构体中设置一个 lru 字段,用来记录数据的访问时间戳。缓存击穿是指在使用缓存系统时,某个热门数据过期或被删除后,恰好有大量的并发请求同时访问该数据,导致这些请求都无法命中缓存,直接访问后端存储系统,对后端系统造成巨大压力,可能引发系统崩溃或性能下降的问题。缓存雪崩是指在使用缓存系统时,缓存中大量的数据同时过期或失效,导致大量的请求直接访问后端存储系统,使得后端系统承受巨大的压力,甚至引发系统崩溃的现象。原创 2024-03-07 08:11:26 · 1849 阅读 · 0 评论 -
Java高频面试之Mysql篇
mysql是一个c/s架构的数据库管理系统,客户端可以是图形化界面,也可以是命令行或者java等程序服务端由一下组成部分可插拔的存储引擎文件系统与日志。原创 2024-03-07 08:10:51 · 2049 阅读 · 0 评论 -
Java高频面试之集合篇
如果不是队尾, 寻找元素 Node node(int index) 如果index < (size >> 1) 从头开始找,否则从末尾往前找(size >> 1 size的一半向下取整)table 的初始化时机是什么时候,初始化的 table.length 是多少、阀值(threshold)是多少,实际能容下多少元素。ArrayList 是基于Array实现的可以动态扩容的集合类,提供了更丰富的方法.ArrayList 不能存储基本类型(包装类)Iterator 和 Enumeration 接口的区别?原创 2024-03-06 10:57:34 · 2179 阅读 · 0 评论