Java 面试200题 之基本概念---什么是Java的反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;反射其实是通过Class对象来调用类里面的方法。通过反射可以调用私有方法和私有属性。

反射技术的应用它大量用于Java设计模式和框架技术,最常见的设计模式就是工厂模式单例模式。

单例模式(Singleton)
这个模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录数据库连接都需要这样的单线程操作。这样做就是为了节省内存空间,保证我们所访问到的都是同一个对象

单例模式的两种形势:

第一种方式

public class Singleton { 
    //先申明该类静态对象 
    private static Singleton instance = null;   
    //创建一个静态访问器,获得该类实例。加上同步,表示防止两个线程同时进行对象的创建 
    public static synchronized Singleton getInstance() {      
       //如果为空,则生成一个该类实例 
       if (instance == null){ 
           instance = new Singleton(); 
       } 
       return instance; 
    } 
} 


第二种方式
package reflect; 
public class Singleton {  
    private Singleton() { 
    }  
    private static Singleton instance = new Singleton(); 
    // 这里提供了一个供外部访问本class的静态方法,可以直接访问 
    public static Singleton getInstance() { 
           return instance; 
    }    
} 
class SingRun{ 
    public static void main(String[] args){ 
       //这样的调用不被允许,因为构造方法是私有的。 
       //Singleton x=new Singleton();      
       //得到一个Singleton类实例 
       Singleton x=Singleton.getInstance();   
       //得到另一个Singleton类实例 
       Singleton y=Singleton.getInstance();     
       //比较x和y的地址,结果为true。说明两次获得的是同一个对象 
       System.out.println(x==y); 
    } 
} 

工厂模式:

工厂模式在Java程序系统可以说是随处可见,是因为工厂模式利用Java反射机制和Java多态的特性可以让我们的程序更加具有灵活性就是一个程序员和另一个程序员可以同时去书写代码,而不是一个程序员等到另一个程序员写完以后再去书写代码。其中的粘合剂就是接口和配置文件。之前说利用接口可以将调用和实现相分离。







猜你喜欢

转载自blog.csdn.net/qq_17214501/article/details/81066762