阿里乌鸫科技 java交付 一面

1. 面试官先发了笔试链接,有30个选择,1个算法,做的过程中不小心切换了几次页面,然后叫面试官重新开启了下。
2. 算法 88. 合并两个有序数组 
【三指针,从后往前比较】
3. 问了排序算法有哪些,快排为什么快,堆排序相比其他排序有什么区别,归并排序时间复杂度,堆排序建立堆和维护堆的时间复杂度分别是多少,稳定(相等的数,相对的位置会不会改变)的排序有哪些
【平常使用快排比较多是因为它在平均情况下的时间复杂度是O(nlogn),堆排序建立时间复杂度为O(n),维护堆的时间复杂度为O(logn)】
4. GC类型有哪些
说了yonggc(minor gc)和fullgc
【一般都基于分代收集,年轻代的话,由于gc比较频繁,主要使用复制算法,老年代的话,主要使用标记整理或者标记清除算法,年轻代一般进行yonggc,老年代一般进行fullgc】
5. TCP三次握手做了什么
忘记了
【第一次是客户端发送给服务端同步位SYN=1,seq=x,服务端介绍到后,发送給客户端SYN=1,ACK=1,ack=x+1,seq=y,然后客户端再发送给服务端ACK,ack=y+1,seq=x+1
仅到ACK=1,确认号有效   主要通过一个同步位和确认为去完成这个同步的过程】
6. Collection接口下有哪些方法
7. Object类中有哪些方法
只答出了equals(),hashcode(),finelize()
【toString,wait,notify,clone,getClass】
8. 重写clone()方法要注意什么
注意深拷贝,浅拷贝,对应深拷贝,使用cloneable接口,要在clone方法里面手动得去拷贝对象内容。
9. 什么是深拷贝,浅拷贝
浅拷贝指的是,如果一个对象里面有引用类型,那么拷贝的话,也只能拷贝引用类型的引用地址,而不会真正拷贝一个新的对象。但是如果是深拷贝的话,里面拷贝的也是一个新对象。
10. BeanCopyUtil内部怎么去实现
11. 接口慢了怎么去排查
根据请求id去查阿里云日志,分析日志,是否有慢sql日志,以及微服务间调用时长
12. 导致慢的原因有哪些
说了慢sql,服务间远程调用太多了
13. volitile关键字有什么用
说了去除指令重排序和保证可见性
14. 什么是可见性
说了java内存结构,多个线程在访问共享变量的时候会保存一份副本,可见性指的是当这个共享变量的值发生改变的时候,会马上将副本更新到最新的值。
15. 什么是幂等性
说了,一般将一个接口设置为幂等性的话,就是一个访问的接口和多次访问的结果是一样的,避免重复调用接口造成的问题。
【一个操作可以被重复执行多次而不会改变结果的性质,restful API,get,delete都是幂等的】
16. POST请求怎么保证幂等性
说了使用数据库中的唯一主键,但其实不太符合业务场景。
【使用唯一标识符:为每个POST请求分配一个唯一的标识符,并在请求头中包含,在服务端检查标识符是否已经被处理过,如果已经被处理过,则不再创建,还是返回原来的。】
17. 悲观锁和乐观锁解释一下
说了悲观锁是指线程在访问数据的时候悲观地认为某个数据可能被其他线程修改,因此加上锁,实现线程之间的同步,比如重量级的锁。乐观锁是指线程在访问共享数据的时候认为不会被其他线程修改,不去加锁,而是去比较下预期的值是否相同,如果相同,说明没其他线程改过,修改数据。否则不停地自旋,知道预期的值相同。
18. java中哪里用到了CAS
原子类中用到了CAS,内部使用了Unsafe类的compareAndSwap的方法,而且是个本地方法,原子性的。
19. 数据库层面怎么去实现乐观锁
每次去更新数据的时候,比较版本号,并设置新的版本号,比如UPDATE users SET username='Jane Doe', version=version+1 WHERE id=1 AND version=0;  这就要求在更新前就要拿到这个版本号
20. 可达性分析中哪些可以作为Root
【在GC过程中,有一些对象被认为是根对象(Roots),因为它们始终是可达的,不能被回收】
21. 说说比较项目那块比较有挑战性
22. 说说mqtt中的几种可靠性机制
23. mqtt是怎么去发送消息的,说说架构
24. 反问
全部评论
兄弟 java交付还是技术岗吗 还是技术支持一类的
点赞 回复 分享
发布于 2024-12-05 20:50 浙江
选择题大概有啥 只Java还是啥都有
点赞 回复 分享
发布于 2024-11-01 12:45 浙江
老哥,想问一下这些问题都是根据简历内容问的吗
点赞 回复 分享
发布于 2024-08-23 09:13 广东
校招还是社招
点赞 回复 分享
发布于 2024-08-21 20:03 浙江
m
点赞 回复 分享
发布于 2024-08-19 15:27 广东

