JAVA面试题整理之—基础篇第三部(完结篇)

47、获得一个类的类对象有哪些方式?

答:

- 方法1:类型.class,例如:String.class

- 方法2:对象.getClass(),例如:”hello”.getClass()

- 方法3:Class.forName(),例如:Class.forName(“java.lang.String”)

48、如何通过反射创建对象?

答:

- 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance()

- 方法2:通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器(Constructor)对象并调用其newInstance()方法创建对象,例如:String.class.getConstructor(String.class).newInstance(“Hello”);

49、用Java写一个单例类。

答:

- 饿汉式单例

1

2

3

4

5

6

7

public class Singleton {

private Singleton(){}

private static Singleton  instance = new Singleton();

public static Singleton  getInstance(){

return  instance;

}

}

·       懒汉式单例

1

2

3

4

5

6

7

8

public class Singleton {

private static Singleton  instance = null;

private Singleton() {}

public static synchronized  Singleton getInstance(){

if  (instance == null) instance= new  Singleton();

return  instance;

}

}

注意:实现一个单例有两点注意事项,将构造器私有,不允许外界通过构造器创建对象;通过公开的静态方法向外界返回类的唯一实例。这里有一个问题可以思考:SpringIoC容器可以为普通的类创建单例,它是怎么做到的呢?

50、重要的设计模式(设计模式重点单例,工厂,代理,适配器模式

工厂模式:工厂类可以根据条件生成不同的子类实例,这些子类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作(多态方法)。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

- 代理模式:给一个对象提供一个代理对象,并由代理对象控制原对象的引用。实际开发中,按照使用目的的不同,代理可以分为:远程代理、虚拟代理、保护代理、Cache代理、防火墙代理、同步化代理、智能引用代理。

- 适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起使用的类能够一起工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,819评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,892评论 1 114
  • 一. Java基础部分.................................................
    wy_sure阅读 3,955评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,309评论 19 139
  • J2SE基础 九种基本数据类型的大小,以及他们的封装类。各自占多少字节boolean, byte, char, s...
    itar阅读 3,172评论 0 8

友情链接更多精彩内容