当前位置:网站首页 > Java基础 > 正文

华为java面试题(华为java面经)



2022年毕业,本科专业​​机械​​​设计制造及其自动化,自学了一个学期Java​​后端开发​​​,毕业后在培训机构学习,无工作经验,由机构老师投递​​华为​​OD,面试经验分享。

机考:

机考总共有三道题,前两道简单题,各一百分,最后一道困难题,200分,机考平台​​牛客​​网。

  • 第一题:有点记不太清了,好像是将字符串重复出现最多的字符打印出来,使用hashMap就可以解决了。
  • 第二题:停车场问题,一个1表示小轿车,两个1表示大巴车,三个1表示大卡车,0表示空。给一个由若干个1和若干个0组成的数组(如{1,0,1,1,0,1,1,1,1,1,0})表示的停车场,求这个停车场最少由几辆车。解题思路:我们只需要让车尽量大就可以了。遍历数组,使用一个临时变量来存储当前累计的1的个数,当计数到达3或者获取到0的时候,临时变量清零,并把车辆个数加一。数组遍历完成后检查临时变量,如果临时变量不为1,则计数再加一(因为当数组不以0结尾或者最后只有不到三个1时,就会出现一辆车没有被计数)。
  • 第三题:给一个由0和1组成的二维数组,1表示当前列和当前行对应的两个服务器是连通的,0表示不连通,求至少需要几个服务器发送消息才能使整个集群都获取到消息。解题思路:其实这个题目就是给一个邻接矩阵,求有几个连通图。可以采用深度遍历的方法,将相连的服务器都存放在一个集合里,最后集合的数量就是需要几个发送消息的服务器。

机考结果会在第二天出来。

心理​​测试​​:

题目比较多,有一百多道,在三个选项中选出一个最符合的和一个最不符合的。答题的时候以积极乐观的心态去选择,尽量保证前后一致。答完马上就可以查结果了。

技术一面:

技术一面是由本部门的人来面试(就是将来的同事)。先做了个自我介绍,然后根据我的简历,从项目开始问了一些相关的问题。

ioc、aop,springcloud的组件及其作用
项目中aop主要使用场景
讲讲aop实现的流程
@Component和@Bean的区别

注解的实现原理

答:从getAnnotation进去可以看到java.lang.class实现了AnnotatedElement()方法,java.lang.reflect.annotatedElement()接口是所有程序元素(CLass、Method、Constructor)的父接口,所以程序通过反射获取了某个类的AnnotatedElement对象后,程序就可以调用getAnnotation()、getAnnotations()、isAnnotationPresent()、getDeclaredAnnotations()来获取到注解信息。

连接池是什么,为什么要使用连接池?

答:连接池是用于创建和管理​​数据​​​库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对以恶搞​​数据​​​库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为其它的线程服务。
优点:
一、减少连接创建的时候。连接池中的连接是已经准备好的、课重复使用的,获取后可以直接访问​​​数据​​​库,因此减少了连接创建的次数和时间。
二、简化的编程模式。当使用连接池时,每一个单独的线程能够像创建一个自己的JDBC连接一样操作,允许用户直接使用JDBC编程技术。
三、控制资源的使用,每次访问​​​数据​​​库都需要创建一个连接,这样系统的稳定性受系统连接需求影响很大,容易产生资源浪费和高负载异常,连接池能够使性能最大化,将资源利用控制在一定的水平之下。连接池能控制池中的连接数量,增强了系统在大量用户应用时的稳定性。
工作原理:
连接池的建立。一般在系统初始化时,连接池会根据系统配置建立连接,并会在池中创建几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意创建或关闭,避免了来凝结随意建立和关闭造成的系统开销。java中提供了很大容器给类可以方便的构建连接池。
连接池的管理。连接池管理策略时连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响,其管理策略是:当客户请求​​​数据​​​库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没有达到就重写创建一个新的连接给请求的客户;如果达到就按设定的最大等待时间等待,如果超出最大等待时间,则抛异常给客户。当客户是否​​数据​​​库连接时,先排队该连接引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其它客户服务。该策略保证了​​数据​​​库连接的有效复用,避免频繁的建立、释放连接带来的系统资源开销。
连接池的关闭,当应用程序退出时,关闭连接池的所有连接,释放连接池相关的资源。

问完这些以后就开始问一些java基础相关的问题。

八种基本​​数据​​类型 访问权限关键字 两个Integer类型的128使用双等号比较的结果 阻止序列化的关键字 transient 线程的实现方式
线程调用start()、wait()进入什么状态
ThreadLocal是否有了解

然后问了 http状态码,三次握手什么的。 这个没有答上来

又问了mysql相关的问题

分页关键字的使用
如果要连接多个查询结果怎么办
内连接和外连接的区别
对事务的理解
索引的底层实现原理,这个我只说出了b+树,后面了解到还有hash实现。

问我对mysql 的分库分表有没有了解,这个我确实不了解,刷视频的时候有刷到mycat,但是还没有开始学。

然后问了​​redis​​的一些问题

​​redis​​​的五种​​数据​​​类型
​​​redis​​两种持久化方式及其对内存的影响,我只听过aof对性能会有较大影响,但是对内存的影响我没有听过,没能答上来。

最后的​​算法题​​,给定两个个矩形的左下角,右上角坐标,求覆盖的总面积(如(2,2)(3,3) (-1,-1)(4,4)面积就是25)。将两个矩形面积相加,减去重叠的面积就行了。

技术二面:

​​算法题​​是订票的问题:写一个订票类,在构造器中指定座位的个数,订票时方*返回第一个没有被预定的座位,通过退票方法可以退订指定的座位。我是使用数组完成的。最后面试官让我回去可以了解一下优先级队列。

中间我原本面试的工作地点东莞位置满了,就转到了深圳。

三面:

三面是hr面,但是也是问了一些技术问题。先让我做了个自我介绍,然后确认了一下申请的薪资。问了一些比较简单的技术问题,我记不太清了。

综面:

综面是主管面试。也是先做了自我介绍。

当同时收到两份offer会怎么去选择。

一个任务,自我评估需要20天,但领导只给了十天,会怎么处理。

对于编程工作,你感兴趣的是哪些部分。

讲讲死锁是什么,怎么解决死锁问题。

非常感谢HR栗栗的帮助,鄙视面试上的帮助,有问题及时答疑,及时反馈面试结果,体检报告的检查。非常感谢!!!!

如果有同学有意向来​​华为​​od,可以联系HR栗栗。

到此这篇华为java面试题(华为java面经)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Java字符串转大写(java字符串转大写方法)2025-01-25 11:54:06
  • jvisualvm分析dump大对象(java dump 分析)2025-01-25 11:54:06
  • java调用dll动态库里的方法(java 调用动态库)2025-01-25 11:54:06
  • yum安装rzsz(yum安装java)2025-01-25 11:54:06
  • java中字符串转int(java字符转int类型)2025-01-25 11:54:06
  • 学java去哪个网站(java去哪里学比较好)2025-01-25 11:54:06
  • java和爬虫哪个有优势(java爬虫的优缺点)2025-01-25 11:54:06
  • java教学平台(java教学网站)2025-01-25 11:54:06
  • Java字符串转大写(java 字符转大写)2025-01-25 11:54:06
  • 跨域解决方案java(跨域解决方案cors)2025-01-25 11:54:06
  • 全屏图片