0
点赞
收藏
分享

微信扫一扫

20220420java第二阶段----webserver、反射、注解

奋斗De奶爸 2022-04-23 阅读 85

webserver

WebServer主类

与客户端交流的流程分成三步:1:解析请求2:处理请求3:发送响应

每个请求由三部分构成:请求行 消息头 消息正文

每个响应由三部分组成: 状态行,响应头,响应正文

反射

反射是java的动态机制,可以允许我们在程序[运行期间]再确定实例化,调用某个方法,操作某个属性。反射机制大大的提高了代码的灵活度,但是会有更高的系统开销和较慢的运行效率。 因此反射机制不能被过度的使用。

类对象  Class的实例

JVM在加载一个类的class文件时,就会同时创建一个Class的实例,使用该实例记录加载的
类的一切信息(类名,有哪些属性,哪些方法,哪些构造器等)。并且每个被JVM加载的类都有
且只有一个Class的实例与之对应。
反射的第一步就是获取要操作的类的类对象,以便程序在运行期间得知要操作的类的一切信息
然后对其进行响应的操作。

获取一个类的类对象的常见方式:
1:类名.class
例如:
    Class cls = String.class;
    Class cls = int.class;
    注意:基本类型获取类对象只有这一种方式。

2:Class.forName(String className)
例如:
    Class cls = Class.forName("java.lang.String");
    这里传入的类名必须是类的完全限定名,即:包名.类名

3:还可以通过类加载器形式完成

java.lang.reflect.Method类,方法对象
该类的每一个实例用于表示某个类中定义的一个方法,通过它可以获取其表示的方法中的
相关信息(方法名,参数个数,参数类型,返回值类型等等,并且还可以调用这个方法)

使用反射机制实例化对象

使用有参构造器进行实例化

 使用反射机制调用方法

调用有参方法

main方法上的参数String[] args的作用是

两个开发中常用的相对路径

 注解

/**
 * 注解
 * 注解在开发中常被我们利用到反射机制中,辅助反射机制做更多灵活的操作
 * 注解在如今JAVA流行的框架中被大量的应用,简化了以前繁琐的配置工作。
 *
 * 注解可以在:
 * 类上,属性上,方法上,构造器上,以及参数上使用
 * 可以通过java内置的注解@Target来说明当前注解可以被应用的位置,对应的值被定义在ElementType上
 * 例如:
 * @Target(ElementType.TYPE)  注解只能被用于类上
 * @Target({ElementType.TYPE,ElementType.METHOD}) 注解只能被用于类上或方法上
 * 当可以用于多个位置时,需要定义成数组的方式包含所有ElementType的值,即"{}"包含
 *
 *
 * @Retention注解,用于标注当前注解的保留级别,有三个选项
 * RetentionPolicy.SOURCE 注解仅保留在源代码中
 * RetentionPolicy.CLASS 注解保留在字节码中,但是反射机制不能调用
 * RetentionPolicy.RUNTIME 注解保留在字节码文件中,并且可以被反射机制所使用
 * 当不指定@Retention时,默认的保留级别为CLASS,因此我们通常都需要明确指出保留级别为RUNTIME
 */
举报

相关推荐

0 条评论