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

wordpress资源站源码巴中市平昌县建设局网站

wordpress资源站源码,巴中市平昌县建设局网站,我的公众号,深圳市做网站我的后端学习大纲 我的Java学习大纲 1、Java反射机制原理图#xff1a; 源代码通过Javac编译得到字节码文件#xff0c;当我执行到new一个对象的时候#xff0c;字节码文件会通过ClassLoader被加载#xff0c;然后得到一个Class类对象#xff0c;存放在堆中#xff0c;加… 我的后端学习大纲 我的Java学习大纲 1、Java反射机制原理图 源代码通过Javac编译得到字节码文件当我执行到new一个对象的时候字节码文件会通过ClassLoader被加载然后得到一个Class类对象存放在堆中加载完后Cat对象就生成了生成的这个对象一定知道它是属于哪个Class类对象的 2、理解java.lang.Class类 1.1.类的加载过程 a.编译 程序经过javac.exe命令以后会编译生成一个或多个字节码文件(.class结尾) b.类加载 1.我们使用java.exe命令对某个字节码文件进行解释运行相当于把某个字节码文件加载到内存中。这个过程就是类加载的过程不包括编译那一步2,加载到内存中的类我们就称为运行时类这个运行时类就作为Class类的一个实例对象 比如Class clazz Cat.classCat的这个运行时类Cat.class就是Class类的实例对象换句话说Class的实例对象就对应着一个运行时类。类的本质也是对象万事万物皆对象加载到内存中的运行时类会缓存一定的时间。在此时间之内我们可以通过6种不同的方式来获取此运行时类(获取Class类的实例对象) 3、获取Class类实例对象的方法: 根据下图类加载的过程我们在不同阶段有不同方式来获取Class类实例对象 3.1.方式1在代码阶段: 通过Class的静态方法forName(String classPath)获取 1.已知一个类的全类名且该类在类的路径下那么就可以通过Class类的静态方法forName()获取可以抛出ClassNotFoundExpection2.实例对象Class cls1 Class.forName(java.lang.Cat)这种方式会进行类的静态初始化工作3.应用场景多用于配置文件读取类全路径加载类 //方式一调用Class的静态方法forName(String classPath)参数是类的包路径 Class clazz3 Class.forName(com.atguigu.java.Person); //clazz3 Class.forName(java.lang.String); System.out.println(clazz3);//输出com.atguigu.java.Person3.2.方式2在加载阶段: 在加载阶段通过调用运行时类的属性.class获取 1.若已经知道具体的类通过类的class获取此方式最为安全可靠程序性能最高举例如Class cls Cat.class; 这种方式不会做任何类的初始化工作2.应用场景多用于参数传递、如通过反射得到对应的构造器对象。 //方式二调用运行时类的属性.class Class clazz1 Person.class; System.out.println(clazz1);//输出com.atguigu.java.Person3.3.方式3在运行阶段 在运行阶段通过调用运行时类的对象通过对象.getClass()获取 1.已知某个类的实例调用该实例的getClass()方法获取Class对象实例2.实例Class cls 对象.getClass();//运行类型3.应用场景通过创建好的对象获取Class对象4.这种方式静态初始化和非静态初始化工作都会进行 //方式三通过运行时类的对象,调用getClass()已经知道了Person类的P对象通过调用这个类的getclass方法就可以获取Class类的实例Person p1 new Person();Class clazz2 p1.getClass();System.out.println(clazz2);//输出com.atguigu.java.Person3.4.方式4使用类加载器ClassLoader() 通过类加载4种加载器器获取Class类对象 1.ClassLoader cls 对象.getClass().getClassLoader();class clazz4 cls.loadClass(全类名) //方式四使用类的加载器ClassLoader (了解)ClassLoader classLoader car.getClass.getClassLoader();//得到类加载器carClass clazz4 classLoader.loadClass(com.atguigu.java.);//通过类加载器得到Class对象System.out.println(clazz4);3.5.方式5基本数据类型获取Class类对象 1.基本数据类型int\char\boolean\float\double\byte\long\short按照如下方式可以获取到Class类对象Class cls 基本数据类型.class 3.6.方式6基本数据类型对应的包装类 1.基本数据类型对应的包装类可以通过.type得到Class类对象Class cls 包装类.type //5. 基本数据(int, char,boolean,float,double,byte,long,short) 按如下方式得到Class类对象ClassInteger integerClass int.class;ClassCharacter characterClass char.class;ClassBoolean booleanClass boolean.class;System.out.println(integerClass);//int//6. 基本数据类型对应的包装类可以通过 .TYPE 得到Class类对象ClassInteger type1 Integer.TYPE;ClassCharacter type2 Character.TYPE; //其它包装类BOOLEAN, DOUBLE, LONG,BYTE等待System.out.println(type1);//下面两个输出的值是一样的System.out.println(integerClass.hashCode());System.out.println(type1.hashCode());4、获取Class类的实例对象 4.1.哪些类型可以作为Class类的实例对象 1.外部类成员内部类静态内部类局部内部类匿名内部类2.interface接口3.enum:枚举4.annotation注解6.基本数据类型7.void8.Class本身 4.2.编码测试 package com.hspedu.reflection.class_;import java.io.Serializable;/*** 演示哪些类型有Class对象*/ public class AllTypeClass {public static void main(String[] args) {ClassString cls1 String.class;//外部类ClassSerializable cls2 Serializable.class;//接口ClassInteger[] cls3 Integer[].class;//数组Classfloat[][] cls4 float[][].class;//二维数组ClassDeprecated cls5 Deprecated.class;//注解ClassClass cls6 Class.class;//注解//枚举ClassThread.State cls6 Thread.State.class;ClassLong cls7 long.class;//基本数据类型ClassVoid cls8 void.class;//void数据类型ClassClass cls9 Class.class;//System.out.println(cls1);System.out.println(cls2);System.out.println(cls3);System.out.println(cls4);System.out.println(cls5);System.out.println(cls6);System.out.println(cls7);System.out.println(cls8);System.out.println(cls9);} }1.2.理解java.lang.Class类 1.Class也是类因此也继承Object类 在Object类中定义了方法public final Class getClass()这个方法将被所有子类继承。public final Class getClass()这个方法返回值的类型是一个Class类此类是Java反射的源头针对任何你想动态加载、运行的类唯有先获得相应的Class对象。实际上所谓反射从程序的运行结果来看也很好理解即可以通过对象反射求出类的名称 2.Class类对象不是new出来的只能是系统创建出来的 通过debugger发现反射也是通过ClassLoad类加载Class对象 3.对于某个类的Class类对象在堆内存中只有一份因为类只加载一次 一个Class对象对应的是一个加载到JVM中的一个.class文件 4.每个类的实例对象都会记得自己是由哪个Class实例对象运行时类所生成的5.通过一系列的API和Class类的实例对象可以完整的得到一个类的完整结构 6.Class对象是存放在堆中的类的字节码二进制数据是存放在方法区的有的地方称之为类的元数据包括方法代码变量名方法名访问权限等
http://www.dnsts.com.cn/news/210729.html

