最后
看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面
小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>
针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺
全都是一丢一丢的收集整理纯手打出来的
更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~
举例如下:(我们举一个发送邮件和短信的例子)
首先,创建二者的共同接口:
[java] view plain copy
-
public interface Sender {
-
public void Send();
-
}
其次,创建实现类:
[java] view plain copy
-
public class MailSender implements Sender {
-
@Override
-
public void Send() {
-
System.out.println(“this is mailsender!”);
-
}
-
}
[java] view plain copy
-
public class SmsSender implements Sender {
-
@Override
-
public void Send() {
-
System.out.println(“this is sms sender!”);
-
}
-
}
最后,建工厂类:
[java] view plain copy
-
public class SendFactory {
-
public Sender produce(String type) {
-
if (“mail”.equals(type)) {
-
return new MailSender();
-
} else if (“sms”.equals(type)) {
-
return new SmsSender();
-
} else {
-
System.out.println(“请输入正确的类型!”);
-
return null;
-
}
-
}
-
}
我们来测试下:
-
public class FactoryTest {
-
public static void main(String[] args) {
-
SendFactory factory = new SendFactory();
-
Sender sender = factory.produce(“sms”);
-
sender.Send();
-
}
-
}
输出:this is sms sender!
多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。关系图:
将上面的代码做下修改,改动下SendFactory类就行,如下:
[java] view plain copy public class SendFactory {
public Sender produceMail(){
-
return new MailSender();
-
}
-
public Sender produceSms(){
-
return new SmsSender();
-
}
-
}
测试类如下:
[java] view plain copy
- public class FactoryTest {
总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。