华为数通软开面试常见题

739 阅读4分钟

八股部分

网络相关

ARP协议

数据结构

如何用数组模拟二叉树的遍历过程

两个队列可以实现一个栈吗

我觉得可以,就是拿另一个队列兜住出队元素,出到的最后一个元素就是出栈元素。

深入分析二分法,深入分析归并排序

操作系统相关

进程和线程的区别

数据库相关

Linux相关

Java 相关

java中的双亲委派能说一下么?有什么问题?那些地方需要打破?

tomcat里的类加载机制了解吗?也是双亲委派机制吗?

Spring 相关

spring框架中的设计模式了解过吗?

spring中的注解底层原理是什么(注解是根据 JavaConfig实现的)

JDBC打破双亲委派

什么是 SpringBoot 自动装配? blog.csdn.net/u014745069/…

SpringBoot 是如何实现自动装配的?如何实现按需加载?

如何实现一个 Starter?

utf-8、GBK这些编码格式之间有什么区别?

红黑树插入删除

你怎么看待华为奋斗者文化?

算法部分

问还记不记得笔试的题目,后面有没有在深入的去优化这个代码X2

讲一下第一题的思路

判断回文字符串

有效括号

求连续数字删除几个后得到的最大数字?

四个坐标算是不是正方形

查证:力扣593 有效的正方形

解法:使用HashSet来做,将所有的长度放进hashset,看看是不是只有两种长度(边长和对角线)

删除链表的倒数第k个节点

给你一个M×N的矩阵, 只能向右、向下走,问从左上角到右下角有多少种走法。

判断括号匹配

复原IP地址

最大的不重复的数字

最大数

查证:力扣179 最大数

对于每两个位置的数,我们拼接o1+o2 和o2+o1,并且比较这两个结果的大小,更大的那个顺序,就是o1和o2在结果中的相对顺序。根据这个排序方式对整个字符串数组进行排序。

image.png

leetcode 445 两数相加 ii

因为数是逆序存在链表中的,第一个是最高位,所以把两个链表都压入两个堆栈里面,然后再依次往外拿,注意处理进位就行

每日温度

判别是否需要使用单调栈,`如果需要找到左边或者右边第一个比当前位置的数大或者小`,则可以考虑使用单调栈;单调栈的题目如矩形米面积等等

行星碰撞

维护一个栈,栈里面保持一个性质,向左的都在左边(可以没有),右边的向右(也可以没有)。新加入的如果是向右,则直接添加到栈里,如果向左,就开始轰炸栈里面向右的元素,直到炸完栈中向右元素或者自己被炸。

岛屿数量

标准的dfs,维护一个与地图一样大的visited数组,记录路径,保证让每个节点只会被访问一次(可能是入口或者dfs的时候触及)。

优化:找到一个单位的陆地,就让它被水淹没,

项目部分

1.你在项目中有没有遇到什么问题,你是怎么解决的?举个例子?(X2)

2.用户登录的session如何解决分布式的问题

  • 放在客户端

缺点:安全性/cookie长度,类型收到限制/如果cookie过大,增加网络通信消耗

  • Session复制

放在一个机房,在一个网关内用广播的方式进行同步

  • Session绑定

使用Nginx ip-hash,让一个ip地址只能被一个服务器服务

缺点:容易出现单点失败

  • 用Redis存储Session

image.png

3.在实际项目中cookie和session是如何配合的?

关于Session: Session 不是一种实现,不是Http协议的实现内容,而是一种架构。广义上来说它是服务器用来保存用户状态的解决方案。狭义上来说 ,由于各种用于web开发的语言在一定程度上都提供了对这种解决方案的支持,所以在某种特定语言的语境下,session也被用来指代该语言的解决方案,比如经常把Java里提供的 javax.servlet.http.HttpSession简称为session

举例:

org.apache.catalina.session的存储结构

image.png

Tomcat中实现了session

  对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap; 

4.你是如何实现注册功能的

5.项目的开发流程

智力题部分

有一块金子,一个工人干7天才能得到这个块金子,但是现在这个工人想日结工资,问你怎么分割这个金子?只能将金子分成3块(1/7、2/7、4/7)