往期精彩八股文面试专题
Java面试题(二)
1、Java 中能创建 volatile 数组吗?2、volatile 能使得一个非原子操作变成原子操作吗?5、10 个线程和 2 个线程的同步代码,哪个更容易写?6、你是如何调用 wait()方法的?使用 if 块还是循环?为什 8、什么是 Busy spin?我们为什么要使用它?9、Java 中怎么获取一份线程 dump 文件? 12、用 wait-notify 写一段代码来解决生产者-消费者问题?13、用 Java 写一个线程安全的单例模式(Singleton)?14、Java 中 sleep 方法和 wait 方法的区别?15、什么是不可变对象(immutable object)?Java 中怎么 17、Java 中应该使用什么数据类型来代表价格? 19、Java 中怎样将 bytes 转换为 long 类型? 20、我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象?21、存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为C 么?如 C = (C) B;22、哪个类包含 clone 方法?是 Cloneable 还是 Object? 23、不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差。24、a = a + b 与 a += b 的区别25、我能在不进行强制转换的情况下将一个 double 值赋值给long 类型的变量吗?26、3*0.1 == 0.3 将会返回什么?true 还是 false? 27、int 和 Integer 哪个会占用更多的内存?28、为什么 Java 中的 String 是不可变的(Immutable)?29、我们能在 Switch 中使用 String 吗?JVM 底层 与 GC(Garbage Collection) 的面试问题31、64 位 JVM 中,int 的长度是多数?32、Serial 与 Parallel GC 之间的不同之处?33、32 位和 64 位的 JVM,int 类型变量的长度是多数?34、Java 中 WeakReference 与 SoftReference 的区别?36、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用?37、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?38、32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数? 39、JRE、JDK、JVM 及 JIT 之间有什么不同?42、怎么获取 Java 程序使用的内存?堆使用的百分比?44、“a==b”和”a.equals(b)”有什么区别?45、a.hashCode() 有什么用?与 a.equals(b) 有什么关系?46、final、finalize 和 finally 的不同之处? 47、Java 中的编译期常量是什么?使用它又什么风险?48、List、Set、Map 和 Queue 之间的区别(答案) 49、poll() 方法和 remove() 方法的区别?50、Java 中 LinkedHashMap 和 PriorityQueue 的区别是什么?51、ArrayList 与 LinkedList 的不区别?54、Java 中的 LinkedList 是单向链表还是双向链表?55、Java 中的 TreeMap 是采用什么树实现的?(答案)56、Hashtable 与 HashMap 有什么不同之处?57、Java 中的 HashSet,内部是如何工作的? 58、写一段代码在遍历 ArrayList 时移除一个元素?59、我们能自己写一个容器类,然后使用 for-each 循环码?60、ArrayList 和 HashMap 的默认大小是多数?61、有没有可能两个不相等的对象有有相同的 hashcode?62、两个相同的对象会有不同的的 hash code 吗?63、我们可以在 hashcode() 中使用随机数字吗?64、Java 中,Comparator 与 Comparable 有什么不同?66、在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?67、Java 中怎么创建 ByteBuffer?68、Java 中,怎么读写 ByteBuffer ?71、Java 中,直接缓冲区与非直接缓冲器有什么区别? 73、socket 选项 TCP NO DELAY 是指什么? 75、Java 中,ByteBuffer 与 StringBuffer 有什么区别?76、Java 中,编写多线程程序的时候你会遵循哪些最佳实践? 77、说出几点 Java 中使用 Collections 的最佳实践78、说出至少 5 点在 Java 中使用线程的最佳实践。81、说出几条 Java 中方法重载的最佳实践?Date、Time 及 Calendar 的面试题82、在多线程环境下,SimpleDateFormat 是线程安全的吗?83、Java 中如何格式化一个日期?如格式化为 ddMMyyyy的形式?84、Java 中,怎么在格式化的日期中显示时区? 85、Java 中 java.util.Date 与 java.sql.Date 有什么区别?87、Java 中,如何将字符串 YYYYMMDD 转换为日期?90、怎么利用 JUnit 来测试一个方法的异常? 91、你使用过哪个单元测试库来测试你的 Java 程序?92、@Before 和 @BeforeClass 有什么区别? 94、Java 中如何利用泛型写一个 LRU 缓存?95、写一段 Java 程序将 byte 转换为 long?95、在不使用 StringBuffer 的前提下,怎么反转一个字符串?97、Java 中,怎么获取一个文件中单词出现的最高频率?99、Java 中,怎么打印出一个字符串的所有排列?100、Java 中,怎样才能打印出数组中的重复元素?102、在没有使用临时变量的情况如何交换两个整数变量的值?103、接口是什么?为什么要使用接口而不是直接使用具体类?104、Java 中,抽象类与接口之间有什么不同?105、除了单例模式,你在生产环境中还用过什么设计模式?107、什么情况下会违反迪米特法则?为什么会有这个问题?109、什么是“依赖注入”和“控制反转”?为什么有人使用?110、抽象类是什么?它与接口有什么区别?你为什么要使用过抽象类?111、构造器注入和 setter 依赖注入,那种方式更好?120、Java 中,嵌套公共静态类与顶级类有什么不同?121、 OOP 中的 组合、聚合和关联有什么区别?126、你能写出一个正则表达式来判断一个字符串是否是一个数字吗?127、Java 中,受检查异常 和 不受检查异常的区别? 128、Java 中,throw 和 throws 有什么区别?129、Java 中,Serializable 与 Externalizable 的区别?130、Java 中,DOM 和 SAX 解析器有什么不同?132、说出 5 个 JDK 1.8 引入的新特性?133、Java 中,Maven 和 ANT 有什么区别?
以上便是八股文面试常问的Java面试题,希望能够给大家带来帮助,后面还会分享其他厂子常问的一些面试问题,大家记得随时关注哟~~~~
以上面试题的答案由于过长,我就不一一罗列出来了,我已在后台打包好完整的八股文面试题资料。如果有需要的小伙伴,记得关注公众号后回复【666】即可领取。
想进大厂的小伙伴请注意,
大厂面试的套路很神奇,
早做准备对大家更有好处,
埋头刷题效率低,
看面经会更有效率!
小编准备了一份大厂常问面经汇总集
剩下的就不会给大家一展出来了,以上资料按照一下操作即可获得
——将文章进行转发和评论,关注公众号【Java烤猪皮】,关注后继续后台回复领取口令“ 666 ”即可免费领文章取中所提供的资料。
关注作者微信公众号 — 《JAVA烤猪皮》
了解了更多java后端架构知识以及最新面试宝典
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者来源不断出文的动力~