当前位置: 首页 > news >正文

网站后台管理系统框架做红k线网站

网站后台管理系统框架,做红k线网站,wordpress怎么批量移动分类,网站修改建设我是南城余#xff01;阿里云开发者平台专家博士证书获得者#xff01; 欢迎关注我的博客#xff01;一同成长#xff01; 一名从事运维开发的worker#xff0c;记录分享学习。 专注于AI#xff0c;运维开发#xff0c;windows Linux 系统领域的分享#xff01; 本…我是南城余阿里云开发者平台专家博士证书获得者 欢迎关注我的博客一同成长 一名从事运维开发的worker记录分享学习。 专注于AI运维开发windows Linux 系统领域的分享 本章节对应知识库 反射机制 · 语雀 反射 Java给我们提供的一套API使用这套API可以在运行时动态获取指定对象所属的类创建运行时类的对象调用指定的结构属性、方法等。 Reflection反射是被视为动态语言的关键反射机制允许程序在运行期间借助于Reflection API取得任何类的内部信息并能直接操作任意对象的内部属性及方法。 面向对象调用指定结构属性、方法等功能使用反射与不使用的区别 不使用反射我们需要考虑封装性。比如出了Person类之后就不能调用Person类中私有的结构 使用反射我们可以调用运行时类中任意的构造器、属性、方法。包括了私有的属性、方法、构造器。 反射与创建对象调用方法的方式使用场景 》从作为开发者角度我们开发中主要是完成业务代码对于相关的对象、方法的调用都是确定的。所以在开发中我们使用非反射的方式多一些。 》因为反射体现了动态性可以在运行时动态的获取对象所属的类动态的调用相关的方法所以我们在涉及框架时会使用大量的反射。意味着如果需要学习框架源码时那么就需要学习反射。 框架 注解反射设计模式 封装性体现的是是否建议我们调用内部api的问题。比如private声明的结构意味着不建议调用 反射 体现的是我们能否调用的问题。因为类的完整结构都加载了内存中所以我们就有能力进行调用 反射的优缺点 优点 》提高了Java程序的灵活性和扩展性降低了耦合性提高了自适应能力 》允许程序创建个控制任何类的对象无需提前硬编码目标类 缺点 》反射的性能较低 反射机制主要应用在对灵活性和扩展性要求很高的系统框架上 》反射会模糊程序内部逻辑可读性较差 反射平时开发中我们使用的并不多。主要是在框架的底层使用 class - 反射的源头 针对于编写好的。java源文件进行编译使用javac.exe会生成一个或多个.class字节码文件。接着我们使用java.exe命令对指定的.class文件进行解释运行。在这个解释运行的过程中我们需要将.class字节码文件加载使用类的加载器到内存中存在方法区。加载到内存中的.class文件对应的结构即为Class的一个实例。 比如加载到内存中的Person类或String类都作为Class的一个一个的实例 Class clazz1 Person.class; Class clazz1 String.class; class可以看作是反射的源头 获取Class实例的几种方式 方式1要求编译期间已知类型 前提若已知具体的类通过类的class属性获取该方法最为安全可靠程序性能最高 实例 Class clazz String.class; 方式2获取对象的运行时类型 前提已知某个类的实例调用该实例的getClass()方法获取Class对象 实例 Class clazz www.atguigu.com.getClass(); 方式3可以获取编译期间未知的类型 前提已知一个类的全类名且该类在类路径下可通过Class类的静态方法forName()获取可能抛出ClassNotFoundException 实例 Class clazz Class.forName(java.lang.String); 方式4其他方式(不做要求) 前提可以用系统类加载对象或自定义加载器对象加载指定路径下的类型 实例 ClassLoader cl this.getClass().getClassLoader(); Class clazz4 cl.loadClass(类的全类名); Class的实例指向结构 简言所有的Java类型 》class:外部类成员成员内部类静态内部类局部内部类匿名内部类 》interface:接口 》[]数组 》enum:枚举 》annotation注解interface 》primitive type :基本数据类型 》void 类的加载过程(了解) 过程1类的装载(loading) 将类的class文件读入内存并为之创建一个java.lang.Class对象。此过程由类加载器完成 过程2链接(linking) 验证(Verify):确保加载的类信息符合JVM规范例如以cafebabe开头没有安全方面的问题。 准备(Prepare):正式为类变量static分配内存并设置类变量默认初始值的阶段这些内存都将在方法区中进行分配。 解析(Resolve):虚拟机常量池内的符号引用常量名替换为直接引用地址的过程。 过程3初始化(initialization) 执行类构造器clinit()方法的过程。 类构造器clinit()方法是由编译期自动收集类中所有类变量的赋值动作和静态代码块中的语句合并产生的。 关于类的加载器(了解、JDK8版本为例) 作用负责类的加载并对应于一个Class的实例。 分类分为两种 BootstrapClassLoader:引导类加载器、启动类加载器 使用C/C语言编写的不能通过Java代码获取其实例 负责加载Java的核心库JAVA_HOME/jre/lib/rt.jar或sun.boot.class.path路径下的内容 继承于ClassLoader的类加载器 ExtensionClassLoader:扩展类加载器 负责加载从java.ext.dirs系统属性所指定的目录中加载类库或从JDK的安装目录的jre/lib/ext子目录 下加载类库 SystemClassLoader/ApplicationClassLoader:系统类加载器、应用程序类加载器 我们自定义的类默认使用的类的加载器。 用户自定义类的加载器 实现应用的隔离同一个类在一个应用程序中可以加载多份数据的加密。 以上的类的加载器是否存在继承关系 No! 使用类的加载器获取流并读取配置文件信息 /* * 需求通过ClassLoader加载指定的配置文件 * */ Test public void test3() throws IOException {Properties pros new Properties();//通过类的加载器读取的文件的默认的路径为当前module下的src下InputStream is ClassLoader.getSystemClassLoader().getResourceAsStream(info1.properties);pros.load(is);String name pros.getProperty(name);String pwd pros.getProperty(password);System.out.println(name : pwd); } 反射的应用 1. 创建运行时类的对象 如何实现 通过Class的实例调用newInstance()方法即可 且需要满足以下条件 》要求运行时必须提供一个空参构造器 》要求提供的空参构造器的权限要足够 JavaBean中要求给当前类提供一个公共的的空参的构造器。 作用 场景1子类对象在实例化时子类的构造器的首行默认调用父类空参构造器 场景2在反射中经常用来创建运行时类的对象。那么我们要求各个运行时类都提供一个空参构造器便于我们编写创建运行时类对象的代码。 2. 获取运行时类的内部结构 》获取运行时类的内部结构所有属性、所有方法、所有构造器 》获取运行时类的内部结构父类、接口、包、带泛型的父类、父类的泛型等 3. 调用指定的结构指定的属性、方法、构造器 调用指定的属性步骤 步骤1. 通过Class实例调用getDeclareField(String fieldName)获取运行时类指定名的属性 步骤2. setAccessible(true),确保此属性是可以访问的 步骤3. 通过Field类的实例调用get(Object obj)(获取操作) 或set(Object obj,Object value)设置的操作进行操作 调用指定的方法步骤 步骤1. 通过Class实例调用getDeclareField(String methodNameClass ... args)获取运行时类指定的方法 步骤2. setAccessible(true),确保此属性是可以访问的 步骤3. 通过Method实例invoke(Object obj,Object .. objs),即为对Method对应方法的调用 invoke()返回值即为Method对应方法的返回值 特别的如果Method对应的方法的返回值类型为void,则invoke()返回值为null 调用指定的构造器步骤 步骤1. 通过Class的实例调用getDeclaredConstructor(Class ... args),获取指定参数的构造器 步骤2. setAccessible(true):确保此构造器是可访问的 步骤3. 通过Constructor实例调用newInstance(Object ... objs),返回一个运行时类的实例 4. 注解的使用 框架层面
http://www.sadfv.cn/news/113415/

