3.21:实习淘天后端一面-深入java知识体系

嗨~我是可拟雀,一个后端开发工程师,毕业于某985大学,目前供职于bat某大厂核心部门后端。每天分享最新面经答案,希望在大环境不好的当下能帮到你,让你多积累面试经验。需要内推或者面经合集请评论哦。

面试内容: 

1.hashmap.put流程

2.concurrenthashmap

3.知道java几面异常的(exceptiona类)的体系结构嘛?

我直接道歉

4.对象头都有什么内容

5.cms讲一讲

6.线程池,讲一讲,怎么用?什么时候创建线程?(具体说)

7.我线程池放了几万个线程,有什么问题?

8.jmm

9.jvm内存模型

10.元空间满了,可能是什么原因?

11.如果频繁full gc 怎么排查?排查过程是什么样的?

我直接道歉

12.线程同步有哪些方法

刚准备问spring啥的。我说我对框架源码还不熟,可以问问redis嘛?他说:好的,那我不问redis了。我直接😁😁😁

13.cap理论

14.聚簇索引,非聚簇索引

15.B+树,红黑树,啥的都聊一聊

16.mysql主从同步

17.除了binlog日志,还有什么日志?

18.同步io,异步io

19bio,nio,aio

20java底层用的什么实现的bio,nio。

答:只知道nio应该是epoll,不知道对不对。道歉

21.如何查看一个进程中线程的占用内存情况。用什么命令?

top?道歉

22.netty了解嘛?

23.mq了解嘛?

24.类的加载过程

25怎么打破双亲委派机制

26.类加载器的层次结构

答案概答:

以下是各个问题的核心解释概要:

  1. HashMap.put流程:检查key是否已存在,若存在则更新value。若不存在,计算key的hash值,找到对应的桶位置。若桶位置为空,直接放入新节点;若已存在节点,则使用比较key的值是否一致,一致是会覆盖节点的反之就是进行链表或红黑树的插入操作。
  2. ConcurrentHashMap:线程安全的HashMap实现,支持高并发场景。通过分段锁或CAS操作来减少锁竞争,提高性能。
  3. Java异常体系:分为Error和Exception两大类。Exception进一步分为运行时异常(RuntimeException)和非运行时异常。
  4. 对象头内容:包含对象的运行时数据(如哈希码、GC分代年龄等)。还可能包含指向对象类型元数据的指针。
  5. CMS(Concurrent Mark Sweep):一种Java的垃圾收集器,旨在减少应用停顿时间。分为初始标记、并发标记、重新标记和并发清除几个阶段。
  6. 线程池:用于管理和复用线程,减少线程创建和销毁的开销。根据不同场景,可配置核心线程数、最大线程数、队列容量等参数。当任务提交时,线程池会根据当前状态决定是直接执行、放入队列还是创建新线程。
  7. 线程池放几万个线程:可能导致系统资源耗尽,如内存、CPU和文件描述符等。线程间切换开销增大,影响性能。线程管理成本增加。
  8. JMM(Java内存模型):定义了Java程序中各种变量(主内存和线程工作内存)的访问规则。保证多线程环境下数据的一致性和可见性。
  9. JVM内存模型:包括堆、栈、方法区等部分。堆用于存储对象实例,栈用于存储线程局部变量和方法调用信息。
  10. 元空间满了:可能由于加载了大量类或者类加载器未正确回收导致。可以通过调整JVM参数增加元空间大小或检查类加载器泄露问题。
  11. 频繁Full GC排查:分析GC日志,确定Full GC的频率和原因。检查内存使用情况,查找可能的内存泄露。优化代码和配置,减少大对象创建和长时间持有的情况。
  12. 线程同步方法:包括synchronized关键字、Lock接口及其实现类、volatile关键字和原子类等。
  13. CAP理论:一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)的权衡理论。分布式系统一般无法同时满足三者,需根据场景选择折中方案。
  14. 聚簇索引与非聚簇索引:聚簇索引按照主键顺序存储数据,非聚簇索引与数据物理存储顺序无关。查询性能上,聚簇索引通常更快,但插入和更新操作可能较慢。
  15. B+树、红黑树等:B+树常用于数据库和文件系统的索引结构,具有多路搜索特性,适合外存存储。红黑树是一种自平衡的二叉搜索树,常用于内存中的数据结构。
  16. MySQL主从同步:主服务器将数据变更写入二进制日志(binlog)。从服务器读取主服务器的binlog,并执行其中的事件,实现数据同步。
  17. MySQL日志:除了binlog外,还有错误日志、查询日志、慢查询日志等。这些日志用于诊断问题、优化性能和监控数据库状态。
  18. 同步IO与异步IO:同步IO需要等待操作完成才能继续执行后续代码。异步IO在操作开始后立即返回,通过回调函数或事件通知操作结果。
  19. BIO、NIO、AIO:BIO是阻塞式IO,NIO是非阻塞式IO,AIO是异步IO。NIO和AIO适用于高并发、大量数据传输的场景,可提高性能。
  20. Java底层IO实现:NIO在Java中通过java.nio包实现,底层可能使用epoll等高效IO模型。具体实现与操作系统和JVM版本有关。
  21. 查看线程内存占用:可以使用jstack、jmap

