锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

java 面试题场景_大三、研二的秋招备战路线(Java、大数据)

时间:2023-01-19 05:30:00 ha重载矩形连接器

一、写作背景

二、秋招的意义

三、不同层次的学生备战秋招策略(案例)

四、整理部分面试题

五、准备过程中的注意事项

六、复习简历

137848b42f3cfea9b3c886b06e78b928.png

大三、研二秋招备战路线(Java、大数据)

一、写作背景

1.分享经验。从去年5月到今年5月,我采访了n家公司,收到了(n/2 10)家的offer,经历了腾讯、今日头条、京东等两个春季招聘和一个秋季招聘offer。通过本文分享一些经验,让后面的学生少走弯路。

2.解决问题。我有自己的学习小组和知识星球。秋季招聘即将到来,我无法避免被问及秋季招聘的准备工作。通过这篇文章,我首先系统地输出了我能想到的路线和方法,以便提出详细的问题,为自己节省时间。

二、秋招的意义

1.秋季招聘是大企业人才储备的战斗。只有相对较大的企业才有秋季招聘的概念。他们有资本和资源,花费大量精力进行宣传和面试,可以提前发布offer,等你毕业去上班。

2.对于学生来说,秋季招聘是一场大型招聘会,这可能是他们一生中最接近大工厂、机会最多的,也是他们唯一有精力面对这么多大工厂的面试。

3.秋招offer在手,我有毕业时间。秋招拿了。offer之后,它对你以后的面试或玩起着非常关键的作用。至少心理负担不会那么大,面试会更开始一次,不要不耐烦,玩也嗨,没有就业压力,毕业前随意安排时间。

三、不同的学生备战秋招策略

想在秋招中得到offer,记住以下三点,下一个案例围绕这三点:

1.获得足够的面试机会, 不要让你的才华无处施展。

2.根据简历形成系统的知识,在面试中占据主动地位。

3.成不骄,失不气馁。不断总结面试经验,弥补知识盲点。

案例1

有小公司Java实习经验,参与了两个项目的开发,算法不是很好,基础一般,大数据基础,做了一个大数据项目。

目标:秋招收到大数据offer,最好大厂。

分析:项目为长板,算法为短板,其他正常。因此,为了在最短的时间内填补项目,成为优势,算法逐渐被拉上来,其他时间基于理论。

学习路线:

1.先把手放在手上。Java了解分布式项目,深入了解技术栈和业务,整理项目中的难点和亮点,最终写在简历上。首先熟悉手头的项目。一方面,项目是面试的垫脚石。没有项目的简历会显得空洞。有些项目可以避免缺乏项目经验。另一方面,项目在面试中也占很大比例,面试官更喜欢从项目场景到理论知识。

2.每天安排时间刷算法,剑指offer、牛客leetcode148题,容易先刷,刷一题,整理一题到博客,先懂思路再懂代码,一天至少一题,努力重复刷几遍手写。大厂一定要问算法,大部分都是剑指offer或者leetcode原题或变形题,有的只问思路。所以算法一定要刷,先刷思路,整理好,避免刷完就忘。

3.补Java集合源码、JVM、多线程。不看书,直接在网上搜索面试题,最后高频整理,直接面试题,借助博客辅助理解。同样,理解一个问题,整理一个问题到博客。(我的学习组公告有)大数据岗位也要求Java知识,即使大数据面不上,面大厂Java还是妥妥的,会大数据知识可以加分。

4.熟悉大数据项目中的技术栈和流程,理解和整理常见的大数据面试问题。

5.熟悉数据库、操作系统和计算机网络的常见面试问题。因为这些在面试中不会占很大比例,而且问题也是这些问题,所以最后。

6.有时间看相关书籍,系统梳理。因为准备时间有限,我的目的是通过秋季招聘面试,我从面试题开始,分散整理,最后有时间通过阅读系统整理。

7.送小厂练手。准备差不多的时候,我就开始送简历面试小公司,这样补缺补漏。

案例2

目前正在公司实习,但已决定不留在公司,计划在秋季招聘前夕辞职。

目标:大工厂Java或者大数据offer

路线:

1.对于仍在公司实习或即将在公司实习的学生,如果确定不留在公司,可以「简历实习」。顾名思义,面对简历实习,学习简历上需要的东西。公司提供的资源是项目,有文件给你看,不懂的老员工可以帮你解释。您需要快速了解项目中使用的技术栈和应用的业务场景,并尽可能多地收集相关信息和查看源代码。听听老员工在讨论什么技术难点,如何实施解决方案,不懂就多问。

2.估计实习期间只有精力学习项目。在职期间刷算法或补充理论基础是不现实的。当你有目的地理解你的实习项目时,你可以撤退,开始刷算法和补充基础。

3.如果要找大数据,可以通过基础视频入门,自己做一两个项目,写简历。其余可参考案例1的学习路线。

案例3

懂点Java基础,学校课程管理系统项目,了解基本数据结构。

目标:秋季招聘可以进入知名大厂Java。

规划路线:

1.先花点时间补1到2个项目,技术栈要比较好,这样才能保证面试大公司和进小公司的机会。

2.当你能把比较好的项目写在简历上,了解一些技术栈的原理时,首先暂停对项目的学习,转战Java。先从Javase开始,到JVM,最后并发编程。se和JVM有很多理论,首先要记住能理解的,然后是理解的背部,面试前机械记忆。并发编程可以熟悉常见的多线程实现,并自行敲击常见的多线程demo,以及几个常用的线程池,然后比较每种实现方法的优缺点和参数。然后切入线程安全、发等。记得整理!

3.由于数据结构算法基础不是很扎实,可以先熟悉常见的7种选择和8种排序,尽量手写代码。然后刷剑指offer,统一先刷实现思路,遇到可以理解的代码也可以记住,否则只能记住思路。每天刷,记得整理!

4.回顾对项目技术栈的深入了解,常见的技术栈面试题,项目的业务场景,技术栈如何与业务联系,可以找出哪些困难,哪些可以作为亮点。

5.送小公司,收到面试通知后刷数据库、操作系统等面试题。

案例4

非科班零基础。

目标:秋招尽量找开发工作。

先看看Java基本视频入门,然后补充项目,适当补充点Java了解一些基础JVM以及多线程,数据结构和算法只看基本的排序和选择。在达到案例二的水平后,可以走其学习路线进行进步。

案例5

大三或研究生,机器学习或其他方向,技术栈主要是Python,算法基础还可以,有一个Python小项目。机器学习竞争激烈,但没有核心竞争力。Python后台或者爬虫岗位需求少。

目标:秋季招聘大厂大数据开发或背景开发

学习路线:

1.已经可以了Python语言,所以学习Java会更快。你可以快速通过一次Java基础。

2.根据你想走的方向准备1到2个项目,然后熟悉它们。您可以参考案例1的学习路线来准备算法和基础。

3.把你的Python项目也写了,做大数据或Java会Python也是加分。

总结

秋招 = 项目 语言基础 计算机基础 算法 软实力

争取在项目中有:

微服务:SpringCloud、SpringBoot、Dubbo等

分布式服务框架:Zookeeper等

消息队列:Kafka、RabbitMQ、RocketMQ等

内存数据库:Memcached、Redis等

分布式搜索引擎:Solr、Lucene、ES等

大数据框架:Hadoop、Hive、Spark等

语言基础:

Javase、集合源码、JVM、多线程、IO等

计算机基础:

数据库、计算机网络、操作系统

算法:

基本的排序和选择算法,剑指offer、牛客148题Leetcode等

四、整理部分面试题

Java:

Java树木对应的容器类散列表,hashmap如何解决冲突?

Java实现生产者和消费者三种方法

init方法与clinit方法的区别

Java中的引用

Java对象的创建过程

Java在创建子类实例时,会创建父类实例?

Java类加载机制 为什么会出现锁机制?

抽象与界面的区别

双亲委派模型:启动加载器、扩展加载器、应用程序加载器

重载与重写

Java的类型擦除

简述Java Object类中有哪些方法?

char能储存汉字吗?

抽象与界面的区别

静态分配和动态分配

HashMap与HashTable的区别

何时使用HashMap?它的特点是什么?

HashMap基本原理和内部数据结构

HashMap的put和get操作

简述Java深拷贝和浅拷贝,C 浅拷贝和深拷贝

解释一下static块和static执行变量顺序

equals()的重写规则

Java如何创建线程?

JDK1.8新特性

JVM:

JVM内存布局

JVM垃圾回收机制

JVM垃圾回收算法

哪些对象在老年代?

从年轻代到老年代执行的时间以及发生转移的场景

为什么存在GC?

简单可达性分析

Minor GC安全检查

垃圾回收器

引用记数法和可达性算法

类加载机制过程

双亲委派模型

双亲委派机制

Java集合:

排序算法比较

Hashmap是线程安全的吗?为什么?

ArrayList与LinkedList区别

HashMap、LinkedHashMap和TreeMap

冒泡排序的优化以及快排过程及优化

红黑树

JDK7与JDK8中hashmap的区别

hashmap的初始容量为什么设置为16?

平衡二叉树的插入删除操作

并发编程:

锁分段技术、ConcurrentHashMap、扩容

Java同步线程有哪些方式?

volatile 和 synchronized的区别

讲一下同步异步(进程和IO)

synchronized和volatile的区别?

线程安全

对象的内存布局

哪些是线程安全的容器?

ConcurrentHashMap介绍

线程启动start和run

HashMap为什么线程不安全?

简述Java内存模型的happen before原则

volatile的原理和实现机制 || volatile到底如何保证可见性和禁止指令重排序的?

volatile关键字的两层语义 || 可见性

volatile保证原子性吗?

volatile能保证有序性吗?

Zookeeper:

Dubbo简介及以Zookeeper为注册中心

Zookeeper的leader选举过程

2PC and 3PC

简述Zookeeper。。。watcher

简介ZAB

简述paxos算法

Zookeeper如何保证数据的一致性?

叙述ZAB集群数据同步的过程

Zookeeper中的ACL

Zookeeper底层实现数据一致性

Zookeeper在yarn框架中如何实现避免脑裂的?

大数据:

Kylin:

简介Kylin

Kylin的工作原理

Kylin的技术框架

Cube、Cuboid 和 Cube Segment

Kylin 对维度表的的要求

Cube的构建过程

全量构建和增量构建的区别

流式构建原理

Hive:

Hive内部表与外部表的区别

Hive与传统数据库的区别

Hiverc文件

Hive分区

Hive分区过多有何坏处以及分区时的注意事项

Hive中复杂数据类型的使用好处与坏处

hive分桶?

Hive元数据库是用来做什么的,存储哪些信息?

为何不使用Derby作为元数据库?

Hive什么情况下可以避免进行mapreduce?

Hive连接?

Hive MapJoin?

Hive的sort by, order by, distribute by, cluster by区别?

Hadoop计算框架特性

Hive优化常用手段

数据倾斜整理(转)

使用Hive如何进行抽样查询?

Storm:

Storm的可靠性如何实现?包括spout和bolt两部分

怎么提高Storm的并发度?

Storm如何处理反压机制?

Storm中的Stream grouping有哪几种方式?

Storm的组件介绍

Storm怎么完成对单词的计数?

简述Strom的计算结构

Spark:

Spark的运行模式

RDD是如何容错的?

Spark和MapReduce的区别

说一下Spark的RDD

自己实现一个RDD,需要实现哪些函数或者部分?

MapReduce和Spark的区别

Spark的Stage是怎么划分的?如何优化?

宽依赖与窄依赖区别

Spark性能调优

Flink、Storm与Spark Stream的区别(未)

说下spark中的transform和action

RDD、DataFrame和DataSet的区别

Spark执行任务流程(standalone、yarn)

Spark的数据容错机制

Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?

Spark master使用zookeeper进行HA的,有哪些元数据保存在Zookeeper?以及要注意的地方

driver的功能是什么?

spark端口

RDD有哪几种创建方式

map和flatmap的区别

Spark的基本工作流程

Hadoop:

MR的Shuffle过程

Yarn的工作机制,以及MR Job提交运行过程

MapReduce1的工作机制和过程

HDFS写入过程

Fsimage 与 EditLog定义及合并过程

HDFS读过程

HDFS简介

在向HDFS中写数据的时候,当写某一副本时出错怎么处理?

namenode的HA实现

简述联邦HDFS

HDFS源码解读--create()

NameNode高可用中editlog同步的过程

HDFS写入过程客户端奔溃怎么处理?(租约恢复)

kafka:

kafka介绍

Kafka与传统消息队列的区别?

kafka的零拷贝

kafka消息持久化和顺序读写?

网络:

简述TCP和UDP的区别

七层协议每一层的任务及作用

简述http状态码

简述http协议与https协议

简述SSL协议

解析DNS过程

三次握手,四次挥手的过程??为什么三握??

剑指offer常问:

字符串转换成整数

链表中倒数第K个结点

二维数组中的查找

替换空格

从尾到头打印链表

重建二叉树

用两个栈实现队列

斐波那契数列及变形题

二进制中1的个数

在O(1)时间删除链表结点

调整数组顺序使奇数位于偶数前面

反转链表

合并两个排序的链表

树的子结构

二叉树的镜像

顺时针打印矩阵

栈的压入、弹出序列

二叉搜索树的后序遍历序列

二叉树中和为某一值的路径

数组中出现次数超过一半的数字

最小的k个数

连续子数组的最大和

第一个只出现一次的字符

两个链表的第一个公共结点

链表中环的入口结点

二叉树的镜像

跳台阶

变态跳台阶

矩形覆盖

从上往下打印二叉树

二叉搜索树的第K个结点

五、准备过程中的注意事项

1.心理压力大。怕面试,面试怕被怼,一直逃避。面试是一个会上瘾的东西,刚开始几场会比较难受,但不用怕,一个优秀的面试官会让你有一个舒适的面试体验,而且面试是一个检验自己水平的过程。刚开始可以选择小公司,即使面的不好也没事,面上了也不一定去,放轻松。

2.沉迷学习,无法自拔。秋招已经开始了,自己总想着还没准备好,想把所有的东西都学完之后再去投。参考过秋招的人都知道,知识是永远学不完的,永远没有准备好的那一刻,当你能把简历写出来的时候就开始投吧。面试不是你很厉害就一定能过的,也有运气成分在里面,而且边面试边总结会成长很快的。

3.无论学习理论,项目,还是算法,一定要边学边总结。光输入看似都会了,输出才是王道,不然脑子依然一盘散沙,东拼西凑。面试之前这些平时总结的内容就是你的杀手锏。

4.怕理论懂太多,实操太少。通过以上内容,你会发现我一直强调理论性的东西,无论是项目的学习或者是语言。在校生本来就是以理论分高低,大家都知道面试问这些,但为什么总有人回答不上来。实操的话自己在学校敲的跟公司比起来都是小儿科,都得重新学,重要的是先拿到offer。学会把面试和日常学习区分开。

5.一定要注重简历上的项目。前面提到,简历没有相关项目去支撑你求职的岗位,即使简历写自己的理论多么强,基础多么扎实都是很苍白无力的。这点我在面阿里的时候吃过亏,前几天学习群的一个小兄弟也吃了这个亏。企业说注重理论基础是建立在有项目的基础上,而不是只有理论基础。

6.在简历的排版和内容上要好好做文章。正常的面试都是从自我介绍开始,然后面试从上到下浏览简历,所以你要把你的优点尽量往前面放,而不是把兴趣爱好,个人技能这种比较虚的东西放第一第二模块,而实习经历,项目经验放最后。

7.实习经历是否影响秋招?理论上是的,有实习经历尤其是大厂实习都会在秋招中有优势的,但这种优势不是绝对性优势。实习的目的也是锻炼你的动手能力,提高你的工程能力,所以只要能把项目搞定,问题不是很大。但是建议你还是多面试,项目经历可以补,面试经验补不了,终归要出去试试水的,所以要多面试。

8.为什么零基础的人学完基础就马上学习项目?我在校园招聘的时候,打印了10个简历,投了10家,全都拿了offer,当然都是小公司。面试问什么呢?面向对象的概念,Java的特点等等这些极其基础的,剩下的都是围绕着项目问。有些公司面试都没有直接说有项目那就好办了,接着问什么时候能上班,要现场给offer。案例1的人就是我,简历有两个分布式项目和一个大数据项目。所以我经常跟那些担心找不到工作的同学说,只要你把项目鼓捣明白,总有公司会要你的,就是大和小的问题。

六、针对简历复习

一直强调把简历写好,那么怎么针对简历去复习?

1.面试前夕,打开简历,拿一张白纸,把自己当成面试官,手撸思维导图。从自我介绍开始,然后就是项目介绍,其次就是自己负责的部分以及项目难点。

2.技术面试正常两个部分,一个基础,另一个项目技术栈。基础就是网络,数据结构,算法这些,这些是无论你简历上写不写都问的。其次就是你简历描述的技术栈。

3.正常面试官会问你在项目中做了什么,然后以这个为点切入进去。

举个例子:我在项目中用了多线程,提高了读取效率。那么项目官肯定接着,你如何创建多线程的?我回答:线程池。那你知道创建线程有哪些方法吗?有哪些线程池吗?怎么保证线程安全呢?等等。

如果你项目中的问题会把自己问死,也就是挖坑,那我建议你换个。这部分写的好就是给自己开路,弄不好就自己填坑了。

4.项目技术栈来不及复习怎么办?打开谷歌搜索一下对应技术栈常问面试题,或者平时多刷牛客网,你就知道哪些题目是高频的。

5.扬长避短。对于不熟的框架,尽量不写简历上,如果写了并且被面试官问到就直接跟他说这个正在学,用的比较少。正常面试官也有数,你负责的部分用到的技术栈他会问的深一些,这块自己掂量一下。

7.针对基础,平时多积累。多整理博客也是为了临时突击,像网络,数据库,操作系统,问来问去也是那几题。多看面经几十遍,不懂原理也能吟。

8.针对技术框架,除了基本原理之外,也要准备应用场景。这块对应届生来说要求不会很高,社招的话要整理每个原理的应用场景,相对来说会细一点,源码加分。

9.针对算法。算法是贯彻在日常学习的,我刷算法的策略就是理论先上,其次代码,最后优化。是把所有的算法先刷一遍理论,第二遍再回头代码哦,也都有整理思路的。当然,也要准备常用算法,快排,冒泡的手撸代码。

大部分还是吹吹思路就可以了,所以我先前面提到了先刷实现思路。

10.公司面试题优先。去牛客、看准或拉钩查对应公司的面试题,这个命中概率比较大。

11.公司产品业务准备,最好也看看竞品,让面试官刮目相看。之前面了一家腾讯系的,从它的融资开始讲。

12.面试官正常从上到下看简历,记得布好局。自己面试自己的时候多想想怎么把上面的知识点不经意的串到你熟悉的知识点。

为什么说不经意呢?要是你直接跟面试官说,我这个框架不熟,对***比较熟,有点尴尬的。所以要不经意的。

当面试官问你hashmap原理的时候,比如说你多线程比较熟,你最后一句提一下它是线程不安全的。又或者你数据结构比较厉害,那就说它是红黑树。又或者你对Lambda,JDK1.8一些特性比较熟,那就可以说它是在JDK1.8优化的。

平时还是得多整理,面试之前复习一手博客,一手面经,一手面试的思维导图。

最后说一句:抓住学生红利期,无论机会还是精力都有可能在巅峰时期。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章