java中级开发面试题有哪些?java中级开发常见面试题

java中级面试不同于初级面试,因为等级越高,需要掌握的技能以及经验就越高,所以面试java中级的朋友需要努力一些了!那java中级开发面试题有哪些?下面来我们就来给大家讲解一下java中级开发常见面试题。

java中级开发面试题.jpg

1.如何确保N个线程可以访问N个资源同时又不导致死锁?

使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

2.如何权衡是使用无序的数组还是有序的数组?

有序数组最大的好处在于查找的时间复杂度是O(log n),而无序数组是O(n)。有序数组的缺点是插入操作的时间复杂度是O(n),因为值大的元素需要往后移动来给新元素腾位置。相反,无序数组的插入时间复杂度是常量O(1)。

3.doGet()方法和doPost()方法有什么区别?

doGet:GET方法会把名值对追加在请求的URL后面。因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目。并且请求中的参数值是可见的,因此,敏感信息不能用这种方式传递。

doPOST:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数的数目是没有限制的。最后,通过POST请求传递的敏感信息对外部客户端是不可见的。

4.说一下分布式管理事务?

简单的来说呢,分布式事务其实就是一次大的操作分成了好的小的操作,这些小的操作分别部署在不同的服务器上,而且属于不同的应用,分布式的事务其实就是保证这些小的事务要么都成功,要么都失败。

分布式事务出现的场景比如在支付和在线下单都会出现,我了解的分布式事务管理解决方法就是二次提交,基于MQ的特性,MQ作为二次提交的中间节点,负责储存请求数据的,在失败的情况下可以进行多次尝试,还有可以基于MQ中的事务回滚操作,可以保证性能,又能保证业务一致性的方案。

5.为什么eureka可以实现高可用?

在微服务的项目中,我们要考虑到发生故障的情况,所以也要对服务的注册中心也要进行高可用的部署,那么eureka就是通过多个实例进行互相注册,然后修改每个serviceUrl就可以,eurekaServer的高可用其实就是将自己作为服务去其他的注册中心注册自己,这样就可以形成一组互相注册的注册中心,就可以实现服务清单的互相同步,这样就达到了高可用的情况。

Java中级的面试题肯定是有些难度的,不过只要我们将基础掌握好,并且多实践提高自己的技能,也还是能够顺利通过面试的!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java线程池工厂方法是什么?线程池工作是怎样的?

JAVA网课哪个好?JAVA网课怎么学?

struts怎么获取jsp页面添加的数据?struts有哪些优缺点?