远景
电话面试
项目:数据库表怎么设计的
redis:数据类型,持久化方式
mysql:innodb, myisam的区别
多线程:线程池怎么创建使用
算法:
冒泡,选择插入排序的区别
归并排序
链表逆序
操作系统:进程的调度算法
兴业
笔试
Aop不同切面的增强在同一个连接点的执行顺序:
多种异常输出一个还是多个?
DispatcherServlet
子类转换为父类: x instanceof y: x与y是父子关系就输出为true
Mysql中的视图
abstract的子类也可以是abstract类型的吗
测试中等价类的划分
多线程interrupt
字节跳动
一面
项目:
上传一个图片的过程,怎么存图片的
图片的格式如果和图片名不符合怎么办
图片压缩
SQL:
create table if not exists salary(
id int(20) not null auto_increment,
name varchar(30),
salary int(50),
gender int(3),
primary key(id)
)engine=innodb default charset=utf8;insert into salary (name, salary, gender) values (“a”, 10000, 0);
insert into salary (name, salary, gender) values (“b”, 7000, 0);
insert into salary (name, salary, gender) values (“c”, 14000, 0);
insert into salary (name, salary, gender) values (“d”, 5000, 1);
insert into salary (name, salary, gender) values (“e”, 10000, 1);
insert into salary (name, salary, gender) values (“f”, 11000, 0);
insert into salary (name, salary, gender) values (“g”, 3000, 1);
insert into salary (name, salary, gender) values (“h”, 10001, 1);
insert into salary (name, salary, gender) values (“i” 6000, 0);
insert into salary (name, salary, gender) values (“j”, 8900, 1);
insert into salary (name, salary, gender) values (“k”, 30000, 0);select * from salary
where salary>=10000
group by(gender);select gender, count(gender) from salary where salary>=10000 group by gender;
分别选择男女薪水大于10000的员工的信息
并发:
ThreadLocal
一个线程没有清空ThreadLocal会怎么样
分布式
Redis:
数据类型
set, zset应用场景
redis怎么保证原子性:
对于Redis而言,命令的原子性指的是:
一个操作的不可以再分,操作要么执行,要么不执行。
Redis的操作之所以是原子性的,是因为Redis是单线程的。
Redis本身提供的所有API都是原子操作,
Redis中的事务其实是要保证批量操作的原子性。
多个命令在并发中也是原子性的吗?
不一定, 将get和set改成单命令操作,incr 。
使用Redis的事务,或者使用Redis+Lua==的方式实现
Linux:
查看端口号对应的进程:
lsof -i:端口号
netstat -tunlp |grep 端口号
-t (tcp) 仅显示tcp相关选项 -u (udp) 仅显示udp相关选项
-n 拒绝显示列名,能显示数字的全部转化为数字
-l 仅显示出在listen(监听)的服务状态
-p 显示潜力相关链接的程序名
HashMap: 扩容,什么时候线程不安全
有赞
笔试
异常类型:受检查的异常和不受检查的异常(运行时异常)
加大新生代空间大小可以降低MinorGC?可以
int i = 1-2L(long转int需要强制转换)
一面二面
linux怎么查看一个进程占用的CPU
当一个项目用运行起来占用很大的CPU怎么办
MVC用到了哪些设计模式
Spring的@Transaction注解
50位和100位的字符串相乘的时间复杂度和空间复杂度
项目中的图片做了什么处理
在浏览器输入网址到显示页面的过程
DNS查找IP地址的过程,怎么确定服务器的主机(IP地址包含主机号)
EPAM
了解垃圾回收吗
调用system.gc()会立刻回收吗
线程池用在什么场景: 线程池适合单系统的大量的异步任务处理,比如发送短信、保存日志。
HashMap用Object做key
List除了for还可以用什么方式遍历
OutOfMemory异常遇到过吗,什么情况下
美团
一面
socket编程,在哪个层
接口抽象类的区别,抽象类可以实例化吗
//均没有报错
abstract class abA{
public abA(){
}
public int i = 1;
public static int ii = 2;
public static final int iii = 3;
public abstract void m();
public void m1(){
}
public static void m2(){
}
private void m3(){
}
protected void m4(){
}
}
interface interA{
public static final int i = 3;
public abstract void m();
public default void m1(){
}
public static void m2(){
}
}
抽象类与接口(jdk1.8):
共同点:
可以有public修饰的抽象方法 和public static方法
可以有public static final修饰的变量
都必须有类实现或继承他们,实现类或子类才可实例化
不同点:
抽象类可以有任何类型的变量,接口中只能有public static final修饰的变量;
抽象类可以有任意类型的方法,接口中只能有由public修饰的抽象方法和用default修饰的具体方法和public static方法;
default只能修饰接口中的具体方法
抽象类可以有构造函数接口不可以
红黑树,HashMap, ArrayList(为什么HashMap底层不用ArrayList)
反射原理
Exception的父类 Exception和Error
private构造方法可以实例化吗
项目: 子评论分页
联合索引:a字段的有两个数,b字段有10个数,创建(a, b)还是(b, a)索引
了解的设计模式
mysql 执行explain后看到的key的类型
货拉拉
笔试
java.lang, java.system哪个不用import
System.out.println(10%3*2) ->打印2
TreeSet线程安全吗?
重载,方法的返回值不同并且参数不同可以吗
public class Ab{
String str = "hello";
char[] arr = {'a', 'b'};
public static void main(String args[]){
Ab t = new Ab();
t.change(t.str, t.arr);
System.out.println(t.str);
System.out.println(t.arr);
System.out.println(10%3*2);
}
public void change(String str, char[] arr){
str = "haha";
arr[0] = 'c';
}
}
算法:从一个字符串转换为另一个字符串的最少操作数(Edit distance做不出)