两轮面试连着面的,在牛客网上视频面试
感觉有的地方问的还是挺深的挺细的,有难度,感觉应该是挂了。。。
一面
- 自我介绍
- 集合继承体系
- HashMap
- ConcurrentHashMap
- Set
- HashSet底层
- CopyOnWrite 及使用场景
- 一次网站请求全流程
- TCP 三次握手 和 四次挥手
- 索引命中情况
- mysql B+ 树
- sql 优化
- redis 数据结构
- redis 使用场景
- redis分布式锁
- redis常用命令
- keys * 和 scan
- 【投票】 一个用户只能给一个活动投票,怎么设计key
- jvm优化
- 算法题
给定一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
示例 4:
输入: “([)]”
输出: false
示例 5:
输入: “{[]}”
输出: true
二面
- 自我介绍
- 集合
- HashMap
- 线程池参数
- Java 中的锁
- 什么是悲观锁、乐观锁
- SQL:
学生成绩表sc
id, sid ,cid ,score
查询所有门课程都不小于90分的学生;
- 算法题:
将一个int类型正整数转化为大写中文;举例:输入:123输出:壹佰贰拾叁
我的答案:
public String transfer(int data){
List<String> listConfig = new ArrayList<>();
listConfig.add("一");
listConfig.add("二");
listConfig.add("三");
listConfig.add("四");
listConfig.add("五");
listConfig.add("六");
listConfig.add("七");
listConfig.add("八");
listConfig.add("九");
List<String> levelConfig = new ArrayList<>();
listConfig.add("个");
listConfig.add("十");
listConfig.add("百");
listConfig.add("千");
String str = String.valueOf(data);
char[] chars = str.toCharArray();
//几位数
int level = chars.size() - 1 ;
StringBuffer sb = new StringBuffer();
for(int i =0 ; i< chars.size();i++){
if(i == chars.size()-1){
String temp = listConfig.get(String.valueOf(chars[i]);
sb.append(temp);
break;
}
if(chars[i] == 0){
if(!sb.contains("零")){
sb.append("零");
}
continue;
}
String temp = listConfig.get(chars[i]);
sb.append(temp);
sb.append(levelConfig.get(level));
level --;
}
String result = sb.toString();
return result;
}
转载请注明:汪明鑫的个人博客 » 快手 视频面试(一面 + 二面)
说点什么
您将是第一位评论人!