汇川Java一面面经

准备汇川的Java面试时,总结了一些个人经历和体会,希望对正在准备的同学有所参考。

一、面试流程

我面试的是技术面,整体流程大致如下:

  1. 技术面:这一轮主要考察Java基础、并发、JVM、设计模式和算法能力。面试官会让我描述项目中的技术细节,偶尔会让我现场写小段代码。

整个技术面大约持续了40分钟左右。

全网最全面的java面试八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd

二、面试题内容

面试过程中,我遇到的题目大致可以分为以下几个方面:

1. Java基础

  • 面试官问了ArrayListLinkedList的区别,我详细讲了底层数据结构、增删性能和内存占用差异。
  • HashMap工作原理及线程安全问题也被问到了,我描述了哈希冲突、链表/红黑树转换以及在多线程下可能出现的问题。
  • 关于面向对象,我简单介绍了封装、继承和多态,并举例说明在项目中如何用单例模式优化性能。
  • 还被问了StringStringBuilderStringBuffer的区别,我结合线程安全和内存开销进行了说明。

2. 并发与多线程

  • 面试官让我说一下线程创建方式,我依次列举了继承Thread、实现Runnable、Callable+Future以及线程池。
  • 对线程安全问题,我讲了synchronized、Lock接口以及原子操作类的应用。
  • 我也讲了常用并发工具类,如CountDownLatchCyclicBarrierSemaphore
  • 线程池参数和应用场景被问到,我分析了核心线程数、最大线程数、队列类型和拒绝策略。

3. JVM与性能优化

  • 我被问到Java内存结构,包括堆、栈、方法区和直接内存。
  • 对垃圾回收机制,我简单介绍了Minor GC、Full GC及常见垃圾收集器。
  • 还涉及类加载机制,我解释了双亲委派模型及类加载器分类。

4. 数据库与SQL

  • 面试官让我写了一些基础SQL语句,也问了事务及隔离级别。
  • 我结合项目经验讲了如何进行SQL优化和索引设计。

5. 项目与算法

  • 面试官根据我的项目经历,问了设计思路和遇到的技术难点。
  • 算法题多为数组、链表和字符串的基础题,也有涉及树和排序的题目。我现场写了链表判断环的算法。

三、面试经验总结

  1. 基础要牢固 面试官最看重的是Java核心知识,包括集合、多线程、JVM和设计模式。
  2. 项目经验要会讲 对自己负责的模块和技术难点,要能清楚说明处理思路和解决方案。
  3. 逻辑和编码能力 面试中会要求现场写代码,要考虑清晰性和边界情况。
  4. 保持思路清晰 遇到不会的问题,我会先分析思路并表达解决方案,而不是沉默。

四、典型问题回顾

在我的面试中,出现过的典型问题包括:

  1. HashMap为什么线程不安全?如何解决?
  2. 说一下Java内存模型及volatile的作用。
  3. 实现一个线程安全的单例模式。
  4. 链表是否有环的判断算法。
  5. 描述项目中遇到的最复杂问题及解决过程。

整体来说,我感受到汇川的Java面试更注重基础扎实和解决问题的能力,面试过程中思路清晰、表达条理清楚是很重要的。

全部评论
同学,瞅瞅我司,医疗独角兽~ 我的主页最新动态,绿灯直达,免笔试~
1 回复 分享
发布于 10-19 09:12 广东
接好运
点赞 回复 分享
发布于 10-17 10:22 黑龙江

相关推荐

1.  那你先做一下自我介绍吧。2.  结合你的项目经验,谈谈你对PaaS平台的认知?PaaS平台主要是用来做什么?3.  你觉得PaaS平台相对于传统的开发来说,优势是什么?4.  我看你之前做过一些MySQL的巡查,主要是什么场景?做了哪些工作?5.  你们改进的思路是怎样的?6.  MongoDB相对于MySQL,你们的业务选型考量是什么?它相对于MySQL的优势是什么?7.  MongoDB的数据结构对比MySQL的数据结构,区别是什么?8.  比如在JSON(文档)里,我想更新其中的a字段,应该怎么操作?9.  如果在MongoDB客户端用命令更新(部分字段),应该输入什么命令?10. (Redis)是处理什么样的业务场景呢?11. 你有了解过Redis查询效率高的原理吗?为什么比数据库高?12. Redis里面那些基本的命令,你比较熟悉哪些?13. 如果我想要在Redis里面去实现一个列表(List),(用什么命令)?14. 除了Redis,有了解过本地缓存吗?15. 你们(Redis)设置Key过期时间,在什么场景用过?16. Redis底层是怎么(通过过期)把Key清除掉的?(过期淘汰策略)17. 你在什么业务场景下使用RocketMQ?18. RocketMQ是基于什么策略来保证顺序消息的?19. 为什么顺序消费会对性能产生影响?20. RocketMQ如果出现消息堆积,一般是什么原因造成的?21. 还有其他原因会造成(消息)堆积吗?22. 如果消息在消费者侧消费时报错,会有什么影响?23. RocketMQ的消息重试有什么策略?24. 你们开发过程中使用线程池,是如何定义的?25. 一个任务提交到线程池,线程池是如何处理这个任务的?(执行流程)26. 线程池的核心参数(如核心线程数)可以动态调整吗?27. (算法题)在一个整数数组中,找到两个元素使它们的和等于0。28. (算法题)如果不开辟额外空间,怎么实现?29. (算法题)还有其他方案使时间复杂度小于O(N^2)吗?30. (算法题)如果这个数组是排序的,有什么方案?31. (概率题)一个家庭有两个孩子,已知其中一个是女孩,另一个孩子也是女孩的概率是多少?32. (概率题)一个家庭有两个孩子,这两个孩子都是女孩的概率是多少?33. (概率题)都是男孩的概率呢?34. (概率题)一男一女的概率呢?35. 你有什么需要了解的吗?
汇川技术一面148人在聊
点赞 评论 收藏
分享
评论
5
17
分享

创作者周榜

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