文档详情

华为OD——java开发工程师面试(附回忆版题目).pdf

发布:2023-08-31约2.7千字共3页下载文档
文本预览下载声明
华为OD——java开发⼯程师⾯试(附回忆版题⽬) 1⽉份同学给我推荐了这个岗位,因为没有⼯作经历,所以还是⽐较有压⼒的,只能尽⼒准备了。 ⼀、机试 在正式机试之前,我在⽜客⽹在线编程练了⼏⼗道题,原本的计划是题⽬练完的,但是看错了机试时间,最后匆忙机试。 1、机试题⽬ ‘的正则表达式。模式中的字符’.‘表⽰任意⼀个字符,⽽’ 【正则表达式匹配】请实现⼀个函数⽤来匹配包括’.‘和’ 表⽰它前⾯的字表⽰它前⾯的字 acacac 【解析】这个知识点在⽜客⽹专题靠后位置,我没练习到,⽽且,没有复习java对正则表达式的⽀持,所以做的时候⽤了最⿇烦的⽅法。 【代码】 public static boolean match(char[] str , char[] pattern) { String regex = , string = ; for (int i = 0; i pattern.length; i++) { regex += pattern[i]; } for (int i = 0; i str .length; i++) { string += str[i]; } Pattern pattern1 =Ppile(regex); Matcher matcher=pattern1.matcher(string); return matcher.matches(); } ⼆、技术⼀⾯ 因为最近新型肺炎疫情严重,我有幸全程视频⾯试,我感觉挺⽅便,就像两个⼈视频聊天,没有现实中两个陌⽣⼈两天的距离感。 这次⾯试,我个⼈觉得我还是太⽔了!! 我⾯试的是java,在⽜客⽹⾯经中提到的知识点主要有 : 【java】java基础、java⾼级 (线程与线程池、反射、异常、内存管理等) 【javaWeb框架】Spring boot、SpringMVC、Mybatis、Hibernate、Struts 设计模式 算法与数据结构 计算机⽹络 操作系统 XML JDBC 这些东西框架和XML⼤学我没学习过,java⾼级⾃⼰了解过⼀点,其他东西除了java基础和算法,其他东西都没复习。 (⼀)⾯试题⽬ 1、新建线程的⽅法,对线程的了解 (答得不全,因为⾃⼰没写过这个代码,印象不深刻) 三种 1)继承Thread类 2)实现Runnable接⼝ 3)实现Callable接⼝ 其中第三种⽅法需要⽤到线程池 2、什么是java不可变类型? (这个问题真的是难倒我了,因为⾯试官提到String是可变类型) 【答案:java中的引⽤类型,值可变引⽤不变,⽐如String,其实你改变值就是新new了⼀个String】 3、并发怎么理解? 4、SpringMVC的⾯向切⾯怎么理解 (框架没有复习) 5、Mybatis了解过吗? (没有。。然⽽还是问框架) 6、排序算法了解吗?说说 7、选择排序的效率怎么样? (记得堆排序,但是不知道怎么实现了,压根不觉得直接选择是⼀种排序) (⼆)⼿撕代码 【题⽬】 括号匹配“{}()[]” 因为视频⾯试,⼿撕不太⽅便,所以最后是我⽤我的记事本来写 【思路】 存左括号,遇到右括号匹配,直到字符串匹配结束 右括号匹配失败,false 如果栈不为空,false 栈为空,true 【问题】 我犯了⼀个很低级的问题,我忘记了怎么取栈顶元素 (不删除) 三、技术⼆⾯ 和⼀⾯连续的 (⼀)⼿撕代码 ⾯试官说⼿撕不⽅便,所以改成陈述⼀⾯的⼿撕代码思路。那我肯定没问题。 (⼆)⾯试题⽬ 1、java中堆和栈的区别,不是数据结构⾥的那种 (不会,没了解过底层机制) 2、内存回收机制 (没了解) 3、进程和线程,区别 (会) 4、J
显示全部
相似文档