java开发 oppo
## 一面
GC 乱七八糟
CMS和G1的理解不够深刻,每一步的作用是什么
红黑树的结构为什么是高效的。
String,StringBuilder,StringBuffer
```
String a = "aa";
String b = "bb";
String s = a + b;
String s = new StringBuilder().append(a).append(b).toString();
两种方式的效率问题
```
多线程用到什么地方。举例:发送一千个邮件,采用多线程方式。
创建线程池的方式,线程池怎么设计。任务来了的执行过程。
mybatis,XML的方式,有什么需要注意的,防止sql注入的问题。mybatis XML方式是否需要字符转义。
```
< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。
这样的问题在MyBatis中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下转义替换即可避免上述的错误:
```
redis,为什么快速,
sql语句:
id|user |group_type | date| work_time
---|---|---|---|---
1|张三|管理组|2019.02.01|8
2|李四|企业组|2019.03.01|10
...|...|...|...|...
选择总的work_time最多的那一个组
```
select * from (select group_type, sum(work_time) as sum_work from work group by group_type ) as table_new order by sum_work desc limit 0,1;
```
## 二面
部长面:
mybatis是什么,springBoot是什么,为什么选择这两个项目
参加过比赛吗(实验室项目,写论文,没时间)
为什么选择java而不是算法
## 三面
三个词语评价自己,挫折,家庭情况,城市,薪资。
工作中遇到的困难。
#OPPO##Java工程师##面经##校招#
GC 乱七八糟
CMS和G1的理解不够深刻,每一步的作用是什么
红黑树的结构为什么是高效的。
String,StringBuilder,StringBuffer
```
String a = "aa";
String b = "bb";
String s = a + b;
String s = new StringBuilder().append(a).append(b).toString();
两种方式的效率问题
```
多线程用到什么地方。举例:发送一千个邮件,采用多线程方式。
创建线程池的方式,线程池怎么设计。任务来了的执行过程。
mybatis,XML的方式,有什么需要注意的,防止sql注入的问题。mybatis XML方式是否需要字符转义。
```
< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。
这样的问题在MyBatis中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下转义替换即可避免上述的错误:
```
redis,为什么快速,
sql语句:
id|user |group_type | date| work_time
---|---|---|---|---
1|张三|管理组|2019.02.01|8
2|李四|企业组|2019.03.01|10
...|...|...|...|...
选择总的work_time最多的那一个组
```
select * from (select group_type, sum(work_time) as sum_work from work group by group_type ) as table_new order by sum_work desc limit 0,1;
```
## 二面
部长面:
mybatis是什么,springBoot是什么,为什么选择这两个项目
参加过比赛吗(实验室项目,写论文,没时间)
为什么选择java而不是算法
## 三面
三个词语评价自己,挫折,家庭情况,城市,薪资。
工作中遇到的困难。