大厂 Java 面试 100 问,被问麻了!

大家好,我是R哥。

不要再找乱七八糟的面试题了,浪费时间不说,还会被误导。

我这几年一直坚持在运营这个小程序:Java面试库,题库中的内容都是我工作这么多年,以及写博客、写公众号、写书这么多年积累的精华,已经不仅仅是面试题了。

小程序刷题首年 199 元,续期 99 元/年,我敢说实际价值远超门票价格 100 倍+,也已经帮助了许多小伙伴进入大厂。

即使如此,但还是有部分小伙伴有顾虑的,没关系,我做了一个 Java 面试小册,内容选自小程序:Java面试库,相当于一个部分精选吧,有兴趣的先订阅学习下。

10 元买断永久学习,限前 500 人:

f5676a489d575e6c413247bf98174ecd.png

作者R哥为 10 年+ 程序员、系统架构师、面试官,10 年+写作经验,全网粉丝 50w+,「Spring Boot 核心技术与最佳实践」书籍作者。

本专栏主要分享一线大厂 Java 面试题,主要包括 Java 基础、集合、IO、JVM、多线程等 Java 核心技术面试题,共 100 道。

下面是专栏完整目录:

Java 基础

  • JDK 与 JRE 的区别是什么?

  • Java 有哪几种基本数据类型?包装类型呢?

  • == 和 equals 比较有什么区别?

  • 字符串比较是用 equals 还是 == ?为什么?

  • public,private,protected,默认的区别?

  • i++ 和 ++i 的区别?

  • & 和 && 的区别?

  • 你怎么理解值传递和引用传递?Java 到底是值传递还是引用传递?

  • static 关键字有什么用?static 变量和普通变量的区别?

  • final 关键字有哪些用法?

  • final、finally、finalize 有什么区别?

  • Java 支持多继承吗?为什么?

  • 重载和重写有什么区别?构造器可以被重写和重载吗?

  • Java 异常有哪些分类?Error 和 Exception 有什么区别?

  • throw 和 throws 的区别?

  • int 和 Integer 有什么区别?

  • StringBuffer 和 StringBuilder 的区别?

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

  • 0.1 + 0.2 == 0.3 正确么?为什么?

  • 2 * 8 最有效率的计算方法是什么?

  • String 是可变的吗?能不能被继承?为什么?

  • String 的底层实现是怎样的?

  • Java 9 之后,String 底层为什么使用 b...

  • try 里面 return,finally还会执行吗...

  • Java 类初始化顺序是怎样的?

  • Java 反射机制有什么用?

  • String str = "R"; 创建了几个对象?new String("R") 呢?

  • Java 有哪几种级别的引用?

  • 可以自定义一个 java.lang.String 吗?

  • 什么是对象克隆?浅拷贝和深拷贝的区别?

  • equals 和 hashCode 的区别和联系?为什么重写 equals 就要重写 hashCode?

Java 集合

  • 说说常见的集合有哪些?常见的并发集合有哪些?

  • Comparable 和 Comparator 接口的区别?

  • HashMap 与 Hashtable 的区别?

  • HashMap 的数据结构是什么?

  • HashMap 在 JDK 8 中有哪些改变?

  • JDK 8 HashMap 为啥要引入红黑树?什么情况会用红黑树?

  • HashMap 的 put 方法逻辑?

  • HashMap 的 get 方法逻辑?

  • HashMap 是线程安全的吗?

  • HashMap 是怎么解决 hash 冲突的?

  • ConcurrentHashMap 的数据结构?

  • ArrayList 是线程安全的么?为什么?

  • ArrayList 和 LinkedList 的区别?

  • ArrayList 和 LinkedList 哪个更占空间?

  • 什么是 CopyOnWriteArrayList?

  • CopyOnWrite* 并发集合有哪些优缺点?应用...

  • fail-fast 与 fail-safe 有什么区别?

Java IO(流)

  • Java 有哪几种类型的流?

  • 你怎么理解 IO、BIO、NIO、AIO?

  • IO 流中的 flush 是指什么?什么时候需要 flush 操作?

  • IO 流中的 close 和 flush 的区别?

  • 为什么需要 NIO?用 IO 和线程池不行吗?

  • NIO 有哪三大件组成?它们之间的关系是怎样的?

  • NIO 是如何实现多路复用的?

  • 怎么反复读取输入流中的内容?

  • Java 如何高效率读写大文件?

  • Java 序列化是什么?有哪两种序列化方式?

Java 虚拟机(JVM)

  • Java 为什么能一次编写,处处运行?

  • JVM 是什么?常用的 JVM 参数有哪些?

  • Java 内存模型和 JVM 内存模型的区别?

  • Java 8 中的内存结构有什么变化?

  • JVM 哪块内存区域不会发生内存溢出?

  • JVM 从 GC 角度看,堆的分区情况?

  • 什么情况下会发生栈内存溢出?

  • 什么是类加载器?

  • 什么是双亲委派模型?

  • Java 内存模型定义了哪几种原子操作?

  • 什么是指令重排序?怎么避免指令重排序?

  • GC 是什么?为什么需要 GC?

  • JVM 如何判断一个对象可被回收?

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

  • 常用的垃圾回收算法有哪些?

  • 什么是内存泄漏?如何防止内存泄漏?

  • 一个线程 OOM 后,其他线程还能运行吗?

  • 常用的 JVM 调优命令有哪些?

  • JVM 对频繁调用的方法做了哪些优化?

Java 多线程

  • 进程和线程的区别?

  • 为什么要使用多线程?

  • 创建线程有哪几种方式?

  • 什么是守护线程?

  • 线程的状态有哪几种?怎么流转的?

  • join 方法有什么用?什么原理?

  • start 和 run 方法有什么区别?

  • sleep 和 wait 方法有什么区别?

  • 你怎么理解 wait、notify、notifyAll?有什么要注意的吗?

  • 什么是死锁?怎么避免死锁?

  • SimpleDateFormat 是线程安全的吗?为什么?以及怎么解决?

  • 什么是 CAS?

  • Java 中原子操作的类有哪些?

  • 什么是重入锁?你怎么理解重入?

  • 什么是锁升级?锁升级的过程是怎样的?

  • 什么是线程池?有哪些核心参数?

  • 线程池的工作流程是怎样的?

  • Java 里面有哪些内置的线程池?

  • ThreadLocal 有什么用?底层实现是?

  • volatile 关键字有什么用?有哪些应用场景?

  • CountDownLatch 与 CyclicBarrier 的区别?

  • 什么是 Happens-Before 原则?有哪些原则?

  • 为什么不推荐使用 stop 停止线程?如何优雅地终止一个线程?

这些题目你会几道?

虽然都是我写的,但过久也也都会忘,所以大家有必要买一个备用还是有必要的。

目前内测特惠价 10 元,永久买断,永久学习,学会任何一点都能值回票价,满 500 人订阅价格会调整至 19.9 元。

58dc29ca9870e1cdc2072f8e901bc7be.png

有面试需要的建议人手一份,10 块钱买不了吃亏上当。

订阅后,加我微信并备注:100并发送订阅截图,可免费领取 10 套程序员精美简历模板。

763c9c025b7a35e1d816709dafb9a5e3.jpeg

fa4f2bb8e00ef5a89d122e6d7905e5df.png点击阅读原文链接快速订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值