当前位置: 首页 > 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://www.huolong8.cn/news/54674/

相关文章:

  • 江宁区住房和城乡建设局网站唐山网站建设优化
  • 建设公众号网站评分标准细则网站开发合同 下载
  • 街区网站建设的意义金坛做网站哪家好
  • 柳州网站建设柳州form e哪个网站做
  • 局网站建设工作绥化建设局网站
  • 商城网站建设的优点如何在手机上做微电影网站
  • 做网站的域名移动网站建设哪家快
  • 阿里云网站备案要多久厘米售卡站怎么做网站
  • 网站建设详细流程网站制作模板北京
  • 厦门市建设局网站咨询电话网站做浮动边框asp代码
  • 网站维护升级有什么网站是做投资的
  • 怎样给网站做后台网站服务器数据库
  • 阿里巴巴网站制作百度直播平台
  • 高端旅游网站建设平面设计培训班有用吗
  • 网站建设游戏公司宽带收费价格
  • 建立一个平台网站需要多少钱培训收费网站建设
  • 重庆联通的网站建设拉销智能模板建站系统
  • 深圳外包网站公司wordpress 页面导航
  • 唐山建网站贴吧 wordpress
  • 建网站和开发网站网站建设捌金手指花总十
  • 网站备案有什么要求屏幕分辨率 网站开发
  • 红杭州网站建设peise网站
  • 电脑上不了建设厅网站创建网站赚钱
  • 地区门户网站 建设攻略天津高端品牌网站建设
  • 滕滕州网站建设深圳手机app软件开发
  • 网站设计有哪些创新点宽屏绿色新闻资讯网站织梦模板
  • 中国建设银行官方网站纪念钞预约新手怎么开始做电商
  • 网站开发中网页上传深圳网站快速备案
  • 有专门做房孑特卖的网站吗怎样才能建设网站
  • 杭州网站制作平台高端网站案例网站建设