网站首页 > java教程 正文
国外同行总结的最近经常遇到的10个java面试题,看看和我们这边有什么不一样的
1,如果总分10分,你给自己在java领域的能力打几分?
这是一个比较棘手的问题,尤其是你对自己的技能没有足够的自信。切忌盲目打高分,因为接下来必然要面对匹配相应难度的问题。
2,聊一下java7和8的区别
实际上有很多区别,这里只需要阐述一下最典型的几个即可。例如
lambda表达式,接口的默认方法和静态方法, 方法引用,重复注解等
每一项可以多聊几句
3,你了解的集合类型?
这真是个老生常谈的问题,
ArrayList
LinkedList
HashMap
HashSet
你可能会面对这些类型的数据结构,使用场景,如何存储的等各种问题。
4,Object类都有哪些方法
这是考察你的基本功。Object类,在java.lang包里,处于java继承数的顶端。
Object类没有属性,只有一些重要的方法。必须知道的有:
clone()方法,看到clone又想到了深克隆和浅克隆,以后再讲。
equals()方法,finalize方法,getClass,hashcode,toString这几个非常熟悉的方法。
还有notify, notifyAll, and wait等几个用来处理线程并发的方法。
5,为什么java的string是不可变类型
java的string是放在string pool中,各个string变量可以指向同一个string,这为jvm节省了大量的内存。如果string是可变的,那么一个变量的改变,会导致其他指向该string的变量受影响。
因为string是不可变的,所以没有线程安全问题,可以在多个线程间共享。
String也用在java 类加载过程中。string的不可变性,保证了类加载的安全。
因为String是不可变的,所以他的hashcode在创建时就是确定的,没有了再次计算hashcode的操作。这样对于map结构来说,尤其方便。所以string是map里最常用的key类型。
6,Final, Finally, and Finalize的区别
final 是关键字。修饰类表示该类不能再被继承。修饰方法和变量表示其不能再被修改。
finally 是try-catch块的一部分,无论如何都会执行的那部分。
finalize是一个方法,Object类的方法。java的垃圾回收在回收一个对象之前,会执行该对象的finalize方法。
7,什么是钻石问题?
这其实说的是java的单继承问题。为什么java不允许多继承?如图所示。如果ClassA和ClassB都是想了父类SuperClass的MethodS
那么ClassC如果继承了ClassA和ClassB,他在调用MethodS的时候,java会无法确认是要调用哪一个方法。这就是java的钻石问题。
8,如何让一个类不能被修改?
这个问题还是能考察到很多点的。
1,需要将类申明为final的。
2,将类的属性字段全部设为private的
3,不提供操作属性字段的setter方法。
4,将可变字段声明为final,这样只能被赋值一次
5,在构造器中初始化所有字段,如果是对象字段,要进行深克隆。
6,在getter方法中返回对象的copy,而不是直接返回对象的引用。
9,解释一下单例模式
前面的文章有详细说明
10,说一下依赖注入DI
这是要考察spring相关的点
猜你喜欢
- 2024-10-26 一次说清,Java 中的各种锁和 经典面试题
- 2024-10-26 这33道Java集合面试题,你会了吗?
- 2024-10-26 硬核!Java 基础知识常见面试题总结!(100题附答案)
- 2024-10-26 阿里面试官亲述:208道Java常见面试题祝你轻松拿Offer
- 2024-10-26 测试开发java常见面试题_Java常见面试题
- 2024-10-26 面试必备之Java 最常见 200+ 面试题全解析
- 2024-10-26 面试珍藏:最常见的20道Java面试题(2019年最新版)
- 2024-10-26 Java 最常见的 200+ 面试题汇总(java面试题及答案整理)
- 2024-10-26 Java 最常见的 200+ 面试题:面试必备
- 2024-10-26 Java 最常见的 208 道面试题(java面试题及答案整理最新)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)