相关文章:

  • 做网站还要数据库吗网站设计公司种类
  • 国外做ppt的网站有哪些网站流量能打开wifi打不开
  • dedecms视频网站开发免费建设互动的网站
  • 企业网站的首页设计常州做网站价格
  • 网站空间 更换成都设计公司怎么选
  • 咸阳学校网站建设联系电话网站开发所需费用支出有哪些
  • 西安官网seo技术网络优化seo是什么工作
  • 北京建设网站公司电子商务网站怎么做素材包
  • 网站建设在哪能看二元期权网站建设
  • 网站ico添加网站建设 指标
  • 自己做的网站可以挂在哪里聚财洋气三个字公司名字
  • 新塘17网站一起做网店官网女人与狗做网站
  • 阳春建设局网站申请个人网站有什么用
  • 建网站做淘宝客赚钱吗科技强国向秦始皇直播四大发明
  • 整站优化cms网站如何制作
  • 食品包装设计要点网站seo优化皆宣徐州百都网络不错
  • 泰州建设局网站质监站营销策略都有哪些
  • 彩票网站开发张店网站制作价格低
  • 门户网站建设教程建设银行网盾进不去网站是怎么办
  • 网站建设规划书怎么写山东软件开发培训机构
  • 地铁公司招聘信息网站什么是网站内容建设
  • 上海新建设建筑设计有限公司网站创建全国文明城市要求注册志愿者
  • 单本小说网站免费论坛网站建设
  • 在一个网站上面发布广告怎么做网站建设中 页面源代码
  • 淄博微网站建设wordpress还是自己写
  • 建设银行积分商城网站全文wordpress主题
  • 欧美只做les 网站住建城乡建设部网站
  • 没有做防注入的网站服务器怎么做看视频的网站
  • 网站策划的步骤如何优化基础建站
  • 门户网站建设自查dede 招生网站源码