Skip to content

Commit

Permalink
面试
Browse files Browse the repository at this point in the history
  • Loading branch information
itwanger committed Feb 4, 2023
1 parent 9cc6f80 commit e5f8a66
Show file tree
Hide file tree
Showing 10 changed files with 554 additions and 8 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

<p align="center">
<a href="https://tobebetterjavaer.com">
<img src="https://itwanger-oss.oss-cn-beijing.aliyuncs.com/tobebetterjavaer/images/logo-01.png" width="260px" alt="Java 程序员进阶之路">
<img src="https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/logo-01.png" width="260px" alt="Java 程序员进阶之路">
</a>
</p>

Expand All @@ -10,7 +10,9 @@
<a href="#联系方式" target="_blank"><img src="https://img.shields.io/badge/公众号-沉默王二-brightgreen.svg?style=for-the-badge"></a>
<a href="https://space.bilibili.com/513340480" target="_blank"><img src="https://img.shields.io/badge/bilibili-哔哩哔哩-critical?style=for-the-badge"></a>
<a href="https://tobebetterjavaer.com/download/java.html" target="_blank"><img src="https://img.shields.io/badge/计算机经典电子书-下载-yellow.svg?style=for-the-badge" alt="无套路下载"></a>
<a href="https://github.com/itwanger/toBeBetterJavaer" target="_blank"><img alt="Java程序员进阶之路" src="https://img.shields.io/github/stars/itwanger/toBeBetterJavaer?style=for-the-badge"></a>
<a href="https://github.com/itwanger/toBeBetterJavaer" target="_blank"><img alt="Java程序员进阶之路" src="https://img.shields.io/github/stars/itwanger/toBeBetterJavaer?style=for-the-badge"></a><br><br>
<a href="https://github.com/itwanger/toBeBetterJavaer">Github</a> |
<a href="https://gitee.com/itwanger/toBeBetterJavaer">Gitee</a>
</p>

# 为什么会有这个开源知识库
Expand Down
2 changes: 1 addition & 1 deletion docs/interview/java-basic-baguwen.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Java 基础背诵版八股文必看🍉
shortTitle: Java 基础背诵版八股文必看🍉
shortTitle: Java基础背诵版八股文🍉
category:
- 求职面试
tag:
Expand Down
2 changes: 1 addition & 1 deletion docs/interview/java-hashmap-13.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 13 道 Java HashMap 精选面试题👍
shortTitle: 13 道 Java HashMap 精选面试题👍
shortTitle: 13道HashMap精选面试题👍
category:
- 求职面试
tag:
Expand Down
2 changes: 1 addition & 1 deletion docs/interview/java-jvm-baguwen.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Java 虚拟机背诵版八股文必看🍉
shortTitle: Java 虚拟机背诵版八股文必看🍉
shortTitle: JVM背诵版八股文🍉
category:
- 求职面试
tag:
Expand Down
2 changes: 1 addition & 1 deletion docs/interview/java-thread-baguwen.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Java 并发编程背诵版八股文必看🍉
shortTitle: Java 并发编程背诵版八股文必看🍉
shortTitle: 并发编程背诵版八股文🍉
category:
- 求职面试
tag:
Expand Down
2 changes: 1 addition & 1 deletion docs/interview/mianshiguan-bigfile-miaochuan.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/interview/mianshiguan-youhuiquan.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 淘宝面试官👤:优惠券系统该如何设计?
shortTitle: 大厂的优惠券系统是如何设计的
shortTitle: 如何设计优惠券系统
description: 大厂的优惠券系统是如何设计的?
category:
- 求职面试
Expand Down
218 changes: 218 additions & 0 deletions docs/nice-article/cnblog/tmwzyndlehoffer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
---
title: 16天5面,我终于拿到了鹅厂Offer
shortTitle: 16天5面,我终于拿到了鹅厂Offer
author: 瘦风
category:
- 博客园
---

