java面试题在哪里刷题?Java常问面试题整理

要想通过java面试,那刷java面试题是肯定要做的,因为只有通过刷题,才能知道自己的不足之处,这样就可以及时去弥补了,但是java面试题在哪里刷题?下面来我们就来给大家讲解一下。

java面试题可以去一些java网站上刷题,也可以在本网站java面试专栏进行刷题,里边有各种类型的java面试题供大家参考!

Java常问面试题:

1.单例Singleton什么意思?

singleton是一个类,它只允许自己的一个实例被创建,并提供对所创建实例的访问。它包含静态变量,这些静态变量可以容纳其自身的惟一和私有实例。当用户希望将类的实例化限制为一个对象时,可以使用它。当需要单个对象来协调跨系统的操作时,这通常是有帮助的。

2.如何保证Java程序中多线程的运行安全?

方法一:使用安全类,如Java.util.concurent下地类。

方法二:使用自动锁synchronized。

方法三:使用手动锁Lock。

3.synchronized锁在多线程中升级的原理是什么?

synchronized锁升级原理:锁定对象的对象头部有一个threadid字段,threadid在第一次访问时是空的,jvm让它持有偏向锁,并将threadid设置为线程id,再次访问时会先判断threadid是否与其线程id一致,如果一致,可以直接使用该对象,如果不一致,则升级偏向锁为轻量级锁,通过自旋循环一定次数获取锁,执行一定次数后,如果没有正常获取要使用的对象,此时将锁从轻量级升级为重量级锁,这一过程构成了synchronized锁的升级。

升级锁的目的:升级锁是为了降低锁带来的性能消耗。优化Java6后synchronized的实现方式,采用偏向锁升级为轻量级锁再升级为重量级锁的方式,从而降低锁带来的性能消耗。

4.在 hibernate 中使用 Integer 和 int 做映射有什么区别?

在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。

5.get()和 load()的区别?

load() 没有使用对象的其他属性的时候,没有SQL 延迟加载

get() 没有使用对象的其他属性的时候,也生成了SQL 立即加载

6.说一下 jvm 有哪些垃圾回收器?

Serial:最早的单线程串行垃圾回收器。

Serial Old:Serial 垃圾回收器的老年版本,同样也是单线程的,可以作为 CMS 垃圾回收器的备选预案。

ParNew:是 Serial 的多线程版本。

Parallel 和 ParNew 收集器类似是多线程的,但 Parallel 是吞吐量优先的收集器,可以牺牲等待时间换取系统的吞吐量。

Parallel Old 是 Parallel 老生代版本,Parallel 使用的是复制的内存回收算法,Parallel Old 使用的是标记-整理的内存回收算法。

CMS:一种以获得最短停顿时间为目标的收集器,非常适用 B/S 系统。

G1:一种兼顾吞吐量和停顿时间的 GC 实现,是 JDK 9 以后的默认 GC 选项。

其实在Java面试中面试官也不会出一些很难的题目,只要你掌握好知识,并且在面试的过程中多讲讲自己做项目的经历,那java面试还是很容易的!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java死锁的原因及解决方法是什么?方法介绍

hibernate是什么意思?hibernate如何进行环境搭建配置?

spring框架怎么配置?使用spring框架好吗?