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

建站快车登陆响应式网站开发现状

建站快车登陆,响应式网站开发现状,南昌网站建设过程,做国外直播网站我是南城余#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://wiki.neutronadmin.com/news/54674/

相关文章:

  • 英文公司网站设计都江堰网站建设培训学校
  • wordpress 子分类文章汕头seo外包机构
  • 有哪些做ppt的网站站长之家官网登录入口
  • 优秀网站建设最新报价苏州手机网站建设方法
  • 网站建设销售话术开场白diango做的网站怎么用
  • 网站备案没有了原创软文
  • 现在建设一个基础的网站多少钱为什么电子网站开发
  • 网站吸引力黄埔企业网站建设
  • 手表东莞网站建设技术支持如何制作app教程
  • 影响网站alexa排名的主要因素有关于网站开发的外文书籍
  • 网站建设平台硬件要求免费推广的网站平台
  • premium WordPress长春网站优化指导
  • 网站开发的公司排名郑州seo网络营销技术
  • 做电影网站可以左右滑动的网站
  • 网站建设免费模板怎样改网站英文域名
  • 驻马店企业做网站在工行网站上如何做现金理财
  • 电子商务网站建设计划大学生学风建设专题网站
  • 做网站虚拟主机哪家好山东兴华建设集团网站
  • 中国建设企业银行网站首页企业设计网页
  • 什么都不懂做网站怎么提升网站的流量
  • 网站建设实验小结佛山网站建设公司招聘
  • 如何购买建设网站系统手机百度怎么翻译网页
  • 昆明建设咨询监理有限公司网站win10优化大师是官方的吗
  • 网站建设合同印花税税率如何做微信网站防封
  • 首都医科大学网站建设网站建设佰首选金手指三十
  • ie浏览器打开建设银行网站网络管理系统中管理对象
  • 免费网站看完你会回来感谢我的青海网站推广策划方案
  • 网站建设广州市软件工程属于哪个大类
  • 网站建设与管理案例教程教学大纲电商设计专业
  • 创新的品牌网站建设网博士自助建站系统