初创公司java面试二
前天在广州番禺参加了一家初创公司的面试,面试官说它们公司比较重视基础,一进去是做了四五页笔试题(有点多啊),之后直接进行面试,今天表现也不太好,卡了两三题。
笔试内容:
选择题 (1)”中”字在GB2313、UTF-8、Unicode分别占了几个字节数?2位、3位、2位 (2)JDBC的API知识(DriverManager、createStatement()、Connection 、ResultSet 、executeQuery这些内容)的选错题:这里我直接说答案了,ResultSet不是 JDBC 执行 INSERT语句的返回赋值对象(insert操作应该是返回影响的行数int值),是执行查询操作的返回结果类型 (3)有switch语句功能的标签:这个不会,答案好像是<c:choose>,属于JSTL 核心标签库的 (4)垃圾回收机制会回收哪些情况的变量?选项忘了 (5)异常知识选错题等等,其他忘了
简答题有 (1)抽象类和接口的区别?一个类能继承多个类?一个接口能继承多个接口?一个类能实现多个接口吗? (2)说一下对索引的理解,以及索引中所用到的数据结构?说一下为什么会使用B树或B+树结构?
代码题和写运行结构题
- 给出一个员工表和对应字段名字的信息,下面是问题:(1)建表MySQL语句,(2)查询超过自身部门员工平均工作资的所有员工信息。(3)写添加一个sex字段的MySQL语句
- 给一段多态代码,写出运行结果
- 给一段try…catch代码,写出运行结果
public class ExampleClassA {
public void methodA() throws Exception{
try{
throw new Exception();
} finally {
System.out.println("finally");
}
}
}
public class ExampleClassB extends ExampleClassA {
public void methodB(){
try{
methodA(); //ExampleClassA的抛异常方法
}catch(Exception e){
System.out.println("ExampleClassB catch部分");
}
System.out.println("ExampleClassB try...catch结束之后部分");
}
}
public class Test {
public static void main(String[] args) {
ExampleClassB e=new ExampleClassB();
e.methodB();
}
}
4.写一个判断是否为奇数的代码
5.写一个九九乘法表的代码
面试内容:
1.==和equal的区别?这个被问到好多次了
2.一个普通变量如何获取配置文件的值?@Configuration、@configurationproperties、@Value
3.假如是一个静态变量,如何获取配置文件中的值(这个接触少,不了解)
4.说一下登录实现流程,jwt的内容
5.写出一个部门上下级的数据库表,如何处理返回给数据返回给前端? (按照面试官画的表(该部门的名字,序号和他的上级部门,没有上级部门就填-1),这个可以构建一个节点类(如下面代码结构)来存,然后面试还问如何组装这个结构,一开始我觉得是一行数据一行数据处理就行,没考虑处理的先后顺序,后面面试官说从最顶层开始处理,然后像用递归的方式一样处理部门的数据,面试官这种回答很有逻辑也是对的。这个问题我一开始讲的有乱,后面反应过来一点也讲的不太清楚。因为我之前回答了map结构,那时我在想为什么面试官还在问呢?现在回想,按我那方法首先map不好确定那些是最顶层部门,其次假如先遍历子部门再遍历父部门可能会漏部门关系(特殊处理这种情况太复杂没必要,性能也下降,也难处理))
class DeptNode {
private Long id; //部门id
private String name; //部门名字
private Integer orderNum; //顺序号
private List<DeptNode> children = new ArrayList<>(); //子部门节点列表
}
6说一下你做的项目中最熟悉的是那一块?并详细讲解一下。
7.这个问题概括一下:过滤器中,全局变量如何保证线程安全问题?ThreadLocal
最后说一下体验:感觉收获很多,明白自己的一些不足,还是要继续努力啊。本人是个新手,有什么不对的请指教一下,别骂哈,谢谢大佬们。
#面试##面试问题记录#
查看27道真题和解析