问题:
JAVA基础:
手撕代码:最长公共子串,用boolean类型的dp去做了,搞了半天没搞出来,dp的题还是要多练。
public int maxLen(String A,String B){
int[][]dp = new int[A.length()+1][B.length()+1];
int len =0;
for (int i = 1; i < A.length()+1; i++){
for(int j = 1;j<B.length()+1;j++) {
if (A.charAt(i - 1) == B.charAt(j - 1)) {
dp[i][j] = dp[i - 1][j - 1] + 1;
} else {
dp[i][j] = dp[i - 1][j - 1];
}
len = Math.max(len, dp[i][j]);
}
}
return len;
}
public static void main(String[] args) {
String a = "acbcbcef";
String b = "abcbced";
text x = new text();
System.out.println(x.maxLen(a,b));
}
-
问了项目相关的一些内容。websocker协议的特点,是基于TCP的吗?
-
JAVA的基本类型,有关于String的一些类型?
-
StringBuffer和StringBuilder的区别?为什么StringBuffer是线程安全的?
加了synthronized锁 -
JVM的构造,有关于JVM的调优
类加载器子系统、运行时数据区、执行引擎、本地接口库
JVM调优:把新生代的大小调大一点。
什么是死锁,怎么避免死锁。
两个线程拥有自己的资源的同时又想去占用对方的资源。
避免死锁:破坏死锁的四个必要条件;尽量使用并发类替代自己手写锁;尽量降低锁的使用力度,不要几个功能用同一把锁。
线程的几个状态:新建、就绪、运行、阻塞、死亡。
线程池的几个状态:
-
Mysql的左连接、右连接的区别,
-
Mysql的事务隔离级别,三范式,
-
如何设置字段自增。
alter table 表名 modify 字段 int auto_increment; -
怎么求出两张表当中并集以外的部分,也就是全外连接(我想了一会,应该是不可以做的,后面面试官也说了,mysql做不到)
-
接口和抽象类的区别,什么时候用接口,什么时候用抽象类。
例如现在有一个基类是水果,然后我要写一个香蕉、苹果等就用抽象类,但是如果特征为某某颜色,就可以用接口,也就是可以公用的状态下就接口。