java学习之反射

反射

什么是类对象

类的对象:new出来的对象,也称为实例对象。

类对象:类加载的产物,封装了一个类的所有信息(类名,父类,接口。属性,方法,构造方法)

获取类对象

通过类的对象,获取类对象

Student s = new Student();

Class c = s.getClass();

通过类名获取类对象

Class c = 类名.class;

通过·静态方法获取类对象

Class c = Class.forName(“包名.类名“);

常用方法:

Public String getName()

Public Package getPackage()

Public Class<? Super T>getSuperclass()

Public Class<?>[] getInterfaces()

Public Files[] getFields()

Public Method[] getFilelds()

Public Constructor<?>[] getConstructors()

Public T newInstance()

java学习之反射

包名

ENTITY:包名只要是entity结尾的,都要满足ORM(对象关系型映射)和JAVABEAN两个规范,只要符合了这两个规范,那么这个文件就是一个entity)

补充:如果单单只是一个实体类模型的话,是很难满足我们项目各种变化的需求

DO:基于entity之上在封装出一个DO层,用来专注于持久层的操作

DTO:基于entity之上在封装出一个DTO层,用来专注于业务逻辑层的操作

VO:基于entity之上在封装出一个VO层,用来专注于视图层的操作

也就是说DO,DTO,VO都和ENTITY有共同的字段!

典型的三层架构设置

设计模式

一套被反复使用,多数人知晓的,经过分类·编目的,代码涉及经验的总结

单例设计模式

饿汉式

只允许创建一个该类的对象:类加载时创建,天生线程安全

class A {

   private static final A a = new A();

   private A() { }

   public A getA() {

      return a;

   }

}

懒汉式

使用时创建,线程不安全,使用同步代码块

class A {

   private static A a = null;

   private A() {

   }

   public A getA() {

      if (a == null) {

          synchronized (this) {

             if (a == null) {

                a = new A();

             }

          }

      }

      return a;

   }

}

工厂设计模式

开闭原则:拓展开放,修改关闭;

工厂模式主要负责对象创建的问题

课通过反射进行工厂模式的设计,完成动态的的对象创建。

监听者模式
代理模式

适配器模式

观察者模式

装饰者模式
消费生产者模式

枚举

是一个引用类型,枚举是一个规定了取值范围的数据类型。

枚举变量不能使用其他的数据,只能使用枚举中常量赋值,提高程序安全性。

定义枚举使用enum关键字。

枚举的本质:

枚举是一个终止类,并继承Enum抽象类

枚举中常量是当前类型的静态常量

java学习之反射

注解

是代码里的特殊标记,程序可以读取注解,一般用于代替配置文件。

开发人员恶意通过注解告诉类如何运行。在java技术里注解的典型应用是:可以通过反射技术去得到类里面的注解,以决定怎么去运行类。

常见注解:@Override ,@Deprecated

定义注解使用@interface关键字,注解中只能包含属性。

注解属性类型:String类型,基本数据类型,Class类型,枚举类型,注解类型,以上类型的一维数组

java学习之反射

java学习之反射