相关文章:

  • 济南建网站的网站网站域名变更
  • 兰州做门户网站开设计工作室赚钱吗
  • 论坛网站设计网店产品seo如何优化
  • 一般建设网站需要多少预算短视频app有哪些
  • 重庆网络网站建设装饰行业网站建设方案
  • 机顶盒做网站如何介绍自己的网页
  • 燕郊医疗网站建设互联网上市公司排名
  • 网站点击量怎么查建设品牌网站
  • 连云港营销型网站建设男女在床上做孔网站
  • 北京网站建设交易网站开发的岗位
  • 怎样是做网站wordpress用的编辑器外接
  • 广西建设工程协会网站查询系统软件营销之群排名优化教程
  • 做网站图片路径做缓存吗哪里找做网站的
  • 打开建设银行官方网站首页4399全部网页游戏大全
  • 西安网站手机网站建设jquery 网站缩放
  • 企业如何注册网站广州优化排名推广
  • 为网站 做字幕深圳平台网站建设
  • 广平企业做网站推广建设工程交易中心网站
  • 如何提高网站的收录长沙网站建设市场低价
  • 网站创建方案论文东莞房价2023年最新房价走势
  • 用dw怎么做登录页面的网站外贸网站建设经验
  • 诊所网站模板fqapps com网站怎么做
  • 新网站的站点验证比较好的源码网站
  • 河北住房和城乡建设局网站首页免费邮箱注册入口
  • 基于营销导向的企业网站建设电子商务网站建设怎么做
  • 如何选择做网站装修方案
  • 网站开发工程师 北大青鸟网址导航百度
  • 做淘客必须有自己内部网站吗深圳招聘信息在哪个网站
  • 国内装饰行业网站制作网络营销的特点决定了它不能满足
  • 做网站和微信公众号需要多少钱网站备案的影响