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(){
}
}
WebServer Project-01-反射的更多相关文章
- JavaSE_ 反射 目录(27)
JavaSE学习总结第27天_反射 & 设计模式 & JDK5.7.8新特性27.01 反射_类的加载概述和加载时机27.02 反射_类加载器的概述和分类27.03 反射_反射概述27 ...
- JavaSE学习总结第27天_反射 & 设计模式 & JDK5、7、8新特性
27.01 反射_类的加载概述和加载时机 类的加载:当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载:就是指将class文件读 ...
- Java高性能反射工具包ReflectASM
ReflectASM 使用字节码生成的方式实现了更为高效的反射机制.执行时会生成一个存取类来 set/get 字段,访问方法或创建实例.一看到 ASM 就能领悟到 ReflectASM 会用字节码生成 ...
- Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: 反射的概念是由Smith在1982年首次提出的 ...
- Java安全第一篇 | 反射看这一篇就够了
什么是反射? Java安全可以从反序列化漏洞说起,反序列化漏洞又可以从反射说起.反射是⼤多数语⾔⾥都必不可少的组成部分,对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私有),拿到的⽅法可 ...
- 设备管理 USB ID
发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...
- Reporting Services 错误案例一则
遇到一个有意思的Reporting Services报表的案例,在2015-01-30号的凌晨20分左右的时候,有人发现Reporting Services的速度非常慢,而且最后有抛出异常,当时不知道 ...
- 1.linux服务器的性能分析与优化
[教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处 ...
- Gradle Goodness: Rename Ant Task Names When Importing Ant Build File
Migrating from Ant to Gradle is very easy with the importBuild method from AntBuilder. We only have ...
- [转载]Linux服务器性能评估与优化
转载自:Linux服务器性能评估与优化 一.影响Linux服务器性能的因素 1. 操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2. 程序应用级 二.系统性能评估标准 影响性 ...
随机推荐
- cesium左侧列表定位目标
cesium左侧列表定位目标 功能:根据左侧列表经纬度等信息的值,进行搜索定位. 列表: 1 点击清除按钮可以清空所有input的值 2 点击查找可以定位到位置,如果输入的值不在范围内,会有弹出框 ...
- Spring Cloud配置中心内容加密
从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理. 下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密,但对称加密比较方便也够 ...
- docker报错: x509: certificate has expired or is not yet valid
环境:最小化安装centos7 问题:docker 启动没问题,但是查询 镜像时报错 Error response from daemon: Get https://index.docker.io/v ...
- java获取网页源代码并写入本地文件中
import java.io.*; import java.net.*; public class URLDemo { public static void main(String args[]){ ...
- springboot集成redis报错-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig
当使用Springboot 2.0以上版本集成redis的时候遇到报错信息如下: Application run failed org.springframework.beans.factory.Un ...
- Android开发——回调(Callback)
1. 回调函数的定义: 在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A ...
- NetCore利用CsvHelper解析支付宝对账单
支付宝账单是zip压缩文件流,里面包含了两个.csv文件. 1.请求支付宝账单下载链接,获取到zip文件流. var httpClient = _clientFactory.CreateClient( ...
- codeforces1213F Unstable String Sort 思维
题目传送门 题意:a和b都代表字符串的下标,至少用k个字符,构造一个长度为n的字符串,将这个字符串中的字符按无论是按$a$写还是按$b$写,字典序都非递减. 思路:如果将$a[l,r]=b[l,r]$ ...
- 安装docker-ce与卸载(centos 7)
1.安装依赖 docker依赖于系统的一些必要的工具,可以提前安装. 1 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添 ...
- ES模块的基本用法常见使用问题
本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...