25道单选50分,10道多选30分,两道编程题20分
单选
- 正则表达式匹配
- 程序运行结果
num1 和 num2 指向的是同一个对象
Java 中方法始终的值传递,传递的是引用的副本1
2
3
4
5
6
7
8
9
10public static void main(String[] args) {
Integer num1 = new Integer(1);
Integer num2 = num1;
work(num2);
System.out.println(num1.intValue()); // 1
System.out.println(num1 == num2); // true
}
public static void work(Integer integer) {
integer = new Integer(2);
} - StampLock(不是可重入锁)
如果一个线程已经持有写锁(writeLock
),再次尝试获取同一把锁会导致死锁 - 哪个不是字节流类型
FileOutputStream、FileInputStream、InputStreamReader(字符流Reader、Writer)、ByteArrayInputStream - Lambda表达式作用(简化函数式接口实现)
- 接口的default方法(可以被调用,可以被覆盖实现)
- 未认证是哪个状态码(401,请求需要身份认证)
- AVL树
- sql 语句
- zset添加成员并设置分数的命令(zadd)
- 什么不是关系型数据库(MongoDB)
- 统计网站当前在线人数,count保存的范围是(application)
- web开发,数据跨请求存储在哪里
- servlet生命周期(加载类、实例化、初始化、请求、销毁)
- spring事务传播行为(REQUIRES_NEW无论是否当前是否存在事务,都会创建一个独立的新事务)
- 判断是什么数据结构(B(D,R) D{a,b,c,d,e}, R{(a,b),(b,c),(c,d),(d,e),(e,a)} 环形链表)
- 代码执行结果
输出是1,1 靠的是类加载和静态变量初始化的顺序,静态变量按声明顺序初始化1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16public class test {
static test t = new test();
static int a;
static int b = 1;
test() {
a++;
b++;
}
public test getInstance() {
return t;
}
public static void main(String[] args) {
test t = test.t.getInstance();
System.out.println(t.a + " " + t.b);
}
} - 异常
子类方法抛出的异常范围不能大于父类方法声明的异常范围
try-catch,也能捕获Error,但不推荐 - 有序单链表插入一个节点的时间复杂度
- TCP和UDP区别
- Java序列化
PrinterWriter不能用于对象序列化输出 - 程序运行结果
会编译错误,final修饰的变量一旦赋值,不能被改变1
2
3
4public void printstr(final String str) {
str = str + "!!";
System.out.println(str);
} - &和&&
- 异常(异常是一种对象,JVM会自动创建)
- Having作用(对分组后的结果筛选)
多选
- Spring
配置文件能设置Bean初始化函数和消亡函数
属性注入可以是简单数据也可以是对象,构造注入可以是对象
能设置Bean延迟加载 - 读配置注解
@Value、@ConfigurationProperties、@PropertySource 和 Environment接口 - 数据引擎要考虑的因素(并发行、查询复杂度、扩展性和可靠性)
- Email相关的协议(SMTP、POP3、IMAP、MIME)
- final
修饰类时,不能被继承
修饰方法时,不能被重写
修饰变量时,不能被改变 - 线程不能运行三种原因(休眠、等待、阻塞)
- 反射功能
运行时判断一个对象的类,获取一个类的成员变量 - Object类中的方法
getClass、clone、equals - inner join、left join、right join
内连接只返回两表都有的数据 - bean中的作用域
编程题
都A了
- 最长子序列
- SQL题,一个公司表(公司ID,公司名),一个用户表(用户ID,用户名,邮箱,公司ID),一个设备表(设备ID,设备名,公司ID,在线状态),根据用户email,查出设备
两个join,一开始写的只过40%,后来灵机一动,筛选条件里加上设备状态为在线的就过了1
2
3
4
5select u.user_name, c.company_name,d.device_name
from user u
left join company c on u.company_id = c.id
left join device d on c.id = device.company_id
where u.email = 'xxx' and device.online = 1