Java后台开发面经(包括答案)

一部分自己整理的面经,主要是基础部分。包括Java基础、网络、JVM、数据库、数据结构、并发等部分。分享出来吧。


我会持续更新,增加总结的。
举个例子,比如:

16、运行时数据中哪些区域是线程共享的,哪些是独享的。

在JVM运行时内存区域中,程序计数器、虚拟机栈和本地方法栈是线程独享的。而Java堆、方法区是线程共享的。但是值得注意的是,Java堆其实还为每一个线程单独分配了一块TLAB空间(本地线程分配缓冲),这部分空间在分配时是线程独享的,在使用时是线程共享的。(TLAB介绍

创建对象时,内存分配过程如何保证线程安全性?有两种解决方案:

  • 对分配内存空间的动作做同步处理,采用CAS机制,配合失败重试的方式保证更新操作的线程安全性。
  • 每个线程在Java堆中预先分配一小块内存,然后再给对象分配内存的时候,直接在自己这块"私有"内存中分配,当这部分区域用完之后,再分配新的"私有"内存。这个本地线程分配缓冲就叫做TLAB。

17、Java中数组是存储在堆上还是栈上。

在Java中,数组同样是一个对象,所以对象在内存中如何存放同样适用于数组;

所以,数组的实例是保存在堆中,而数组的引用是保存在栈上的。

20、什么是回表,覆盖索引有什么作用。

回表是指,数据库根据索引找到了指定的记录所在行后,还需要根据rowid再次到数据块里取数据的操作。在执行计划中,先索引扫描,再通过rowid去取索引中未能提供的数据,即为回表。

避免回表的方法就是将需要的字段放在索引中去,查询的时候避免回表。也就是覆盖索引。

覆盖索引:一个索引内包含(或覆盖)所有需要查询的字段的值,即只需扫描索引而无须回表,减少了IO操作,提高了效率。

同时打个广告,阿里考拉/天猫国际团队招秋招同学,组内hc很多(尤其java后端)。

有想了解的同学可以wx联系:lzh960227






#面试##阿里巴巴##内推##校招##秋招#
全部评论
已收藏,下辈子看
15 回复 分享
发布于 2020-06-22 19:25
祝大家早日上岸。😃
1 回复 分享
发布于 2020-06-22 17:44
感谢
1 回复 分享
发布于 2020-06-23 14:20
字节跳动2021提前批校招开始了,有后端、算法、前端、客户端各类岗位,字节跳动校招内推码: FCGFJBD (使用可免一轮筛选),投递链接: https://job.toutiao.com/s/JRPt2PL
1 回复 分享
发布于 2020-06-23 15:14
同时打个广告,😁欢迎来投阿里考拉部海购。这里是阿里巴巴新零售技术事业群下的大进口产品技术部,考拉计划今年引入1w个商家,作为该战略下的核心部门,技术赋能产品,将淘系商家引入考拉,赋能考拉tob业务,团队正在迅速发展,业务上也在不断扩张,急需人才,本团队主要招收java开发/数据,也可以帮忙内推其他岗位,准备越早机会越多,欢迎踊跃报名,加入考拉大家庭。   yizi.lzh@alibaba-inc.com
1 回复 分享
发布于 2020-07-17 15:23
感谢
点赞 回复 分享
发布于 2020-06-22 21:19
感谢
点赞 回复 分享
发布于 2020-06-22 23:19
谢谢!
点赞 回复 分享
发布于 2020-06-23 07:48
感谢
点赞 回复 分享
发布于 2020-06-23 08:49
感谢
点赞 回复 分享
发布于 2020-06-23 08:57
感谢!
点赞 回复 分享
发布于 2020-06-23 09:08
感谢!
点赞 回复 分享
发布于 2020-06-23 10:09
谢谢
点赞 回复 分享
发布于 2020-06-23 15:23
感谢
点赞 回复 分享
发布于 2020-06-23 23:18
点赞 回复 分享
发布于 2020-07-20 18:32
阿里考拉海购开始了,主要是Java岗位和数据岗位。hc挺多,想内推的话可以私信我。
点赞 回复 分享
发布于 2020-07-25 12:51
前辈~感谢分享啊!手工整理这些实在是花了大功夫啊!还想请教一下,前辈对于Java后端项目有什么推荐么
点赞 回复 分享
发布于 2020-08-04 17:09
感谢
点赞 回复 分享
发布于 2021-02-04 11:37

相关推荐

10-30 10:16
南京大学 Java
永远的鹅孝子:给南大✌️跪了
点赞 评论 收藏
分享
评论
18
236
分享
牛客网
牛客企业服务