WebServer Project-01-反射

简介

上网浏览网页,离不开服务器,客户请求页面,服务器响应页面,响应的内容是根据每个web请求来产生动态内容的,其内部即启动多个线程来产生不同内容。这种请求响应的交互,都是基于HTTP协议的。
当然现在随着业务越来越多样化,web服务器变得复杂了,拥有了像缓存、安全和session管理这些附加功能。
web请求都是使用Request和Response式的交流。

  • OOP
  • 容器
  • IO
  • 多线程
  • 网络编程
  • XML解析
  • 反射
  • HTML
  • HTTP协议

1.反射

反射Reflection:把Java类中的各种结构(方法、熟悉、构造器、类名)映射成一个个的Java对象。利用反射技术可以对一个类进行解剖,反射是框架设计的灵魂。

举个例子:开了一个工厂山寨iphone,需要图纸;
1.买一个手机,进行拆分,研究结构
2.买通iphoone工程师,直接拿到图纸
3.存在银行的图纸,我们的工程师可以去偷(定位)

package server.study;

import java.lang.reflect.InvocationTargetException;

/**
 * Created by 16114 on 2019/8/22.
 * 反射:把Java类的各种结构(方法、属性、构造器、类名)映射成一个个的Java对象
 * 1.获取Class对象(看Class API)
 * 三种方式:Class.forName("完整路径")
 * 2.可以动态创建对象clz.getConstructor().newInstance()
 */
public class ReflectTest {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        //三种方式
        //1.对象.getClass()
        Iphone iphone = new Iphone();
        Class clz = iphone.getClass();
        //2.类.class()
        clz = Iphone.class;
        //3.Class.forName("包名.类名")  //耦合度低,动态添加
        clz = Class.forName("server.study.Iphone");

        //创建对象
        Iphone iphone1 = (Iphone)clz.newInstance(); //不推荐,不安全
        System.out.println(iphone1);
        //java 9 用构造器
        Iphone iphone2 = (Iphone)clz.getConstructor().newInstance();
        System.out.println(iphone2);
    }
}

class Iphone{
    public Iphone(){

    }
}
全部评论

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务