华为公共开发部Java开发面经

一面 40min

项目相关

你有很多线程(大于1000),但是你只有16个内核线程,这有什么问题吗?

(线程切换带来的消耗)

泛型是用来做什么的?

用过泛型吗?稍微讲讲

线程池的核心线程满了以后什么情况下会新增线程

线程安全的集合

用过什么设计模式?

ThreadLocal介绍一下

我看你用过Springboot,SpringBoot的Bean怎么加载?(完全没有复习

有用过数据库吗?(直接答没怎么用过

算法题:给定一个数组gropuSize = [1,3,3,3,3,3,3];

groupSize[i]=size, 表示i从属与一个size为3的group,打印出一个可能的组

[0],[1,2,3,],[4,5,6];

思路:HashMap+一次遍历。

本来觉得一面回答的不好,感觉可能没机会,没想到居然过了,觉得很走运。

二面 1h30min

项目相关

HashMap的内部结构

HashMap怎么实现O(1)的数据查找?

HashMap求index怎么取模呢?(答位运算,n - 1 & hash, n为hashMap容量)

Java有哪几种锁?

讲一下读写锁

synchronized和读写锁有什么区别?

volatile怎么实现原子操作(答volatile的内存语义

CAS又是怎么实现原子操作的呢?

AutomicInteger的原子自增怎么实现的

我看你用过Springboot,讲一下对象加载(实在没复习到)

说一下序列化和反序列化

为什么不存储二进制信息而是存储对象信息?有什么好处?

用过什么设计模式吗?

讲一下开闭原则

用过UML吗?说一下继承、组合、聚合

多线程中如何实现先完成几个线程在继续工作?(答CountDownLatch

还有呢?(Thread.join)

用过数据库吗?讲一下数据库中的索引

为什么用索引很快?

说一下死锁

如何检测死锁?(答环路检测

实际开发中怎么发现死锁呢?

算法题:

1.对于一个String,存在字母,+/-,数字,求出第一个整数,整数不会溢出。

条件判断+遍历

2.在上一题的基础上,求出所有整数,整数会溢出。

使用StringBuilder存储整数

3.在上一题的基础上,求出所有整数之和。

有两种情况,同符合相加,不同符号相加。

同符号比较简单,逆序遍历+进位信息。

异符号其实也类似,逆序遍历+借位信息。(可惜时间不够,只给面试官讲了思路)

最后使用归并求和。

二面结束很快就通知二面通过了,今天的面试官人都很好,给我的感觉非常不错,这也是最近面试进度最好的了。希望后天的主管面也能通过,许愿OC。

#华为##面经##java工程师#
全部评论
为什么不存储二进制信息而是存储对象信息?有什么好处? 这是啥意思哇
点赞 回复 分享
发布于 2021-09-16 20:52
lz投的哪个城市的?
点赞 回复 分享
发布于 2021-09-17 16:14
同18号主管面,共同许愿
点赞 回复 分享
发布于 2021-09-17 16:52
粤港澳地区的同学欢迎来我这,一样的公共开发部,一样好的面试官 联系方式:15012592693  (微信同号),注明来自牛客网 目前岗位空缺比较大,其他部门没通过的也欢迎来我们部门试一下
点赞 回复 分享
发布于 2021-09-17 17:13
楼主是投的通用软件开发吗?为什么我一面1h,二面30min呀😥
点赞 回复 分享
发布于 2021-09-20 15:14

相关推荐

3 32 评论
分享
牛客网
牛客企业服务