> 上一篇 [我在华为OD的275天](https://www.cnblogs.com/shoufeng/p/14322931.html) 最后说,要讲讲自己为什么会坚持在年底离职,以及离开后去了哪儿。趁周末,鸽王本鸽来交下作业😂
## 1 - 为什么要在年底离职

### 1.1 好像都没有什么成长

20年11月初的一天,在同事们讨论“某某被其他公司高薪挖去了,钱景无限”的消息。

我忽然惊觉,自己来到华为半年多,除了熟悉内部的系统和流程,好像没有什么成长和进步?

不禁反思:只有厉害的人才会被挖,现在这个状态的我,在市场上值几个钱?

### 1.2 投简历,找面试官求虐

刚好想起了之前的一个同事在离职聚会上分享的经验:

> 技术人不能闭门造车,要多交流,多看看外面的动态。
>
> 如果感觉自己太安逸了,那就把简历挂出去,去了解其他公司用的是什么技术,他们更关注哪些痛点?面几次你就有方向了。
这时候起了个念头:找面试官求虐,以此来鞭策自己,进而更好地制定学习方向。

于是我重新下载了某聘软件,在首页推荐里投了几家公司。

### 1.3 开始面试了……

11月10号投的简历,当天就有2家预约了11号下午的线上面试,其中就有鹅厂🐧

好巧不巧,10号晚上要双十一业务保障,一直到第二天凌晨2点半才下班。

熬夜太伤身,还好能申请调休一天,也省去了找借口请假🙊

这段时间集中面了3家:

> 第1个是广州的公司,11号当晚就完成了2轮线上面试,开得有点低,就婉拒了;
>
> 第2个就是本文的重点——鹅厂;
>
> 第3个是做跨境电商的公司,一面就跪(恭喜它荣升为“在我有限的工作经历中,面试体验最差的2家公司之一”🙂️)
### 1.4 鹅厂,去还是不去?

一直有一个大厂梦,奈何菜鸟一枚,之前试过好几次,都跪在技术面了。

所以想了个曲线救国的方法:先在其他单位积累着,有机会了再争取大厂的机会💪

很幸运,也很猝不及防,这次竟然通过了鹅厂的所有面试。

虽然已到年底,但是要是错过这么难得的机会,下次就不知道什么时候才能再通关了。

所以,**年后拿到年终再跳槽 vs 已到手的鹅厂 Offer,我选择了后者😄**

## 2 - 我的鹅厂面试

如本文标题所说,16天通关五轮面试,第17天,我终于收到了期盼已久的鹅厂 Offer。

做技术的同学,可能会对鹅厂的面试很好奇,他们都会问哪些问题呢?

我应聘的是大数据开发(Java)岗位,接下来对我的面试做个梳理,也给想来鹅厂的同学们一个参考😊

> 几乎所有问题都能在网络上找到很详细的答案。
>
> 篇幅有限,这里只写题目和一些引申的问题。
### 2.1 技术一面

#### Java 语言相关

1、对 Java 的类加载器有没有了解?如何自定义类加载器?

> 引申:一个类能被加载多次吗?`java/javax` 包下的类会被加载多次吗?
2、Java 中要怎么创建一个对象🐘?

3、对多线程有了解吗?在什么场景下需要使用多线程?

> 引申:对 **线程安全** 的认识;对线程池的了解,以及各个线程池的适用场景。
4、对垃圾回收的了解?

5、对 JVM 分代的了解?

6、NIO 的了解?用过 RandomAccessFile 吗?

> 引申:对 **同步、异步,阻塞、非阻塞** 的理解?
>
> 多路复用 IO 的优势?
7、ArrayList 和 LinkedList 的区别?各自的适用场景?

8、实现一个 Hash 集合,需要考虑哪些因素?

> 引申:JDK 对 HashMap 的设计关键点,比如初识容量,扩所容,链表转红黑树,以及 JDK 7 和 JDK 8 的区别等等。
#### 通用学科相关

1、TCP 的三次握手;

2、Linux 的常用命令,比如:

> ```shell
> ps aux / ps -ef、top C
> df -h、du -sh *、free -g
> vmstat、mpstat、iostat、netstat
> ```
>
#### 项目框架相关
1、Kafka 和其他 MQ 的区别?它的吞吐量为什么高?
> 消费者主动 pull 数据,目的是:控制消费节奏,还可以重复消费;
>
> 吞吐量高:各 partition 顺序写 IO,批量刷新到磁盘(OS 的 pageCache 负责刷盘,Kafka 不用管),比随机 IO 快;读取数据基于 sendfile 的 Zero Copy;批量数据压缩……
2、Hive 和 SparkSQL 的区别?
3、Ranger 的权限模型、权限对象,鉴权过程,策略如何刷新……
#### 问题定位方法
1、ssh 连接失败,如何定位?
> 是否能 ping 通(DNS是否正确)、对端端口是否开了防火墙、对端服务是否正常……
2、运行 Java 程序的服务器,CPU 使用率达到 100%,如何定位?
> `ps aux | grep xxx``jps` 命令找到 Java 的进程号 `pid`
>
> 然后用 `top -Hp pid` 命令查看其阻塞的线程序号,**将其转换为16进制**
>
> 再通过 `jstack pid` 命令跟踪此 Java 进程的堆栈,搜索上述转换来的16进制线程号,即可找到对应的线程名及其堆栈信息……
3、Java 程序发生了内存溢出,如何定位?
> `jmap` 工具查看堆栈信息,看 Eden、Old 区的变化……
### 2.2 技术二面
二面主要是过往项目相关的问题:
1、Solr 和 Elasticsearch 的区别 / 优劣?
2、对 Elasticsearch 的优化,它的索引过程,选主过程等问题……
3、项目中遇到的难题,如何解决的?
blabla 有少量的基础问题和一面有重复,还有几个和大数据相关的问题,记不太清了😅
### 2.3 技术三面
这一面是总监面,更多是个人关于职业发展的一些想法,以及在之前公司的成长和收获、对下一份工作的期望等问题。
但也问了几个技术问题。印象比较深的是这个:
> 1个1TB 的大文件,每行都只是1个数字,无重复,8GB 内存,要怎么对这个文件进行排序?
首先想到的是 MapReduce 的思路,拆分小文件,分批排序,最后合并。
**此时连环追问来了:**
> Q:如何尽可能多的利用内存呢?
>
> A:用位图法的思路,对数字按顺序映射。(对映射方法要有基本的了解)
>
> Q:如果在排好序之后,还需要快速查找呢?
>
> A:可以做索引,类似 Redis 的跳表,通过多级索引提高查找速度。
>
> Q:索引查找的还是文件。要如何才能更多地利用内存呢?
>
> A:那就要添加缓存了,把读取过的数字缓存到内存中。
>
> Q:缓存应该满足什么特点呢?
>
> A:应该使用 LRU 型的缓存。
*呼。。总算是追问完了这道题😂*
* * *
还有 GM 面和 HR 面,问题都和个人经历相关,这里就略去不表。
## 3 - 文末的絮叨
**入职鹅厂已经1月有余。不同的岗位,不同的工作内容,也是不同的挑战。**
感受比较深的是,作为程序员,还是要自我驱动,努力提升个人技术能力,横向纵向都要扩充,这样才能走得长远。
最后再广告下,有想要加入鹅厂、或者有疑问的同学,可以留言,或关注公众号加我好友,我尽力给你解答😊
> ## 版权声明
>
> 作者:[瘦风(https://healchow.com)](https://healchow.com)
>
> 出处:[博客园-瘦风的南墙(https://www.cnblogs.com/shoufeng)](https://www.cnblogs.com/shoufeng)
>
> **感谢阅读,公众号 [「瘦风的南墙」](https://mp.weixin.qq.com/s/EPUA_78SNmVqoCB4CcrJag) ,手机端阅读更佳,还有其他福利和心得输出,欢迎扫码关注🤝**
>
> [
>
> ![](https://images.cnblogs.com/cnblogs_com/shoufeng/1423755/o_200301011427%E5%85%AC%E4%BC%97%E5%8F%B7%E5%9B%BE%E7%89%87.jpg)
>
> ](https://mp.weixin.qq.com/s/EPUA_78SNmVqoCB4CcrJag)
>
> 本文版权归博主所有,欢迎转载,但 **\[必须在页面明显位置标明原文链接\]**,否则博主保留追究相关人士法律责任的权利。
>参考链接:[https://www.cnblogs.com/shoufeng/p/14381680.html](https://www.cnblogs.com/shoufeng/p/14381680.html),整理:沉默王二
Loading

0 comments on commit e5f8a66

Please sign in to comment.