总结
面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。
此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!
给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”
且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
那为什么还需要代码初始化块呢?
我们可以通过代码初始化块执行一个更复杂的操作,比如为集合填充值。
/**
- @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class Bike {
List list;
{
list = new ArrayList<>();
list.add(“沉默王二”);
list.add(“沉默王三”);
}
public static void main(String[] args) {
System.out.println(new Bike().list);
}
}
如果只使用“=”操作符的话,是没办法完成集合初始化的,对吧?
02、 构造方法执行得早还是代码初始化块
来看下面这个例子:
/**
- @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class Car {
Car() {
System.out.println(“构造方法”);
}
{
System.out.println(“代码初始化块”);
}
public static void main(String[] args) {
new Car();
}
}
程序输出的结果如下所示:
代码初始化块
构造方法
从输出结果看上去,仿佛代码初始化块执行得更早,对吧?事实上是这样子吗?
不是的,对象在初始化的时候会先调用构造方法,这是毫无疑问的,只不过,构造方法在执行的时候会把代码初始化块放在构造方法中其他代码之前,所以,先看到了“代码初始化块”,后看到了“构造方法”。
03、代码初始化块有哪些规则
代码初始化块主要有三个规则:
-
类实例化的时候执行代码初始化块;
-
实际上,代码初始化块是放在构造方法中执行的,只不过比较靠前;
-
代码初始化块里的执行顺序是从前到后的。
/**
- @author 微信搜「沉默王二」,回复关键字 PDF
*/
class A {
A () {
System.out.println(“父类构造方法”);
}
}
public class B extends A{
B() {
System.out.println(“子类构造方法”);
}
{
总结
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。