当前位置: 首页 > news >正文

江苏思必驰科技25Java实习面经

江苏思必驰科技25Java实习面经

刚面完,写一份面经~,总体来说,可能说既是八股又不是常规八股,因为面试官会追问,不是一些表面的东西去说,面试体验良好.jpg。

1)自我介绍

面试官:可以简单介绍一下自己吗?

2)毕业时间?

面试官:你是什么时候毕业?

我:25届,明年。

3)计划考研?

面试官:后面计划考研吗?

我:我是打算直接就业的,不考研(我也得能考上啊…)

4)Java 面向对象?

面试官:怎么理解 Java 面向对象?

我:万物皆对象,对客观事物进行抽象,比如人是一个父类,然后学生、老师等等都可以去 extends 人这个父类,做一些独特的实现,比如学习和教授课程。面向对象三特性:封装、继承、多态、这边这可以一个特点举一个例子讲。

5)在项目中是怎么利用到的?

面试官:你在项目中怎么利用三大特性的?

我:我用设计模式的例子去举例吧,比如我用到适配器模式,装饰器模式,这些就需要用到继承、封装、多态,这边可以详细讲一下某个设计模式的具体实现,以及作用,比如装饰器,动态给对象添加一些职责,是大盒子套小盒子的原理,然后调用的时候类似与前端的事件冒泡和事件捕获机制。

6)简单工厂、抽象工厂?

面试官:简单工厂、工厂方法、抽象工厂讲一下?

我:简单工厂,传输参数,去创建定制的商品,但不能进行动态的添加,必须要修改原有的工厂类,违背了设计模式的开闭原则(对拓展开放,多修改关闭),工厂方法,为每个不同的品牌、种类创建不同的工厂,每个工厂再自己创建产品,抽象工厂通过一组相关的工厂方法,增加具体工厂和产品族会很方便,符合开闭原则,但同样增加新的产品等级结构会很麻烦,一般还是简单工厂+策略模式+装饰器模式用的多一些。

7)ArrayList 和 LinkedList 迭代遍历 1亿条数据?

面试官:ArrayList 和 LinkedList forEach 迭代遍历 1亿条数据?谁快?

我:面试官这里是假设,实际上根本不用考虑1亿,ArrayList 由于是数组,数组是连续的内存地址,而 LinkedList 是利用指针,不连续的内存地址,连续的内存地址是可以利用缓存的,也就是 CPU 三级缓存,而不连续的内存地址需要去访问主存(物理内存),非缓存(工作内存)。计算机在读取内存中数据时,优先读取缓存中的数据,缓存速度>内存,而相邻的内存地址,计算机可以一次性读取多个数据库并存储在缓存,链表是随机访问的,需要多次从内存中数据,导致缓存中数据被频繁替换,降低缓存效率。为什么按数据块读取?不能单独读取某个地址的数据吗?内存页的概念,Linux 大多数都是 4KB,部分处理器有 8KB、16KB、64KB,4KB 依然是主流(历史遗留问题,不是说内存利用率最佳)。

8)C 语言?

面试官:会用 C 语言开发吗?

我:大一学过 C 语言,然后就没动过了。(原谅我理解不了 C 的有趣之处)

9)Object 的 hashCode 和 equals?

面试官:Object 的 hashCode 和 equals 为什么要重写,假如没有重写 hashCode 会有什么问题?在哪些场景下会发生?

我:当判断两个对象是否相等,先利用 hashCode 判断,因为哈希的效率会比直接 equals 高很多,但哈希冲突时,再用 equals 比较对象内容。没有重写 hashCode 会导致约定的失效,Java 约定 equals 和 hashCode 的返回要保持一致,equals 为true,hashCode 必为 true,不重写 hashCode 可能导致相同对象存储在不同位置。增加哈希冲突可能性。场景:当 Student 类没有重写 hashCode,导致两个内容相同的 Student,放入 HashSet 并没有被去重,HashMap 同样存在放入的问题。

10)HashMap 的 LoadFactor

面试官:LoadFactor 负载因子参数怎么调?什么时候调?

我:负载因子越大,散列表的填充程度越高,插入和查找性能下降,哈希冲突概率变大,负载因子越小,查找和插入性能越高,哈希冲突概率降低,但空间利用率下降,可以根据追求时间还是空间去做相对应的调整。

