江苏某互联网公司 Java 面经-25分钟

江苏某互联网公司 Java 面经

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

1)自我介绍

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

2)毕业时间?

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

我:25届,明年。

3)计划考研?

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

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

4)Java 面向对象?

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

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

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

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

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

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

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

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

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

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

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

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

大学四年面经(学院本) 文章被收录于专栏

大学全部面经从大一到大四,从实习、秋招、春招等等,各种岗位,中小厂,乃至大厂面经! 公粽号:程序员落叶,里面分享全部文章详情。

全部评论
想问问佬怎么背的下这么多八股的。我背的好晕啊,想和佬取经下
2 回复 分享
发布于 2024-04-02 20:43 湖南
佬别面了,给我们留点活路吧😭😭😭
2 回复 分享
发布于 2024-04-01 23:34 河南
niubi
1 回复 分享
发布于 2024-04-16 22:27 陕西

相关推荐

迷茫的大四🐶:💐孝子启动失败,改为启动咏鹅
点赞 评论 收藏
分享
评论
15
53
分享

创作者周榜

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