今天总结的是昨天与今天的面试以及笔试经验,先大概说一下两天的面试情况,昨天面试的java初级开发岗位,没有笔试,而且 因为java初级开发岗位已经招满所以感觉面试官问的东西也比较随意,不过也是有收获的。今天经过了笔试和面试,笔试方面基础部分需要加强的会列在下面,面试部分。。线程方面个人觉得还行,部分回答的惨不忍睹,,继续加油吧,接下来把遇到的问题列举一下并扩散下知识范围,争取不会在同样的问题上出问题
1.简单介绍一下使用过的Spring Boot的一些注解
这个问题虽然回答出来了,不过有个问题需要注意一下,面试官问了一个预加载的注解,这个我没有答出来,在之后我查了一下,实际上是实现一个CommandLineRunner 接口,这样的话便可以在程序启动前在run方法中完成数据预加载或者其他的工作。其中order注解,及其value值表示预加载顺序。
@Component
@Order(value=1)
public class Runner1 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
//方法
}
}
2.java的几种基本数据类型
其实这样有一个技巧,我觉得应该从低字节向高字节说,不然的话很容易乱或者丢。另外char类型的字节数和我们使用的字符集有关系,一般是2个字节。
3.java 方法中的传递参数是值传递还是引用传递
java中只有值传递,在传递参数的时候传递的实际上是实际参数的引用地址的复制,如果是直接将引用传递过来的话,下面这段代码的输出就不该如此
public static void main(String[] args) {
ParamTest pt = new ParamTest();
User hollis = new User();
hollis.setName("Hollis");
hollis.setGender("Male");
pt.pass(hollis);
System.out.println("print in main , user is " + hollis);
}
public void pass(User user) {
user = new User();
user.setName("hollischuang");
user.setGender("Male");
System.out.println("print in pass , user is " + user);
}
print in pass , user is User{name=‘hollischuang’, gender=‘Male’}
print in main , user is User{name=‘Hollis’, gender=‘Male’}
值传递和引用传递的区别即是,一个是复制一份过来,一个是直接将引用传递过来。
具体可以详细看这篇,这篇说的非同通透程序员小灰的博客
4.abstract类的问题
这方面的是笔试题比较多,选择题上我不确定的比较多,明天或者后天会单独写一篇出来,并贴上我练习的笔试题。
5.在创建子类的对象的时候,会先执行父类的构造方法,再执行子类的构造方法。
6.线程池的相关问题,四种线程池得清楚,current工具包得去了解使用。
7.Object的方法有哪些,hashcode与equal()的关系。
8. hashmap的key的构造
haspMap我会在明后天看一下源码,把hashMap的构造弄熟,向外发散的话也就包括collection以及map的
相关数据结构都得弄清楚
9.mysql没有事务这个说法,正确么
先弄清楚mysql事务的有关知识啦。
10.关于linux的相关指令,熟悉一下,java封装继承多态这些特性要会用系统的语言去描述。java面对对象编程也是。
总结
总的来说,收获有不少,但是其实目前应该以学习者的态度面对面试,先不要觉得丢脸,最好能和面试官聊一下,了解面试官作为面试官对面试者的一些看法。今天最后其实可以问一下面试官,如果更深一点他会问哪些,这样会好很多,可以学习很多。
以上的问题我会在明后两天再写一个文章描述,解释,记录一下。