大家根据概答的关键字,了解哪里学习的不够系统和深入进行查缺补漏即可

    #软件开发2024笔面经#

原文传送门

#面经##淘天##后端##实习##春招##投票#
大厂校招实习最新面经解析 文章被收录于专栏

专注于最新各大厂最新面筋解析

全部评论
m
2 回复 分享
发布于 03-24 11:23 北京
m
1 回复 分享
发布于 03-24 17:03 北京
补充一下: 1.HashMap.put流程:检查key是否已存在,若存在则更新value。若不存在,计算key的hash值,找到对应的桶位置。若桶位置为空,直接放入新节点;若已存在节点,则使用比较key的值是否一致,一致是会覆盖节点的反之就是进行链表或红黑树的插入操作。 来源:牛客网
点赞 回复 分享
发布于 03-24 14:51 广东
这面试官纯搞子吧 说可以问redis 又不问了 专门问没准备的 没啥用的 kpi吧这是
点赞 回复 分享
发布于 03-24 17:25 浙江
试试阿里云
点赞 回复 分享
发布于 03-25 09:55 浙江
1是不是少说了扩容的那些
点赞 回复 分享
发布于 03-25 10:58 湖北
这问的优点多啊
点赞 回复 分享
发布于 03-25 12:55 浙江

相关推荐

一面群面,正常发挥,很久没接触过群面了,但是总的来说,我比较能跟别人聊到一块,就还挺顺利的。二面就普通的,自我介绍一下,根据简历挖一挖简历内容,整体面试难度不高,正常准备即可,可以多了解下公司企业文化。 岗位招聘需求更偏向于男孩子,而且感觉挺缺人的现在,可能是因为前期轮岗这块确实有些让人犹豫,我倒是觉得还不错,个人能接受,3月轮岗之后可以定岗,可以去事业部,人力什么的,也可以继续往管理方向,站长什么的。 面试官都挺随和不错,过程没觉得难受起码。此外,‌技术岗位(‌如Java)‌的面试会重点考察底层原理和源码级别的知识。‌‌#叮咚买菜2025届校招内推 当前咚力生(北京、上海、江苏三地)简历缺口较大【公司介绍】叮咚买菜(股票代码 NYSE:DDL),创立于 2017 年,总部位于上海,是中国成长迅速、规模领先的生鲜供应链企业。【补招岗位】咚力生(管理方向)、商品开发岗、商品品质管控岗【岗位城市】上海、深圳、杭州、北京、无锡、南京、苏州、常州、芜湖、东莞等【福利待遇】优厚薪资(六险一金、年度贡献奖、绩效奖金、期权激励)等内推链接:http://campus.100.me/campus/jobs?shareId=c1377c9f-677d-4631-9247-c855aa43d4a7&shareSource=2内推码:ESVGHA使用内推码简历优先筛选,米哈游,有任何问题包括进度查询可以私信我,内推后在评米哈游TCL论区留言【姓名缩写+岗位】,方便捞人和确认投递状态
叮咚买菜
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
评论
13
118
分享
牛客网
牛客企业服务