4/13 华为OD Java开发 二面
空窗期7个月的老菜鸡又来了,今天是OD二面,问题如下
1.StringBuilder和StringBuffer(一面问过)
2.进程和线程的区别
按照操作系统那一套答的,进程分配资源,线程进行调度,进程的创建和回收比较费资源
3.死锁条件以及Java如何定位死锁、处理死锁
答了保持并请求,定位和处理不会
4.&和&&的区别
位运算和截断与
5.ArrayList和LinkedList(一面问过)
6.单例模式写法
饿汉式、懒加载、静态内部类
7.MyBatis参数#和$的区别
#预编译防止sql注入 $拼串
8.SpringBoot和SpringCloud的区别(一面问过)
9.Linux
如何查看文件内容 cat tail
如何查看进程 ps -ef|grep xxx
资源占用 top,有了占用资源最多的进程,怎么找对应的线程?不会
10.多态
继承重写、实现接口、类中重载
11.redis内存穿透和内存雪崩(一面问过之后没看,又没答,血亏)
12.IOC和AOP
ioc控制反转,aop面向切面,说个大概,不深究
13.springcloud这种微服务框架的特点
只知道独立性
14.受检异常和非受检异常
15.冒泡排序和插入排序
简述过程,冒泡每次比较i和 i+1,交换位置,插入排序找到插入位置,像扑克发牌
16.什么是二叉树
17.switch-case中,case后面可以跟表达式吗?
算法题:
拼音变6位密码: zhangsan, 6个一组
zhangs
an
再比如: wolaizizhongguo
wolaiz
izhong
guo
垂直位置ascii码相加,得到6个数字,例如111 222 333 209 211 208,
然后111-> 1+1+1=3这种的不用管,
209->2+0+9=11需要递归,11->1+1=2,直到变成1位
最后得到6位密码
简单题,取余6把每一位加起来得到长度6的int数组,6个数字分别取余10得到每一位,相加,结果和9比较,大于9肯定是两位及以上的数,继续递归,最终把6个数字拼接输出就行,我忘了mapToObj(String::valueOf).collect(Collectors.joining())了,用StringBuilder拼接的。
#Java##空窗期##春招##社招##华为OD#