相关推荐

一面 11.27一、岗位认知与实习经历类你对 AI 工程研发岗位的 title 和岗位描述有什么理解?为什么这个岗位需要这样标注?在 AI 应用开发实习中,你主要负责哪些与 AI 相关的功能点?处理大模型上下文提示词时,如何做能让生成效果更好?你在实习项目中是否有多种工具的顺序编排经验?二、技术基础类(一)网络协议相关Web SOCKET 协议的核心内容是什么?它的工作流程是怎样的?HTTP 协议属于哪一层?其底层是什么连接?TCP 协议和 Websocket 协议是否是同一个概念?Websocket 在 TCP 基础上多做了什么?IPv4 升级到 IPv6 有哪些好处?(二)Java 相关Java 中重写(override)和重载的区别是什么?被 final 修饰的类和方法有什么特性?被 final 修饰的类能否继承?被 final 修饰的方法能否重写?在什么场景下会给方法标记 final?类中初始化后的 final 字段,能否通过反射修改?Java 中 set 如何实现自定义去重(例如自定义类的特定属性相同即判定为重复)?自定义类的排序规则有哪些实现方法?你使用过 java.util.concurrent 包下的哪些类?请举例说明(如锁相关)。synchronized 和 ReentrantLock 的区别是什么?synchronized 修饰后,JVM 的指令会有什么变化?CPU 为什么会进行指令重排序?如何解决指令重排序带来的问题?volatile 关键字的作用是什么?它能保证原子性吗?volatile 关键字相比普通变量多做了哪些事情?(三)数据库与中间件相关MySQL 和 PostgreSQL 在使用体验和语法上有什么差异?如何利用 Mybatis 实现多数据库支持,隐藏不同数据库的 SQL 差异(让用户统一使用同一种 SQL 语法)?Mybatis 中 $ 符和 #号两个占位符的区别是什么?为什么需要区分这两个占位符?是否存在只能使用 $ 符而不能使用 #号的场景?如果有,如何规避相关风险?你了解 Nginx 的哪些配置?它为什么被称为反向代理?使用 Nginx 有哪些好处?你使用 Redis 时,key 和 value 主要存储哪些类型的数据?请举例说明。Redis 的 zset 底层是什么数据结构?为什么适合做排序?Redis 的 zset 数据结构与 MySQL 的索引结构(如 B + 树)有什么异同?为什么 Redis 不用 B + 树?超级大的 value 对 Redis 有什么影响?你了解 Redis 的通信协议吗?其大致结构是怎样的?如何实现 Redis 的代理中间件(隐藏真实 Redis 节点,解析客户端协议并转发请求)?三、求职意向与岗位疑问类你对工作地点(长沙、郑州)有什么偏好?是否都能接受?你对这个岗位或公司有什么想了解的问题?(如 AI 与后端工作内容的比例)二面 12.04深入实习和项目,讨论实现细节以及是否有其他实现方案,无八股三面 12.11实习、项目加穿插八股Java 项目中 JVM 频繁出现 “young GC”,可能的根因有哪些?AQS 的底层实现依赖哪两个核心组件?其在并发编程中的作用是什么?Java 中 CAS 的实现原理是什么?Linux 进程中的 PCB(进程控制块)核心作用是什么?包含哪些关键信息?每行有序的 m×n 矩阵中,获取第 k 小数的高效算法思路是什么?使用 AI 编程工具(如 Cursor)开发项目时,核心使用原则与提示词设计技巧有哪些?MCP 协议的核心作用是什么?大模型调用工具时,MCP 协议的工作流程是什么?三面已经结束两天了,官网状态还没变
点赞 评论 收藏
分享
评论
6
38
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务