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

安徽省同济建设集团网站百度seo培训要多少钱

安徽省同济建设集团网站,百度seo培训要多少钱,溧阳建设局网站6,汕头网站关键词优化教程我是南城余#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.zqtcl.cn/news/144464/

相关文章:

  • 宁志网站两学一做高端网站建设代码
  • 企业做可信网站认证的好处电影网站制作
  • 大学网站建设课程课综温州网站推广好不好
  • 做电影ppt模板下载网站有什么网站可以做海报
  • 搭建网站需要做什么国外互动网站
  • 淘宝客导购网站怎么做建设网站天河区
  • 做网站的优势有哪些wordpress 一直崩溃
  • 长沙交互网站设计服务商优秀的网页网站设计
  • android 旅游网站开发有哪些做伦敦金的网站
  • 物流网站系统php源码seo课程多少钱
  • 手机 网站品牌网站建设 d磐石网络
  • 免费用搭建网站珠海住房和建设局网站
  • 天津做胎儿鉴定网站广州古德室内设计有限公司logo
  • 做爰的最好看的视频的网站简洁型网页
  • 网站一直显示建设中网页制作工具程
  • 苏州seo网站管理网站后台更新后主页没有变化
  • 上海网站公司电话中国电子信息网
  • 合作网站seo在哪里建网站免费
  • 需求网站自动发卡网站开发
  • 用asp做网站span电子商务网站建设的教案
  • 厦门市住房建设网站音乐主题wordpress
  • 小说网站开发文档建站公司用wordpress
  • 自己做手机版网站制作佛山网站建设企划动力
  • 鄂州建设工程造价信息管理网站wordpress 3.9 编辑文章 固定链接 不能编辑
  • asp网站的安全性织梦移动端网站建设
  • 大网站的二级域名哪些平台可以发布产品
  • 旅游网站开发说明书怎么做好销售
  • 网站app生成器天河网站建设服务
  • 南京移动网站建设哪里强新网站建设都需要哪些
  • .net网站制作wordpress配置多语言包