11)Synchronized 和 Lock 的选择

面试官:Synchronized 和 Lock 级别的锁的区别?

我:Synchronized 是 JVM 级别,随着 JDK 版本升级会不断优化,Lock 是 API 级别,Synchronized 是关键字,Lock 是接口,前者隐式加锁,后者显示加锁,Synchronized 采用的对象锁 ObjectMonitor 监视器,Lock 采用的是 AQS 抽象队列同步器(CLH 锁),synchronized 阻塞式加锁,Lock 非阻塞式,支持中断和超时时间,Synchronized 非公平,Lock 公平,前者悲观锁,后者 CAS 乐观锁,Synchronized 不能获取锁状态,Lock 可以用 tryLock 获取锁的状态,然后就是 Lock 必须在 Finally 中手动释放锁,而 Synchronized 代码执行完毕或出现异常后自动释放。

12)微服务和云原生?

面试官:微服务和云原生了解多少,策略或者使用场景?

我:云原生没有了解过(这块 b 不出来什么东西,就不吹牛了),微服务了解了下基本的五大组件,后面去介绍五大组件和具体的作用,提到微服务服务拆分的好处,后面面试官问 K8S 和 Docker,我只了解过 Docker,K8S 没学过…

13)方向选择?

面试官:你是希望做前端还是后端?

我:肯定是后端,全栈也可以(前端写的一坨…)

反问:技术栈和业务,人工智能公司,大模型,车载、家具…一个组 Java 的传统 SpringBoot,一个 Lua 的 OpenResty。

反问:面试表现和建议,实习生要求不高…

面了 25 分钟,电话面这个时间也正常

早九晚六,这家基本是做客户端端安卓的,校招是10-15K。实习生200-250每天。

程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享)定期更新内容,成长打怪系列,分享从大一到大四的完整面经,看完可冲中大厂!dy同名,主要口述面试经历,会比面经讲的详细很多,以真实面试录音为主!

http://www.lryc.cn/news/594748.html

相关文章:

  • react class和function 如何模拟vue中的 双向绑定 监听 computed的方式
  • Component cannot be used as a JSX component
  • 芯谷科技--固定电压基准双运算放大器D4310
  • 杰和科技工业计算机AF208,打造高可靠新能源汽车检测产线
  • 杰发科技AC7840——硬件crc使用
  • 【烧脑算法】拓扑排序:从“依赖”到“序列”,理解题目中的先后逻辑
  • 5.6 framebuffer驱动
  • 录音转写:颠覆传统共享下载体验 | 如何提升团队效率?
  • 【前端状态更新与异步协调完全指南:React、Vue架构原理与复杂业务场景实战】
  • RustDesk自建服务器完整部署指南:从零开始到成功连接。成功解决rustdesk报错:未就绪,请检查网络连接
  • Vue 脚手架——render函数
  • 网络与信息安全有哪些岗位:(1)网络安全工程师
  • 【系统全面】Linux进程——基础知识介绍
  • 在本地WSL中的CentOS 7子系统中部署Ewomail邮件服务器
  • AC身份认证实验之AAA服务器
  • django filter按两个属性 去重
  • 第15次:商品搜索
  • 信息整合注意力IIA,通过双方向注意力机制重构空间位置信息,动态增强目标关键特征并抑制噪声
  • 来伊份养馋记社区零售 4.0 上海首店落沪:重构 “家门口” 的生活服务生态
  • 卷积神经网络中的注意力机制:CBAM详解与实践
  • Go-通俗易懂垃圾回收及运行过程
  • WPF——自定义ListBox
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(二)
  • 学习秒杀系统-异步下单(包含RabbitMQ基础知识)
  • ASP.NET Core Web API 中集成 DeveloperSharp.RabbitMQ
  • 关于校准 ARM 开发板时间的步骤和常见问题:我应该是RTC电池没电了才导致我设置了重启开发板又变回去2025年的时间
  • Android NDK ffmpeg 音视频开发实战
  • 什么是“差分“?
  • 包装类简单了解泛型
  • 图片转 PDF三个免费方法总结