当前位置: 首页 > 面试经验 >

掌趣Java一面,人麻了(已凉)

优质
小牛编辑
131浏览
2023-03-28

掌趣Java一面,人麻了(已凉)


1.int占几个字节 4个
2.然后我补了一句范围是-2^31 ~ 2^31 - 1
3.为什么 -1 ,我说有0
4.问我-1怎么表示 我说 32位全部设置为1就行
5.问我-2的补码怎么表示? 我说这个有点忘了,然后面试官说:这个不是记的啊,推啊!(推个der,不会)
6.为什么要有补码? 我说主要是为了做减法的时候,统一转换成加法来操作 (貌似他不满意,我想不出其他理由了)
浮点数底层怎么表示?我说阶码,尾数
浮点数怎么判断是否相等
为什么浮点数要阶码和尾数表示,为什么int不用呢?
7.问我熟悉哪些数据结构?
8.数组和链表区别 ? 我说数组可以通过0(1)访问到对应的数
9.然后就问我底层是怎么访问的? 我说先找到数组的基地址, 如果要访问O(2)的话,就拿基地址 + 2 * 每个数占的字节数
10.然后又问我,如果数组里面如果存储的是变长,比如字符串? 怎么O(1)得到? (有点懵,我说用对字符串做哈希运算,然后mod数组长度)
面试官说你这个没解决本质问题啊,怎么存储啊? 我说扩容哇, 他说不考虑扩容,。。。那我真不知道。。
11.什么时候会用到树? 我说java里面JsonNode会用到,问我JsonNode是多叉树还是二叉树。我说多叉树
12.问我多叉树怎么转二叉树,二叉树怎么转多叉树?。、。。。
13.平衡二叉搜索树? 怎么保证平衡? 我说左旋,右旋,双旋?
14.平衡二叉树,平衡到底有什么好处?
15.常见的排序有哪些?
16.归并的思想?
17.归并和快排的区别? 我说稳定性和额外空间复杂度
18.归并不用递归怎么写? 我说用栈;
19.面试官说用栈的写归并,压入栈具体要压入哪些数据?我说左边界和右边界; 数组?我说数组当全局变量存储
20.归并的时间复杂度? 我说NlogN; 然后问我为什么时NlogN,让我分析
21.多线程了解是把? 什么时候会用多线程? 我说通过临界区操作共享资源的时候
22.问我同时读需不需要加锁?不需要
23.一读一写呢? 需要 为什么需要? 一读一写不加锁会出现什么问题? 让我举例子说明?(这里给我绕进去了。。)
24.一读一写的时候, 一个账户有5000余额,一个写线程对账户-500的操作,另一个读线程读到的结果除了4500和5000以外还可能有哪些情况?
问我有没有可能既不是4500,又不是5000?
25.问我JVM了解是吧?
26.讲一下gc回收?我说标记复制,标记-清除,标记整理
27.他说问我最关键的一个问题?问我底层是怎么做到哪些对象在用,哪些对象没有用?
28.我说按照GCroots,可达性分析? 他说不是。他说底层怎么拿到根对象里面的存活的? 不知道他在问什么。。。。
29.问我main函数调用A函数,A函数调用B函数。 底层怎么执行的? 我说就是栈帧的弹出和压入
30.问我怎么通过栈里面拿到堆的对象? 我说直接访问和句柄池访问
31.问我怎么设计一个GC垃圾收集器? 。。。。。。
32。问我堆里面的对象怎么知道被其他对象引用了, 我说记忆集和卡表。 他说别说这些复杂的,然我从计算机的思维来思考,说计算机很笨
33.我说底层有数据结构来表示一些关系吧? 他说没有这么神奇的东西? 我说遍历。 他说遍历没用。。。。。
34.然后,问我你觉得你擅长哪些?
35.我说mysql和redis吧,然后简单问了我几个问题。为什么用缓存。。
36.然后还有别的吗? 我说一些性能优化和问题排查。。 软中断导致CPU飙高。
37.反问。 说这些应用层的东西千篇一律,最重要的是掌握底层的知识。。。。
掌趣是我秋招以来,自我感觉最难的一次。。。。没有问项目,八股。 基本就是数据结构,计算机系统基础,底层原理

#掌趣科技##秋招##校招#
 类似资料: