Java算法面试题

2022-11-15 10:54:11 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

腾讯一面 试下 4月6日 挂

1 自我介绍

2 介绍一下你在项目中的承担的任务

3 你对哪种语言熟悉

4 线程池使用过吧,说说线程池中有哪些关键字 具体使用方法。

5 说说hashMap 使用的是哪种数据结构,

6说说hashMap 和 ConcurrentHashMap 的区别

7为啥hashMap是线程不安全的?

8锁机制怎么使用的?

9如何查看linux 内存占用情况

10 如何在4亿个数字中去重

11 快速排序的原理及实现

12 递归算法如何查询

字节提前批一面

1. 自我介绍 2,介绍一下项目 3,MapReduce中容易发生数据倾斜,是怎么产生的,如何处理? 4,Hive数据倾斜怎么产生的? 怎么处理? 5,Spark 数据倾斜怎么产生,如何处理? 6. 大表和小表如何进行查询? 7.说说HashMap? 8.hashMap使用什么样的数据结构?如何扩容? 9.hashMap线程安全吗?和它对应的hashTable呢? CurrentHashMap呢? 10.HashTable 和CurrentHashMap 的区别? 12.用过哪些设计模式? 讲讲动态代理模式 和单例模式 13 写一下单例模式,在多线程情况下呢? 14 设计一个栈,包含出栈,入栈,是否为空等 15 求两个大数相加,每个数100位长度。

字节提前批二面

1.自我介绍 2.介绍一下Spring及Springboot. 3.Spring IOC如何解决循环依赖的问题? 4.有没有产生过依赖A依赖B,B依赖C? 5介绍一下Spring AOP 6Spring AOP用的哪些设计模式? 7 JDK代理和CGlib代理有啥区别? 8,假如没有接口,又含有final,如何使用动态代理。 9没有mybatis,如何写dao层? 10.说一下没有mybatis时,通过JDBC具体如何实现这个过程的? 11.了解java线程池吗? 12.线程池在提交任务和执行任务时是怎么做的? 13创建线程池,当里面的线程数量达到最大时,会出现什么问题? 14 说一下ThreadLock? 15 说一下mysql的事务的隔离级别 16 讲一下mysql的存储引擎 17 mysql的索引有哪些? 18 写两个代码? 1 实现一个链表反转,设置一个步长,每隔几次,链表进行反转 2 设计一个hashMap,实现一个put方法。

阿里一面 实习 4月24日 面试时长2小时

阿里的第一次面试: 1.自我介绍 2.研究的课题以及培养方向 3.介绍一下你参与的项目 4.项目中有哪一部分是有技术难点的,以及技术架构是怎么样的? 5.50个人的并发量也很低,为什么会出现系统页面数据显示过慢? 6. 那你们是怎么解决那个页面显示速度过慢? 第二个系统介绍 7.如何将多个部门的数据进行融合? 8.往系统中导入数据的时候会遇到什么问题? 9.系统前端采用什么做的? 10.导入时,进度条是通过什么技术实现的? 11.返回前端是怎么返回的? 12.前端机制,websocket有没有了解 13.第三个系统介绍 14.系统产生日志文件,一天产生多少条? 15.怎么用mapreduce处理日志文件的? 16.从业务上说一下怎么对日志文件进行分区的,怎么保存的? 17.用mapreduce处理日志文件的任务,输入是什么,输出是什么? 18. 处理日志时,输入是一个文本,要对他进行拆分,拆分的纬度是什么纬度? 19.用hive怎么对日志文件进行多维度分析的?

关于网络相关的问题

20.四层模型是哪四层,7层模型是哪7层? 21.链路层要解决什么问题? 22.数据链路层的网络地址用什么表示? 23.三次握手和四次挥手? 24.四次挥手,断开连接的时候,经常会出现time_wait的状态,这个状态是怎么产生的? 25.TCP是在IP的上层还是下层? 上层 26.TCP和UDP有什么区别,以及用途 27.UDP典型的应用? 28.HTTP属于哪一层协议 ? 29.HTTP底层是基于哪一层协议的? 30.HTTP和 HTTPS的区别? 31.说说对HTTP的协议有什么了解? 32.HTTPS的安全体现在哪个方面? 33.说说HTTPS协议关于CA证书这方面的了解 34.HTTPS传输时涉及到一些加密算法,有哪些了解,以及算法的应用场景 比如RSA 35.对称加密算法和非对称加密算法的概念 36.HTTP协议的method有几种 37.get和post的区别 38.web编程了解多少? 39.在前端提交请求时,cookie中经常有个jsessionid的cookie值,这个cookie值是用来干嘛的? 40.服务器一般保存了一个session,浏览器为什么知道我多次请求在一个session里面,为什么能找到我之前的session 41.session机制

数据结构相关的知识:

42. 说说树的遍历有深度遍历(DFS)和广度遍历,一般怎么实现 深度遍历就是先序遍历 先序遍历采用递归, 非递归需要用到栈,利用栈的先进后出特性 广度遍历就是层次遍历,应该使用非递归,需要用到队列,先将根入队,队列不空时pop,然后入左子树,再入右子树 43.排序算法都有哪些,以及他的时间复杂度 44.说说平衡二叉树的特点

问一些java语言的问题

45. 说一下==和equals的区别? 46. 为什么要重写equals和hashcode()方法 47.静态变量和静态方法,和实例变量和实例方法有什么区别? 子类不能重写静态方法 48.为什么要用静态方法和静态类 49说下关于map以及他的实现类有哪些? 50.说一下hashmap,hashtable,currenthashmap的区别 51.经常在遍历一个map时,在删除时,经常会遇到并发错误 52.设计模式 了解哪些,比如单例模式,工厂模式,动态代理模式 53.说说对垃圾回收机制的了解 54.垃圾回收机制的算法有哪些,初生代用哪些算法,老生代用哪些算法 55.如何判断出哪些垃圾该清理,哪些不该清理?

数据库方面的知识 56.说说内连接和外连接的区别 57.数据库设计时会碰到一对多,多对多时,应该怎么设计 58. 就以用户表和角色表为例,假如用户表里面放着角色表的id作为 角色表的外键,那一个用户对应多个角色时,

这样设计会有哪些问题 机器学习方面的问题 59.监督学习和非监督学习有什么区别? 60.springboot应该要接收前端ajax请求时,应该使用什么注解 61.springboot中configuration的注解有什么用? 分布式集群有哪些了解 62.nginx有哪些了解? 63.如果一个session在一台服务器上保存,下一次session请求时,nginx反向代理把我的session请求转发到另一台服务器上,这种情况该怎么处理? 64.微服务架构和一些容器的技术有什么了解? 65.docker有什么了解?

京东实习1面 通过

1,自我介绍 2 int 占几个字节? 其他几个数值型的分别占几个? 3.集合,经常用的组数和链表的有哪些? 说说ArrayList 和LinkedList 4. 说说HashMap 5. 说说conCurrentHashmap? 6 线程用过吗? 在哪用的? 7.五条线程是怎么设计的? 8.怎么启动一个线程? 9.了解反射吗? 说说反射? 10.用过Spring吗? 11.为什么在配置文件中配置了,就可以用? 12.用过redis吗 redis都有哪些数据结构? 13.说说Hadoop? 14 说说HDFS的读操作和写操作 15 说说MapReduce 16 Hive的元数据,都有哪些? 17 用过kafka吗? 18 写一个单例模式 19 final 关键字 20 介绍一下volatile 关键字

2 京东实习二面 (主要问项目) 通过

1.自我介绍 2.介绍一下第一个大数据项目,用了哪些技术,画一下架构图 3.flume采集子系统日志,这些日志数据都包含哪些? 4.集群是怎么部署的? 5.分析使用什么进行分析的? 6.系统分析的优点和缺点都有哪些?如何改进一下? 7.实时的了解多少?

祖龙娱乐 7月24日下午5点面试 时长 73分钟 (包括答案) 通过

在电脑前苦等半小时,终于面试官上线了,一看,一下两个人,我去,心理压力好大,赶紧放松放松心情

先简单的来个自我介绍:

1 自我介绍

2 你自己搭过大数据集群吗? 那你说说搭建hadoop集群的3个xml文件

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml 心想这简单,赶紧将3个xml说出来,并简单说了下里面都包括啥

3 正常的hadoop集群工作都会启动哪些进程?

当时回答是:namenode,datanode ,secondarynode ,

4.他们的作用分别是什么?

  • nameNode 主节点 负责维护整个Hdfs文件系统的目录树,以及每个文件所对应的block块信息(元数据)
  • DataNode 从节点 负责存储具体的文件数据,并且每个block可以在多个datanode上存储多个副本
  • secondary nameNode 相当于一个备用的naneNode, 当nameNode死机之后,可以将secondary nameNode
  • 的数据备份到nameNode上面 ,但不能备份完整数据,它有两大功能,1 镜像备份,2 日志与镜像定期合并

5 你能详细介绍一下secondaryNode 的具体作用吗?

当然可以,这个问题我可是仔细研究过,哈哈

  • secondary nameNode会经常向namenode发送请求,是否满足check。
  • 当条件满足时,secondary nameNode将进行checkPoint 。
  • 这时nameNode 滚动当前正在写的edits,将刚刚滚动掉的和之前edits文件进行合并。
  • secondary nameNode下载edis文件,然后将edits文件和自身保存的fsimage文件在内存中进行合并,
  • 然后写入磁盘并上传新的fsimage到nameNode,这时nameNode将旧的fsimage用新的替换掉。

6 看来你掌握的还不错啊,HDFS的块默认是保存几份?一个块多大?

默认保存是3份,一个块是128M。

7 之前的64M 是从哪个版本变换的?

hadoop 1.0 默认是64M, hadoop 2.0 由64M 改为128M

8 那假设现在是128M,那我在工作中想把它调为256M,那我需要调整什么,才能改变块的大小?

主要是磁盘的存储决定 块的大小,块组成的文件的大小取决于磁盘的传输速率,调整磁盘,可以改变块的大小。

9 Hdfs的读写过程你了解吗? 简单讲讲?

那我就说说写过程吧,

  • 1、客户端跟nameNode 通信,请求上传文件,nameNode检查文件,父目录是否存在,并向客户端返回是否可以上传文件
  • 2、客户端请求第一个block块该上传到哪个datanode服务器上,nameNode查询从节点之后,返回对应的danaNode 服务器
  • A,B,C等。
  • 3、客户端请求nameNode服务器,采取就近原则,选择A服务器上传数据(本质上是个RPC调用,建立PipeLine),A收到
  • 请求后,A调B,B调C,将每个pipline建立连接,然后逐级返回给客户端
  • 4 客户端开始往A上传第一个block,以Package为单位,A收到一个Package,就会传给B,B传给C,A每传一个package就会
  • 放入一个应答队列,等待应答。
  • 5、当第一个block传输完成后,客户端再次请求namenode上传第二个block。

10 挺好,那你说一下MapReduce的工作原理?

  • 1、客户端启动一个job,然后向jobTracker请求一个jobID
  • 2、 然后将运行所需要的资源文件上传到HDFS上,包括Mapreduce程序打包的jar包,配置文件,以及计算的输入划分信息等
  • 3、 这些文件全部存储在JobTracker专门创建的jobID文件夹中(jar文件会有10个副本,输入划分信息对应着jobTracker应
  • 该启动多少个Map任务)
  • 4、JobTracker将这些资源文件放入作业队列中,调度器根据调度算法对作业文件进行调度,根据输入划分信息划分Map任务
  • 并将map任务分配给TaskTracker执行。
  • 5、taskTracker每隔一段时间发送给jobTracker一个心跳,告诉它自己的运行情况,这个心跳中包含map任务完成的进度等。
  • 6.当最后一个任务完成后,jobTracker会将该任务设为成功,返回给客户端。客户端得到结果,得知任务完成便显示
  • 消息给用户。

11 你在具体讲一下map中的一些步骤,例如partition,sort,combiner,shuffle等等。

好的,sort 主要是排序,combiner是合并,partition是分片等,

首先Mapper根据文件进行分区,sort将Mapper产生的结果按照key进行排序,combiner将key相同的记录进行

合并,partition是吧数据均衡的分配个Reducer. shuffle是Mapper将结果传给Reduce,在这期间容易发生数据倾斜等。

12 那这个数据倾斜一般是在Mapper端发生的还是Reduce中发生的?

Mapper将数据处理完传给Reduce,当Reduce进行处理时,因为一部分key的数据量过大,导致其他分区已经执行完成

而数据量过大的key执行时间过长,所以数据倾斜是发生在Reduce端的。

13,对,那发生数据倾斜是因为这个key分布不均匀,那你会怎么优化呢?

因为研究生期间研究的课题就是关于Spark的并行大数据清洗,所以对MapReduce和Spark发生数据倾斜的过程和解决方法

比较熟悉,

可以在Mapper期间将大数据量相同的key进行分散,通过添加N以内的随机数前缀,对数据较多的Key进行子扩展,

先进行局部操作,再去除随机数之后进行聚合操作,避免在进行Shuffle操作时出现数据倾斜问题。

14 那Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?

数据量会减少,因为combiner之后,会将相同的key进行一次聚合,数据量会在这时候减少一部分

15 map 输出的数据如何超出他的那个小文件内存之后,那他是落地到磁盘还是落地到HDFS中?

落地到磁盘中,因为map,reduce操作,就是一次次的I/O请求

16 Map到Reduce默认的分区机制是什么?

这个是根据那个hash进行计算 对map中的key做hash,对reduce个数取模

17 hadoop的调优主要针对配置文件的调优你知道哪几种?

  • 思考了一下,
  • 1、因为Mapreduce运算时是在磁盘中进行的,所以 通过修改磁盘I/O,也就是设置和的预读缓冲区大小
  • 来提高hadoop里面大文件顺序读的性能。以此来提高I/O性能。
  • 2、通过修改三个配置文件的参数如 core-site.xml,mapred-site.xml,hdfs-site.xml等
  • 例如 修改core 文件里面的buffer.size,来修改读写缓冲区的大小,还有hdfs文件里面的block.size修改块的大小等
  • 都可以进行调优

18 好的,给你出个题,现在有1G的数据文件,里面有四个字段,分别是id,name,age,class,然后要按照class来分组,

id来排序,口述一下mapreduce的过程是怎么实现的?这里面会有几个map?

思考了一下,

  • 1、首先1G文件,那默认一个块是128M,所以可以分为8个块,对应的就是8个Mapper
  • 2、然后定义一个对象,将四个属性封装到对象中,实现序列化和反序列化
  • 3、定义一个类继承partitioner类,调用对象中的class属性设置分组,
  • 4 在map端对文件进行读取,然后通过Split来进行分割,调用对象的id作为key,然后进行局部sort排序,在combiner局部聚合
  • 后通过reduce来进行整体聚合。

说完之后感觉对着吧,果然,听见面试官说嗯嗯,好。觉得差不多对啦

19 嗯嗯,好,说说yarn吧,它有什么优势,能解决什么问题?

yarn集群主要分为主节点ResourceManage,从节点 NodeManage ResourceManage负责资源的分配,将集群的资源分配给

各个应用使用,资源分配的基本单元是Container,NodeManage则是一个计算节点的管理者,负责启动应用的

所需的Conbiner,并对内部资源进行监控等。

yarn一般和mapreduce进行结合,主要是对mapreduce中的资源计算进行维护等。

答完之后,心想别问yarn吧,这块看得不是很深,哈哈,果然,面试官问了一个问题后就跳过了

20 说说Spark吧,Spark为啥比Mapreduce运行块,原因都有哪些?

1 spark是基于内存计算,mapreduce是基于磁盘运算,所以速度快

2 spark拥有高效的调度算法,是基于DAG,形成一系列的有向无环图

3 spark 是通过RDD算子来运算的,它拥有两种操作,一种转换操作,一种动作操作,可以将先运算的结果存储在

内存中,随后在计算出来

4 spark 还拥有容错机制Linage

21 什么是RDD?

RDD就是弹性分布式数据集,可以理解为一种数据结构,拥有多种不同的RDD算子

22 你都知道哪些RDD算子?

比如转换操作,有map().fliter() flatMap(),distinct()等 动作操作 有 collect ,reduce 等

23. 你知道reduceBykey 和groupBykey有啥区别吗?

reduceByKey会在结果发送至reducer之前会对每个mapper在本地进行merge,

有点类似于在MapReduce中的combiner。这样做的好处在于,在map端进行一次reduce之后,数据量会大幅度减小,

从而减小传输,保证reduce端能够更快的进行结果计算。

groupByKey会对每一个RDD中的value值进行聚合形成一个序列(Iterator),此操作发生在reduce端,

所以势必会将所有的数据通过网络进行传输,造成不必要的浪费。同时如果数据量十分大,

可能还会造成OutOfMemoryError。

24.现在有一个业务,当SparkStreaming在消费kafka里面的数据,然后消费了一段时间之后,程序挂了,当

下一次程序启动时如何保证SparkStraming能继续消费kafka之前的位置?

听到这个问题时,我就偷笑啦,幸亏上次海康威视问过我,我就好好看了一下

可以依靠checkPoint机制来保证,每次SparkStreaming消费kafka数据后,将消费的kafka offsets更新到checkpoint,当

程序挂机或升级时,就可以用过读取checkpoint 的记录来接着上次的位置进行读取,实现数据的零丢失。

25,除了这种方式还有什么方式?

还可以在sparkStreaming中另外启动一个预写日志,这将同步保存所有收到的kafka数据导hdfs中,以便发生故障时,

恢复到上次的位置和之前的数据。

26,你说说Spark的广播变量?

听到这个问题后,一脸懵逼,不会拉。。 我都猜想 面试官肯定在想,小样,我还难不倒你拉。。。。

然后我就让面试官给我讲了一下。。

Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,

需要使用广播变量。广播变量只能在Driver端定义,不能在Executor端定义,在Driver端可以修改广播

变量的值,在Executor端无法修改广播变量的值

27 那你知道累加器吗?

之前看过一点,累机器相当于统筹大变量,常用于计数,统计。累加器常常被作为rdd的map filter操作的副产品等。

28.你说说spark中 job,stage,task,分别代表什么?

Job简单讲就是提交给spark的任务。 Stage是每一个job处理过程要分为的几个阶段。

Task是每一个job处理过程要分几为几次任务。Task是任务运行的最小单位。最终是要以task为单位运行在executor中。

29.嗯嗯 好,说说Spark的工作机制?

我去,咋问的都是大问题啊,幸亏之前复习过。。

用户在客户端提交job作业后,会由driver运行main方法并创建SparkContext上下文。执行RDD算子,形成DAG图,

然后将DAG图交给DAGScheduler来处理。DAGScheduler按照RDD之间的依赖关系划分stage,输入task Scheduler,

task Scheduler会将stage划分为task set分发到各个节点的executer中执行,executor以多线程的方式执行,每个线程

负责一个任务,任务结束后,根据不同类型的任务返回不同的结果。

30 你了解zookeeper吗?

zookeeper 是一个分布式协调服务,zookeeper集群包括 leader 和 follow

31 说说zookeeper的选举过程,比如现在有五台机器,ABCDE依次启动起来,那么哪台是leader?

记得不太清楚了。。就大概说了一下

1.首先更新logicalclock并提议自己为leader并广播出去

2.进入本轮投票的循环

3.从recvqueue队列中获取一个投票信息,如果为空则检查是否要重发自己的投票或者重连,否则

判断投票信息中的选举状态: 就回答到这,后来下来百度了一下。。。

32 hive了解吗?

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能

33.说说内部表和外部表的区别?

内部表的数据是由Hive自身管理的,外部表的数据是由HDFS管理的;

删除内部表会删除元数据和存储的数据;删除外部表只删除元数据不删除存储的数据

34,你知道UDF吗?

UDF就是Hive提供的内置函数无法满足业务处理需要时,可以考虑使用用户自定义函数。

35 一张大表,一张小表,你写join in时,哪个表放左边,哪个表放右边?

小表放前,大表放后,左查询,根据小表为主进行查询。

36 问一下kafka的问题吧,kafka是怎么进行数据备份的?

哇,面试官 你是要把大数据里面的每个组件分别问一下,。。。。深呼一口气,思考了一下 然后巴拉巴拉

备份机制是Kafka0.8版本之后出的,一个备份数量为n的集群允许n-1个节点失败。在所有备份节点中,

有一个节点作为lead节点,这个节点保存了其它备份节点列表,并维持各个备份间的状体同步。

37.消费者是从leader中拿数据,还是从follow中拿数据?

。。。不太会,备份机制这块没咋深入了解过。

kafka是由follower周期性或者尝试去pull(拉)过来(其实这个过程与consumer消费过程非常相似),

写是都往leader上写,但是读并不是任意flower上读都行,读也只在leader上读,flower只是数据的一个备份,

保证leader被挂掉后顶上来,并不往外提供服务。

38.那换个问题吧。说说kafka的ISR机制?

  • kafka 为了保证数据的一致性使用了isr 机制,
  • 1. leader会维护一个与其基本保持同步的Replica列表,该列表称为ISR(in-sync Replica),每个Partition都会有一个ISR,
  • 而且是由leader动态维护
  • 2. 如果一个flower比一个leader落后太多,或者超过一定时间未发起数据复制请求,则leader将其重ISR中移除
  • 3. 当ISR中所有Replica都向Leader发送ACK时,leader才commit

39.kafka如何保证数据的不重复和不丢失?

答案上面已经回到了,面试官又问一遍。。可能是看我kafka这块了解不是很深入。想再虐虐我。。。

40.kafka里面存的数据格式都是什么样的?

topic主题,然后主题进行分区 topic 分为partition , partition里面包含Message。

41.kafka中存的一个是数据文件,一个是索引文件,说说这个?

。。。。。不太会。。。哇,kafka被虐惨啦

42.kafka 是如何清理过期数据的?

kafka的日志实际上是以日志的方式默认保存在/kafka-logs文件夹中的,默认7天清理机制,

日志的真正清理时间。当删除的条件满足以后,日志将被“删除”,但是这里的删除其实只是将

该日志进行了“delete”标注,文件只是无法被索引到了而已。但是文件本身,仍然是存在的,只有当过了log.segment.delete.delay.ms 这个时间以后,文件才会被真正的从文件系统中删除。

43.一条message中包含哪些信息?

  • 包含 header,body。
  • 一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成。
  • header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。
  • 当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、
  • 压缩格式等等);
  • 如果magic的值为0,那么不存在attributes属性body是由N个字节构成的一个消息体,包含了具体的key/value消息

44.嗯,行,你知道mysql的最左原则吗?

终于把kafka过去啦。。心累

最左原则:顾名思义,就是最左优先,比如现在有一张表,里面建了三个字段ABC,对A进行主键,BC建立索引,就相当于

创建了多个索引,A索引,(A,B)组合索引,(A,B,C)组合索引,那查询时,会根据查询最频繁的 放到最左边。

嗯 好,我的问题问完了,让我同事问问你。

已经问了40分钟纯问题啦,,再换个面试官,好的,可以

45,刚才我的同事问的都是大数据相关的,那我们问点java相关的。

终于问java啦,下面的java问题每个都回答出来了,就不写答案啦

46.说说抽象类和接口?

47,集合了解吧,说说集合有几大类,分别介绍一下?

48,hashMap顶层实现了解过吗?具体讲讲

49,说说hashMap在1.8之后优化的环节

50. HashMap 和 hashTable的区别?

51.另一个线程安全的是啥?

52.说说ConcurrentHashMap的底层实现

53.java实现多线程的方式有几种?

54.讲讲 synchronized,Lock,ReetrantLock之间的区别

55.java的线程大概有几种状态?

56.sleep 和 wait方法的区别?

57.说说volatile关键字

58.说说JVM内存区域分为几大块,分别讲一下

59.说说sql的事务隔离级别

60.说说mysql的存储引擎

61 给你出个sql 题

student(sid,sname,sex,class)

course(cid,cname,teacher)

grade(cid,sid,score)

1,sex 改为age,非空,默认值为0

2 统计035号课程分数大于036号课程分数的学生ID

3 统计所有003班学生各门功课的课程名称和平均分

以上是所有的面试题,在写sql的时候,卡了好久,因为好久没写过三表联查,子查询的sql,差不多忘了,

后来下线时,一度以为自己挂了,但是过了一个多小时之后,看了一下状态,面试一轮通过,可能是面试官

看我前面的问题答得还可以让我过吧。只是这问题量着实有点多。希望尽快约下轮面试。

多益网络 面经 时长58分钟 挂

1 自我介绍

2 重大项目管理平台介绍

3 你主要负责的是哪一块内容?

4 项目最难的地方在哪?

5 开发周期多长?

6 说一下排行榜公布的那个具体实现过程

7 团队合作中遇到什么问题?

8 对互联网加班有什么看法?

9 算法

将一个组数循环右移,根据K来

10 斐波那契数列,不使用递归的方式实现

11 那你说一下java对象的生命周期

12 说一下java的垃圾回收机制,和算法等

13 什么是递归?

14 使用递归 有什么优点和缺点?

15 说一下图的表示方法

16 图有什么分类,图论的分配法?

17 都有哪些排序算法?

18 哪些是不稳定的排序算法?

19 说说快速排序的原理?

20 最近看过什么书?

21 说一下三次握手

22 为什么要看 图解HTTP

23 问一些心态上面的问题? 如果你对你的上司不满意,你应该怎么做?

24 为什么面向对象中,多用组合,少用继承?

25 为什么选择广州?

26 你在做IQ题的时候,有没有没做完?

怎么感觉问完之后,问的好不专业。。。。什么都问了,技术面把hr面的问题都问啦

海康威视 一面 7月17日 通过

1 自我介绍

2 你认为最好的项目介绍

3 导入导出介绍,排行榜介绍

4 遇到难的问的,怎么解决的?

1 从eclipse转到idea 2 打包问题,3 数据库查询(索引) 4

5 sparkStreaming 消费kafka中的数据存在消费不到,消费丢失的问题。

6 Spark 介绍一下 分为哪些组件?

7 Spark Sql 和Hive 的区别?

8 SQL 的存储引擎

9 sql 的事务隔离级别

10 JVM 区域划分

11 垃圾回收机制 ,算法

12 hashMap 底层实现等

顺丰科技SP专场 一面

1.自我介绍 2.实习期间主要用的技术栈有哪些。(答java、spring、springMVC、mysql、gitLab、layui、easyui) 3.Spring主要的特点(提AOP和IOC),有啥好处? 4.说一下IOC 5.AOP的实现机制 6.动态代理 jdk方式与cglib方式 7.Spring中的事务具体怎么做的? 事务的传播性。 8.Mysql的事务隔离级别 9.读未提交与读已提交的区别 10.mysql事务如何保证持久性(提到undolog和redolog) 11.写这些日志文件有什么好处,为什么要先写日志文件而不是先做操作(面试官见我思考抢先答事务会追加到文件后边再做操作效率高巴拉巴拉) 12.mybatis怎么解决sql注入问题(提到#{}和${}) 13.mybatis的一二级缓存(二级缓存有些忘了) 14.springMVC处理流程 15.springMVC的好处在哪里(答代码解耦,面试官答:便于多人协作开发) 16.聊java基础,集合类有哪些类? 17.说一下hashMap底层实现原理(数组加链表) 18.hashmap的扩容机制 19.说一下什么叫哈希冲突 20.多线程线程池Executor框架了解么,为什么要引入线程池 21.线程池保持线程存活时间的具体参数关键词(答keepaliveTime) 22.任务队列满了以后再来一个任务如何处理(执行拒绝策略) 23.JUC包里的东西,有哪些常用锁(答Synchronized,reentrantlock,CAS等等,面试官答原子类等等) 24.原子类底层了解么,比如AtomicInteger 25.转操作系统,问操作系统有几大模块, 26.RPC进程通信方式有哪些方式(答pipeLine,信号量) 27.聊网络,网络分层结构,大概每层的主要工作是什么 28.网络层的主要功能(答路由),运输层TCP的主要核心(答可靠传输) 29.数据链路层最核心参数 30.聊常用算法,说一下hashmap的红黑树 31.红黑树上的红节点主要是干什么的 32 红结点和黑结点区别,为啥是红的,黑的 33 红黑树为啥部分平衡。 34 红黑树怎么旋转?

室友字节跳动四面

之前投过游戏场的,好像笔试没过(????)后来显示已结束就联系群里HR小姐姐帮我捞出来,

没想到被测开岗捞走了,我是做java后端的,HR告诉我测开也是偏后端的,所以我就试试,经过了几天的

面试,在这过程中整个人非常焦虑。。。废话不多说,先上面经。

一面 53分钟(项目 基础 算法)

一面约的是晚上19.30,整个人很紧张很紧张,结果面的是一个年轻的面试官,人很好。

1.简短的自我介绍。

2.介绍我的项目,balabala讲了大概20分钟,中间穿插着细节提问,有业务方面的,有技术方面的。

3.说一下悲观锁与乐观锁。

4.说一下http和https的区别。

5.TCP和UDP的应用场景。

6.http请求头包含哪些字段。

7.斐波那锲数列了解么?(了解)。

8.动态规划相比递归来说有什么优点。

9.算法题,判断镜像二叉树。(用递归写得)

10.分析一下算法的时间复杂度,空间复杂度。

11.redis了解么,如何进行redis页面缓存。

12.项目中日志是如何实现的。

13.项目中前端向后端传数据是怎么传的。

14.hadoop的数据包是基于什么协议的。

15.项目中登录功能如何实现的,使用了哪些技术。

16.cookie和session的区别。

17.反问。

二面 50分钟左右(项目 网络 数据库 算法)

一面面试完以后看起来面试官很满意??(哈哈,小哥哥人真的不错),直接给我安排了二面,让我等等,

两分钟后二面面试官上线,

是一个年龄30出头的面试官,看起来有点严肃,立马紧张起来(0.0)

1.简短的自我介绍。

2.简单的问了下实习期间做的一个大数据平台项目。

3.网络五层。

4.应用层常见协议。

5.http协议返回状态码(1xx-5xx)(之前复习了2-5的,面试官说1呢?我说没有1吧哈哈哈,后来想起了,尴尬)

6.Https有哪些改进。

7.数据库优化方面(比如数据库慢查询),我回答了一大堆,起始面试官想问建立索引表的方式

8.索引的左对齐原则/最左原则(这个是真没复习到),卡了很长时间,感觉面试官有点不耐烦了…

9.算法,大概就是传递东西,只能向左右手边传递,小朋友0向右传递,传递n次后最后回到小朋友手里,问传递路径,

一个动态规划问题,感觉好难,做了大概一半,

面试官问我思路,我也没怎么回答上来,后来面试官直接开始给我讲解开来哈哈哈(后来下来查,蒙对了一部分。。。)

10.反问。

三面 57分钟(算法 JVM底层) 面试官气场很强,我变得很紧张很紧张。。。

一二面面试连续,二面到9.20结束,面试官说等下我给你叫三面,可能是太晚了都下班了,我在那傻等了一个小时

没有任何反应,啊哈哈,第二天给HR打电话帮我约的第三天的

下午两点三面。

1.手撕单例算法

2.单例模式中对象什么时候初始化

3.JVM构造

4.基本数据类型(比如int i)在内存中是怎么存的

5.类对象什么时候加载的

6.static方法和非static方法的区别

7.static的原理(没答出来)

8.手撕:一个整数型数组,判断是否存在一个数,这个数前边的数比小,后边的比它大,返回这个数的下标

(使用标记数组做)

9.ArrayList的属性length存在与内存的什么地方(哭死,这都什么问题嘛….)

10.对这个算法如何优化,使它的空间复杂度变为O(1)(使用自定义变量对这个数组一次遍历存储,

大概说了下思路)

11.设计题:写日志类满足多线程向文件中写日志,设计一下需要实现哪些方法,说一下大概思路。

(多线程刚开始说放在线程队列里,面试官说那不是线程阻塞了么,后来想到

使用时间片,设定一个变量例如赋值5ms,时间片使用结束后挂起,让下一个线程写,轮循写。

面试官说OK,我也不知道他满不满意ing….)

12.问实习公司以及实习情况。

13.希望工作的base选择

14.从哪了解的测开岗位。

15.反问,技术栈,有几次面试。

三面结束我以为会另约时间,给HR打电话说在房间等着,还有一次面,我….

四面 35分钟(项目 java基础) 感觉面试官问问题间隔时间有点长,感觉在拖时间?(小声BB)

1.自我介绍。

2.又把一面的项目讲了一遍,balabala

3.将项目细节问了一些,比如排行榜的评分算法。

4.对于项目的多用户高并发高访问量的解决办法。

5.横向扩展系统(面试官问的Nginx负载均衡,说了半天才说到点上。。)

6.使用过哪些java框架。

7.实习项目:大数据平台又介绍了一下。

8.集群维护遇见了哪些问题,怎么解决的。

9.如何使用HQL对Hive中数据进行处理。

10.从输入url到页面渲染中间过程,如果网络距离太长,怎么解决(我说使用路由器转发,面试官说算了,不了解也无所谓???一脸懵逼….)。

11.java的GC算法。

12.聊了一下硕士期间的课题,我是推荐系统方面的,面试官跟我聊了一下电影推荐系统的系统设计,包括架构,

推荐算法等等。

13.java零拷贝(一脸懵逼,不会),面试官看我卡了一会,说没关系,这个不会无所谓…(第二次无所谓….)

14.linux操作:怎么看应用的cpu使用率(回答top命令)面试官:OK

顺丰科技 1面 技术面 时长30分钟 7月30号

1 自我介绍 (介绍完之后,面试官哈哈哈哈哈大笑,你这很熟练啊?) 2 项目介绍 3 说一下垃圾回收和算法(讲完之后,来一句,你这背的很熟啊?,我说我理解啦?,然后他来一句为啥要理解,啊??) 4 说说Spring 5 Springboot和Spring的区别(自己加的,是怎么简化的,底层如何实现的) 6 redis数据结构,持久化方式 7 mybatis 如何获取自增ID 8 mybatis 一二级缓存 9 设计模式工厂模式讲讲 10 我讲完了,你有啥要问的吗? 问了几点 1 面试流程是啥样的,一面多久能收到通知, 2 和面试官闲聊,哄得他眉开眼笑,哈哈哈

顺丰科技2面 HR面 30分钟 8月9号

1 自我介绍 2 职业规划 3 报学校专业是怎么考虑的? 4 工作城市 5 你是独生子女吗? 6 那你有女朋友吗? 7 那你们出来面试都了解过哪些企业? 8 有没有offer? 9 说说你的优缺点? 10 到后期你们每个人手上有好几个offer,哪些因素决定你们选择这家公司? 11 你更倾向哪种公司?有什么特别的点? 12 你大学有没有特别难忘的经历或者项目分享一下的?

顺丰科技 3面 技术面 一小时 8月12号

1 自我介绍 2 大数据项目介绍 3 说说你对Kafka的理解 4 kafka的消费者组跟分区之间有什么关系? 5 kafka有5个消费者,4个分区,是如何消费? 6 kafka的分区有哪些方式,分区算法? 7 数据清洗的流程 8 数据清洗之后是落到哪里,数据量大吗? 9 redis数据如何和mysql的数据保持一致 10 重大项目管理平台讲讲? 12 导出功能如何根据自定义功能导出? 13 还有其他什么方式可以实现导出功能? 14 数据库设计遇到什么问题?

问点java方面的知识 15 集合中 arrayList 和linkedlist有什么区别? 16 hashMap 说一下 17 hashMap 为什么设置初始化为16 18 hashCode 怎么对应桶的位置? 19 concurrentHashMap有什么特点? 20 线程同步有哪些方法? 21 线程同步使用哪些锁? 22 有一个场景,现在一张表有几十万的数据,然后10个线程, 对它并发计算,然后计算完了之后通知,该怎么设计?(每个线程处理每个 线程的事情,然后做个通知) 23 说说分布式锁? 24 SpringAop 用过吗?

25 JVM内存管理核心算法

顺丰算是面完了,接下来就等通知啦

浙江大华 一面 20分钟 8月 12号

1 自我介绍 2 SparkStreaming 如何保证消费kafka的数据不丢失等? 3 说说集合你了解哪些? 4 hashMap讲讲? 5 自己实现了一个对象,然后重载在hashcode方法,这个时候还要不要重载其他方法? (需要重写hashcode 方法和equals方法) 6 在多线程环境中,然后保证使用的对象时线程安全的?(通过加锁) 7 虚拟机的堆内存分为哪几个区? 8 堆里面主要干什么? 9 堆里面能不能细分到哪些区? 10 不同的区使用的算法都是一样的吗? 11 springboot 和Spring的区别在哪? 12 Springboot是如何简化哪些配置,具体是怎么实现的? (和SpringbootApplication 注解相结合,在main中通过调用run方法来加载 监控任务执行时间,创建应用上下文,程序运行参数等相关配置)

浙江大华二面 8月19号 时长37分钟(本来约的17号,面试官时间给忘了,第二天还专门打过来电话道歉,感觉面试官真的很好?)

1 自我介绍 2 自己都搭建过大数据集群吗? 3 如何搭建的集群,举几个例子介绍一下?跑过哪些项目? 4 说说Spark的工作机制 5 说说Spark的合并操作 6 项目介绍,举一个例子项目难点,如何解决。 7 分割数据使用什么进行分割? 8 输入的类型和输出的类型分别是什么? 9 输出的结果存储到哪里? 10 那Hbase的表结构是什么样的? 11 表中的key是什么,value是什么? 12 你哪些原始日志是哪哪块采集过来的? 13 另一个项目介绍一下,解决什么难题? 14 数据库优化做了哪些操作? 15 项目中使用了redis,如何操作的,为什么要使用redis? 16 怎么解决双写一致性? 17 使用的用户量是多大? 18 假如用户量大的情况下,那会出现哪些性能瓶颈? 19 redis的并发是多大? 20 项目中如何使用多线程?举个例子 21 那累加的线程如何和其他线程做交互的? 22 线程安全的容器有哪些? 23 java虚拟机里面的垃圾回收机制有哪些? 24 项目中有没有用哪些工具看过进程中有哪些线程,JVM内存的情况。 25 场景题

HR面 16分钟 8月22号

1自我介绍 2 工作的意向城市 3 刚才在面试哪家公司? 4 现在进度最快的公司是哪家? 5 拿到哪几家offer,是否谈过薪资等 6 实习了多久,介绍一下印象最深刻的项目 7 你了解互联网这边的薪资一般是多少?(说的25万左右) 8 你的兴趣爱好有哪些? 9 我们这边西安也有分公司,看你对地点这块有什么要求没? 10 因为你面的是提前批,所有offer会在九月出发出。

整个大华面试下来感觉没有太大压力,非常愉快,二面面试官项目这块问的还算可以,自己也答出来了,问我想去哪个岗位, 说他们大数据这块有四个方向。和HR小姐姐也聊得挺开心,希望一切都顺利,可以收到意向书吧。求一波offer

阿里 一面 8月12号 23分钟

1 自我介绍 2 说说垃圾回收和相应算法 3 那并发量很高时,使用哪种算法?(复制算法) 4 介绍一下项目 5 那你在这个项目中最大的成就感是什么? 6 那你开发项目主要的优势在哪?(怎么感觉不像是面试,在聊天,哈哈哈) 7 在网页上输入一个URL,说说它所经历的过程(DNS寻址,TCP连接,Http请求,http响应,页面渲染,TCP关闭连接) 8 很多服务器,那请求落到哪台服务器上,是通过什么策略?(通过nginx的ip_hash策略) 9 平常有没有了解一些新知识(docker,springcloud) 10 hashMap实现原理 11 个人规划 12 那你现在的技术薄弱点在哪里,怎么去突破? 到我提问 1让面试官讲了一下新零售事业部主要做哪一块, 2面试流程

阿里 二面 8月 20号 时长55分钟 凉透????

1 自我介绍 2 竞赛介绍 3 数学建模竞赛介绍 4 论文介绍

20分钟过后,

接下来的35分钟 我感觉自己经历了一次痛切心扉的打击,?? 面试官不问问题,他说让我自己说自己擅长的,然后他深入去探讨,看 我解决问题的能力,我说好。。。。。。。?

我说我集合这块还行, 他问,那你知道hash的实现机理是啥?他能带来哪些好处?通过我的回答,他接着问,B 树索引的核心在于什么? 我们知道树有很多种,为什么要选择b 树,而不选择其他?数据库索引有很多种,哪一种索引对应的是b 树实现的?

图的算法你清楚吗?最短路径问题,最少成本问题?(说完之后,面试官说,为啥你们现在学习的时候,不在一些深度上做一些努力, 看得都比较肤浅,这对你们以后的发展有很大限制??)

接着问我java哪些比较熟悉,我说集合,多线程,JVM等都可以聊聊,他说 那你说说你在里面用的哪些技术比较有挑战性的问题,我们聊聊, 聊概念没啥意思。。。。?整的我不会说啦我准备说项目中用到哪些技术,他打断了,说未必是项目中的,就说你体会到的。。。。 我说线程吧,就聊多线程并发,然后他听完我说的,然后说那你在项目中有用到JVM吗? 项目中开发你的垃圾回收算法用的哪一种?(我说复制算法, 他听了之后说 what??? 啥? 我说复制算法,他接着说 啥?复制算法? 我咋没听过,我说copying,他说还是不懂,。。。。。我就讲了内容等)说完之后, 他说算了我觉得你这块没理解,我们换个话题。。。。。。

那我们聊聊数据库事务吧,你知道分布式事务吗?什么是两段式,三段式,你用过吗? 你们应该都做过研究吧?这都是最基本的问题,你应该都会把。它的实现原理是什么?

好吧,我一句话还没说,面试官替我说完啦。。。我说完,面试官说那我们换个话题, 你对这些不了解。。。。。 java的设计模式你知道哪几种? 你讲一下什么是修饰者模式?应用到哪些场景?或者 策略模式,这两种都讲一下。我说完之后,又说了一句,那我们换个话题,你对这不了解。。。 我下去还专门听了一遍录音,我回答的哪里有错了。。。。

那我们再换个话题,那就问个本质,为啥String这个类型是不可变的对象,原理是什么?

那BIO 和非阻塞式IO有什么区别,它具体是怎么实现的?

上面的问题回答完之后,就50分钟了,面试官说时间差不多啦,你有啥想问的。我当时听完 内心真的很崩溃, 不是我不会,而是他全程那个语气真的是很牛逼很牛逼那种,不屑的语气,我回答一个,他说我觉得你这个不太会,我们换一个 换题等等。连说了好多遍,你全程也没问几个问题吧,面完我就知道我凉透了,当时也没抱着进三面的想法 就换了个语气,说那个我们也面完了,一般面试完都不会问面试官对我的评价,因为我觉得那很不礼貌,他说没事没事,然后他就说, 说实在的,你们研究生啊,就应该多做做啥啥啥,巴拉巴拉5分钟,我全程在听它对我的“批评”,我脸上笑嘻嘻,嗯嗯,我知道,态度贼诚恳, 把他夸了一遍,说真的太感谢面试官您啦,对我真的是用心良苦啊,我会好好虚心接受您的教诲,然后就挂了

阿里 一面 8月 22号 时长 63 分钟

20号面完二面之后,当时觉得凉透啦,也没抱什么希望,但谁知道22晚上8点又打过来电话, 说做个面试,问我方便不,我说可以,面了有20分钟左右,我问这是一面还是啥,面试官说

对,之前那个挂了,然后我们这边捞过来的,我的天??? 不会是那个面试官发了个慈悲吧

…………………………………………………………………更新……………………………………………………….

1 自我介绍 2 论文介绍 3 Spark流式计算过程 4 Spark如何进行分桶 5 SparkStreaming 和MapReduce比较,提升的性能在哪? 6 SparkStreaming 的实时体现在哪? 7 简单介绍一下单例模式 8 简单介绍一下工厂模式 9 说一下代理模式和策略模式 10 JVM内存模型简单介绍一下 11 哪些是线程私有,哪些是线程共有 12 哪个不会发生内存溢出? 13 方法区产生内存溢出怎么判断? 14 类加载存在内存中的哪一块?(类的元数据在方法区,class对象在堆区。) 15 垃圾回收的一些算法 16 年轻代,老年代分别用什么算法? 18 创建一个线程有几种方式? 19 怎么启动一个线程? 20 JDK里面 线程池的定义 21多线程里面,有什么机制可以保证线程安全? 22 voletile如何保证线程安全? 23 那使用voletile 有什么缺点? 24 synchronized用到静态方法和非静态方法有什么区别?(修饰静态方法, 作用于当前类对象加锁,修饰非静态方法,作用于当前对象实例加锁) 25 threadlocal了解吗? 讲讲这个 26 threadLocal 一般是怎么区分的?不同的线程之间是怎么隔离的?

蘑菇街一面 java开发工程师 44分钟 凉经

1 自我介绍 2 说说JVM原理、内部分配 3 new对象的过程 4 new一个对象时是如何知道给它分配多大的空间?(JDK64位,创建一个对象占24字节,32位 占12字节) 5 项目介绍 6 说说HDFS (跳跃很快啊) 7 HDFS写操作 8 写操作中如何判断客户端向哪一台datanode中上传第一个block块。(通过就近原则) 9 那客户端是怎么通过距离来判断哪台datanode 离他近或者离他远(看客户端到达datanode 之间的网络跳转的次数来判断,如果在同一个路由器下面,那距离都一样,直连,只需要跳转一次) 10 第二次上传block块根据什么原则?(就远原则,保证安全性,防止全部上传到一个机架上,如果机器坏了,数据就会丢失等。) 11 场景题 过滤出评论中的敏感词 (想法1:通过正则表达式) (想法2:布隆过滤器) (想法3:通过和b 树类似的字典树(DFA算法)来实现,字典树的每个节点保存每个字符, 那他所形成的路径就代表一条一条的字符串,进行查询时,如果匹配到敏感词的字符串,那就过滤出去)。 12 Spring IOC、AOP底层实现 13 Spring ioc中的单例模式和原型模式适用场景,什么时候用单例模式,什么时候用原型模式。 14 我看你对大数据比较了解,那你说说Spark(spark的内部构造,实现原理,解决了什么问题,运用场景等) 15 MapReduce 设计时为什么要设计成 map,reduce的操作,它解决了什么问题。 16 说说kafka的原理

17 服务端从kafka中去拉数据,服务端的空间永远是有限的,拉完怎么判断所有人都拉完了?

上述的问题基本都答出来了,但是不知道为啥挂了,可能要求很高。???

滴滴一面 后端面试 8月23日 56分钟 凉凉

因为项目中 1 自我介绍 大数据: 2 spark任务的执行流程 3 Spark任务调度有几种方式?(任务是怎么分配给executor)(调度算法) 4 Spark任务分配方式有几种方式? 5 yarn的资源调度? 6 宽窄依赖具体讲讲 7 宽依赖是不是要进行shuffle 8 shuffle操作有几种方式 9 Spark任务产生小文件太多,该怎么处理?(合并小文件的方式有几种) (例如sql,函数,distrubutedBy) 10 hive如何实现UDF的详细过程(客户端继承UDF类,然后打包 ) 11 hive sql解析看过吗? 12 Spark sql解析有哪几个步骤? 具体如何操作的(spark内核的sql解析) (把sql如何拆成多个job)

java技能 1 线程的状态有几种? 2 等待有哪几种方式? 3 常用的线程池有几种? 4 定时的线程池有几种? 5 Spingboot部署的时候用的哪个容器,内部用的哪个线程池? 6 多线程过程中用过哪些锁? 7 锁主要分为几大类? 8 synchronized底层是怎么实现的? 和其它锁有什么区别? 9 Lock锁讲讲 ReenTrandLock讲讲? 怎么优化这个重入锁?(通过编译器方式优化) 10 比如嵌套锁嵌套了好几层,编译器如何优化这些代码? 11 锁优化有哪些方式?(锁消除,增大粗度等) 12 锁消除通过什么参数可以控制? 13 数据库事务有几种?(数据库隔离级别) 14 事务的传播机制?(7种) 15 事务嵌套开启一个事务,用那种传播机制?(required) 16 继承上一个事务(使用support) 17 搭一个通信框架(使用tcp) 用socket编程搭,客户端、服务端等。 18 NIO了解过吗? 怎么做的优化? 分为几个阶段?每个阶段是做什么的? 19 RPC了解吗?常用的RPC框架有哪些?(基于二进制协议的)如(dubbo) 20 任务调度有用过吗?(使用springBoot如何快速创建一个定时任务(用一些组件))

21 底层如何实现调度的?

滴滴面试,简历上写了大数据知识点,刚好面的那个部门是搞金融风控的,还是对Spark源码进行开源的,撞枪口啦,

后期大数据复习的比较少,挂了也无怨了,状态变为待笔试,还好秋招还有一次机会。

腾讯一面 8月24日 65分钟

1 自我介绍 2 简单介绍一下项目中引用Springboot是解决了什么问题,有什么优点? 3 mybatis和hibernate框架有什么区别? 4 使用muybatis有没有用到om对象?

问了一下我主攻的语言是啥,我说java语言

5 java语言中 重写和重载有什么区别? 6 我看你用到kafka,kafka主要解决什么问题呢? 7 kafka如何实现消息是有序的? 8 kafka如何实现多线程的消费? 9 hashmap和hashtable 有什么区别? 10 简单介绍一下java的生命周期有哪些阶段吗? 11 对数据库了解吗? 一个场景,现在数据库执行过长,如何对它进行优化? 12 简单谈一下数据库中的悲观锁和乐观锁怎么理解的? 13 说一下数据库有哪些索引类型,有什么优缺点?(主键索引) 14 谈谈数据库的事务(ACID特性)

开始问操作系统啦 15 操作系统的划分有哪些? 16 什么是死锁?死锁产生有哪些条件?(互斥条件,请求与保持条件,循环等待条件,不可剥夺条件) 17 进程间通信有哪些方式?(管道,信号量,信号,消息队列,共享内存,套接字等方式) 18 tcp协议有哪些计时器?它分别是做什么的? 19 操作系统之间有用户态和内核态,他们之间有什么区别? 20 为什么需要内核态?什么时候进入内核态? 21 有用过内存缓存吗? 如redis 22 redis是通过什么方式进行持久化的?(RDB和AOP)

网络知识 23 tcp协议的三次握手 24 hppts的协议了解吗?

数据结构 25 介绍一下有哪些常见的算法,并且哪些是稳定的,哪些不稳定,以及时间复杂度 26 对云计算有了解吗? 27 比如云计算有哪些服务和应用场景 28 AWS 了解吗? 算法题 26 拆分子数组 leetcode 410 给定一个由非负整数和整数m组成的数组,可以将数组拆分为m个非空连续子数组。

编写算法以最小化这些m个子阵列中的最大总和。

总体来说 问的问题都属于简单的问题,都算答出来了,代码题也写出来了,希望能进二面

growingIO 8月30号 一面 时长1小时40分钟

1 自我介绍 2 三个项目分别介绍一下 3 说一下你们的权限设计 4 说一下每个项目的技术栈 5 前端采用什么设计的?(没有采用前后端分离的思想,用的html css jquery ajax) 6 sql优化,刚开始是怎么做的,后期又是怎么去优化的?

7 说一下mysql的索引类型(主键索引,唯一索引,普通索引,全文索引) 8 hash索引的使用场景是啥?(只能用于”=”的过滤,不能用于范围查询,不能避免全表扫描,不能利用部分索引键查询) 9 如果使用like查询,会不会走索引?(一部分会走,一部分不会走,只有不以%开头的时候,才会使用到索引,例如’前%’ 走索引,’%前%’ 不走索引,’%前’ 不走索引) 10 有没有使用 explain字段去分析sql语句,它有哪些字段(使用explain分析时,重点关注几个字段: type:这是一个非常重要的参数,连接类型,常见的有:all (全表扫描), index(全索引文件) , range(只检索给定范围的行) , ref (非唯一索引扫描,即返回所有匹配某个单独值的行), eq_ref (唯一性索引扫描,对于每个索引键,表中有一条记录与之匹配), const(表示通过索引一次就可以找到) , system(表只有一条记录) , null 八个级别。 key: 显示查询语句实际使用的索引。若为null,则表示没有使用索引 rows :根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要读取的行数,值越大越不好) 11 Springboot 返回json字符串的话 使用哪个注解?(RestController) 12 mybatis 如何使用的?(通过xml 和注解式两种方式 对于小系统而言,使用注解式快速,简单,缺点是SQL有变化时都需要重新编译代码) 13 mybatis 如何防止sql注入 14 mybatis 缓存用过吗? 一二级缓存 15 mybatis 如何实现批量插入(在xml中使用foreach循环插入,), 批量删除( #{item} ), 批量更新(foreach实现循环插入)等的语句 16 说说hashMap 17 为什么初始值16,以及为什么扩容是2倍 18 hashMap源码 扩容是怎么实现的(resize,rehash) 19 hashMap 是线程安全的吗?(不是,因为HashMap在put的时候,插入的元素超过了容量 (由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中, 在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环, 导致在get时会出现死循环,所以HashMap是线程不安全的 20 线程池有哪些核心参数(corepoolsize,maximumPoolSize,keepAliveTime,unit,workQueue) 21 创建一个定时任务的线程池用哪个(newScheduledThreadPool) 22 创建线程池的好处? 23 类的生命周期知道吗?(加载-验证-准备-解析-初始化-运行-卸载) 24 单例模式说说? 25 单例模式的缺点和特点(缺点:没有接口,可扩展性不强) 26 JVM内存分配 27 JVM垃圾回收一般什么时候出发minor GC 28 redis有哪几种淘汰策略?(6种淘汰策略 volatile-lru:从设置了过期时间的数据集中,选择最近最久未使用的数据释放。 volatile-random:随机选择一个数据进行释放 volatile-ttl:选择马上就要过期的数据进行释放操作 allkeys-lru:从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放 allkeys-random:随机选择一个数据进行入释放 noeviction:不删除任意数据(但redis还会根据引用计数器进行释放),这时如果内存不够时,会直接返回错误。) 29 redis实现生产者消费者模型(使用list数据结构 lpush 放数据,rpop拉数据) 30 redis实现生产一次,消费多次 31 redis 有几种数据结构(五种,string,hash,list,set,sorted set) 32 set 和sorted set 有什么区别? 33 分布式锁有没有使用过?(使用setnx()方法,expair()方法) 34 如果redis中有1亿个key,其中有10万个key是已知的固定前缀的key开头的,如何 将他们全部找出来?(使用scan命令 scan cursor match pattern count count 例如: scan 0 match k1* count 100 ) 35 为什么不用keys命令?(会使内存卡顿,服务器消耗过大) 36 缓存雪崩,缓存穿透,缓存击穿都是怎么造成的,有什么解决办法? 37 重载和重写有什么区别? 38 jdbc的使用流程?(1 注册数据库驱动 2 建立数据库连接 3 创建一个Statement对象,4 执行sql语句,5 处理结果集,6 关闭数据库连接) 39 现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?使用join操作 ( Thread t1 = new Thread(new ThreadTest(“T1”)); Thread t2 = new Thread(new ThreadTest(“T2”)); Thread t3 = new Thread(new ThreadTest(“T3”));

t1.start(); t1.join(); t2.start(); t2.join(); t3.start(); t3.join(); ) 40 什么是java中的原子操作?(所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch) 41 什么是悲观锁和乐观锁? 43 数据库中如何实现乐观锁?(通过版本号version 和行锁) 44 数据库中如何实现悲观锁?(通过加排它锁实现 例如 select * from A where id=1 for update) 45 java中实现悲观锁?(通过synchronized,reentranlock 实现) 46 java中实现乐观锁?(通过CAS算法实现) 47 说说二分查找?以及里面注意的关键点 48 说说快速排序,如何实现,如何去做? 49 等比数列如何求递推公式?

9月3号

博主是属于2020届应届硕士毕业生

从九月份开始再也没有寻找工作,因为前期的面试使我已经拿到了7个offer,分别为

1 海康威视大数据开发岗

2 顺丰科技大数据开发岗

3 快手数据研发岗

4 大华 大数据开发岗

5 哈罗 java开发岗

6 金山云 大数据开发岗

7 用友 Java 开发岗

最后选取了海康威视研究院 大数据开发岗。 如果有想了解大数据的技术,有兴趣的可以联系私信博主,要一下联系方式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234834.html原文链接:https://javaforall.cn

0 人点赞