最新记一次阿里Java电话面试的题目,java面试简历范文

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

lz:因为使用了分段锁segment。

面试官:为什么分段锁比同步锁效率高?

lz:分段锁就是把Map分成了多个segment去处理,进行put操作时,根据hashcode找到相应的锁,彼此之间不受影响,所以效率高。而同步锁–锁住的是整个HashTable,因此效率会低。

面试官:知道HashMap的实现原理吗?了解hash碰撞吗?

lz:HashMap是一个数组+链表的数据结构。采用hashing原理,在进行put 操作时根据Key计算出它的hashcode,根据hashcode找到相应的桶的位置。在进行get 时也是根据hashcode 找到相应位置的数据的。当发生hash碰撞时,即hashcode相同。那么会在相应的桶中形成一个链表结构进行存储。

4.如何保证订单重复提交的问题(当发生网络延迟等情况)


lz:楼主只回答了前端校验和后端校验具体其他操作不是很清楚,下面答案引用自百度百科只列举几个经典的(力争为园友提交较可信的答案)

更详细的答案可以参考:http://www.bkjia.com/jingyan/471187.html

1:在前端进行校验,当表单提交后,把提交按钮置灰

2:表单提交后进行页面重定向,转到处理结果页面。

3:在session中存放一个标识符(当表单数据被请求时,在session中生成一个标识符放在表单隐藏域中,当后端处理表单数据时,检查标识符是否存在,如果存在则表明第一次提交并从session中清除标识,如果不存在则表明重复提交)

4:在数据中添加约束

5.防止订单重复支付问题


lz:我们公司的支付都是跳到微信或支付宝的(–把此问题抛给了腾讯和阿里);但是我们自己应该也能想到一种解决方法:就是同一笔订单我们可以设置它的支付状态。

更详细的答案可参考:https://www.jianshu.com/p/530228b71888

6.Spring原理(Ioc、Aop、动态代理)


lz:Ioc呢就是不需要我们手动创建new对象,把这个动作交给了Spring容器去管理,大大降低了程序的耦合度。

Aop采用的就是动态代理的技术来实现切面编程的。

面试官:djk动态代理和cglib动态代理有什么不同?

lz:JDK只能代理实现了接口的类,cglib采用继承的方式 两种类都可以代理。(注意final类和静态方法是不能被代理的,因此aop也不能织入静态方法)

7.对事物了解多少(主要是特性、传播机制、隔离级别)


lz:事物主要的特性就是:原子性、一致性、隔离性、永久性

隔离级别:default数据库默认的隔离级别、未提交读、已提交读、重复读、串行化。

传播特性:PROPAGATION_REQUIRED 、PROPAGATION_SUPPORTS 、PROPAGATION_MANDATORY、PROPAGATION_REQUIRES_NEW、PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER、PROPAGATION_NESTED;

具体请参考:https://blog.csdn.net/weixin_38070406/article/details/78157603

lz抛个问题:假如一个没有事务的方法调用了有事务的方法然后有事务的方法又调用了其他无事务的方法。那么请问事务还生效吗?(欢迎留言评论)

8.MySQL索引


lz:主键索引、唯一索引、普通索引、组合索引

具体请参考:https://blog.csdn.net/goodsave/article/details/78018174

再抛个问题:假如表中建立了一个组合索引(name、city、age)当查询时采用city、age时索引生不生效?

9.数据库执行计划


lz:具体一些细节就是怎么优化sql、还有查看sql语句性能,当然就是采用执行计划(explain)的方式了。

具体可参考:https://blog.csdn.net/wangpeng047/article/details/12849331

10.线程池


最后

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

再分享一波我的Java面试真题+视频学习详解+技能进阶书籍

美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里巴巴是中国最大的电子商务公司之一,拥有众多的技术岗位,其中包括Java开发工程师。作为P7级别的Java面试,通常会涉及以下几个方面的内容: 1. Java基础知识:包括Java语言的特性、面向对象编程、集合框架、多线程、IO操作等。面试官可能会深入询问Java的内存模型、垃圾回收机制等底层知识。 2. 数据结构与算法:面试官可能会考察你对常用数据结构(如数组、链表、栈、队列、树等)的理解和应用,以及常见算法(如排序、查找、动态规划等)的实现和优化。 3. 分布式系统与微服务架构:阿里巴巴是一个大规模分布式系统的典型代表,面试中可能会涉及分布式系统的设计原则、CAP理论、一致性算法等。此外,对于微服务架构的理解和实践经验也是重要的考察点。 4. 高可用与性能优化:面试官可能会关注你在高可用性和性能优化方面的经验,包括负载均衡、容灾备份、故障恢复、性能监控与调优等。 5. 设计模式与架构思维:面试官可能会要求你解释常见的设计模式,并能够在实际场景中应用。此外,对于系统架构的理解和设计能力也是重要的考察点。 6. 开源技术与工程实践:阿里巴巴非常注重开源技术的应用和贡献,面试中可能会涉及你对一些开源框架和工具的了解和使用经验,以及你在团队协作、代码质量管理等方面的实践经验。 以上是一些可能涉及到的面试内容,具体面试题目和难度会根据职位要求和面试官的个人喜好而有所不同。在准备面试时,建议你系统地复习Java基础知识、数据结构与算法,并结合自己的项目经验进行思考和总结。另外,多参加一些模拟面试和刷题训练也是提高面试技巧和应对能力的有效方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值