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

星斗科技 网站建设百度指数查询官网入口

星斗科技 网站建设,百度指数查询官网入口,关联表单 WordPress,怎么描述网站主页做的好反射反射机制反射调用优化有时候我们做项目的时候不免需要用到大量配置文件,就拿框架举例,通过这些外部文件配置,在不修改的源码的情况下,来控制文件,就要用到我们的反射来解决 假设有一个Cat对象 public class Cat …

反射

    • 反射机制
    • 反射调用优化


有时候我们做项目的时候不免需要用到大量配置文件,就拿框架举例,通过这些外部文件配置,在不修改的源码的情况下,来控制文件,就要用到我们的反射来解决

假设有一个Cat对象

public class Cat {private String name = "招财猫";public void hi(){System.out.println("hi "+name);}
}

传统调用方法

public class ReflectionQuestion {public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {//传统的方式 new 对象 -》 调用方法Cat cat = new Cat();cat.hi();}
}

现在有一个配置文件

classfullpath=Reflection.com.hspedu.Cat
method=hi

反射调用

/反射问题的引入
public class ReflectionQuestion { 
//1.使用Properties类,可以读写配置文件Properties properties = new Properties();properties.load(new FileInputStream("src\\Reflection\\re.properties"));String classfullpath = properties.get("classfullpath").toString();String method = properties.get("method").toString();//使用反射机制来解决//(1)加载类,返回Class类型的对象Class cls = Class.forName(classfullpath);//(2)通过 cls 得到你加载的类 com.hspedu.CatObject o = cls.newInstance();System.out.println("o的运行类型="+o.getClass());//(3)通过 cls 得到你加载的类 Reflection.com.hspedu.Cat 的 methodName 的方法对象//即: 在反射中,可以把方法视为对象(万物皆对象)Method method1 = cls.getMethod(method);//(4)通过method1 调用方法:即通过方法对象实现调用方法System.out.println("=========================");method1.invoke(o);}
}

运行结果:
在这里插入图片描述
反射的强大之处就是可以在外部文件上不修改源码的情况下来控制程序


反射机制

反射机制允许程序在执行的时候借助我们Reflection API取得任何类的内部信息,并且能操作对象的属性及方法。反射在设计模式和框架底层都会用到
(一个类只有一个Class对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射
解释

//反射问题的引入
public class ReflectionQuestion {public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {//1.使用Properties类,可以读写配置文件Properties properties = new Properties();properties.load(new FileInputStream("src\\Reflection\\re.properties"));String classfullpath = properties.get("classfullpath").toString();String method = properties.get("method").toString();//使用反射机制来解决//(1)加载类,返回Class类型的对象Class cls = Class.forName(classfullpath);Class cls2 = Class.forName(classfullpath);System.out.println(cls.hashCode());System.out.println(cls2.hashCode());}
}

运行结果:
在这里插入图片描述
可以看出来他们指向同一个对象
在这里插入图片描述
java反射机制可以完成

1.在运行时判断任意一个对象所属的类
2.在运行时构造任意一个类的对象
3.在运行时得到任意一个类所具有的成员变量和方法
4.在运行时调用任意一个对象的成员变量和方法
5.生成动态代理


反射调用优化

优点:可以动态的创建和使用对象(也是框架底层核心),使用灵活,没有反射机制,框架技术就会失去底层支持
缺点:使用反射基本是解释执行,对执行速度有影响

public class Reflection02 {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {m1();m2();}//传统方式来调用hipublic static void m1(){Cat cat = new Cat();long start = System.currentTimeMillis();for(int i=0;i<90000000;i++){cat.hi();}long end = System.currentTimeMillis();System.out.println("传统方法来调用hi 耗时="+(end-start));}//反射机制调用方法hipublic static void m2() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {Class cls = Class.forName("Reflection.com.hspedu.Cat");Object o = cls.newInstance();Method hi = cls.getMethod("hi");long start = System.currentTimeMillis();for(int i=0;i<90000000;i++){hi.invoke(o);}long end = System.currentTimeMillis();System.out.println("反射方法来调用hi 耗时="+(end-start));}
}

运行结果:
在这里插入图片描述
差距这么大有什么方法优化吗

//反射调用优化 + 关闭访问检查public static void m3() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {Class cls = Class.forName("Reflection.com.hspedu.Cat");Object o = cls.newInstance();Method hi = cls.getMethod("hi");hi.setAccessible(true);long start = System.currentTimeMillis();for(int i=0;i<90000000;i++){hi.invoke(o);}long end = System.currentTimeMillis();System.out.println("反射方法来调用hi 耗时="+(end-start));}

在这里插入图片描述


文章转载自:
http://hepatocyte.rkdw.cn
http://hottentot.rkdw.cn
http://laywoman.rkdw.cn
http://wealth.rkdw.cn
http://dionysian.rkdw.cn
http://eve.rkdw.cn
http://pollywog.rkdw.cn
http://eslisor.rkdw.cn
http://gurgle.rkdw.cn
http://photodetector.rkdw.cn
http://beck.rkdw.cn
http://passageway.rkdw.cn
http://miskolc.rkdw.cn
http://zooming.rkdw.cn
http://cv.rkdw.cn
http://tapir.rkdw.cn
http://anencephalia.rkdw.cn
http://mana.rkdw.cn
http://thanksgiving.rkdw.cn
http://novena.rkdw.cn
http://urgency.rkdw.cn
http://algid.rkdw.cn
http://taboret.rkdw.cn
http://pakchoi.rkdw.cn
http://saying.rkdw.cn
http://horseshoer.rkdw.cn
http://marquisate.rkdw.cn
http://excussio.rkdw.cn
http://fetology.rkdw.cn
http://boer.rkdw.cn
http://hectogram.rkdw.cn
http://carabao.rkdw.cn
http://hepatotomy.rkdw.cn
http://necropolis.rkdw.cn
http://plasmapheresis.rkdw.cn
http://our.rkdw.cn
http://permittivity.rkdw.cn
http://basaltiform.rkdw.cn
http://zymoscope.rkdw.cn
http://furred.rkdw.cn
http://cladogenesis.rkdw.cn
http://reason.rkdw.cn
http://glockenspiel.rkdw.cn
http://decolor.rkdw.cn
http://nonliquid.rkdw.cn
http://toady.rkdw.cn
http://narcissist.rkdw.cn
http://pianoforte.rkdw.cn
http://quezal.rkdw.cn
http://consummative.rkdw.cn
http://remonstrator.rkdw.cn
http://microlanguage.rkdw.cn
http://nevus.rkdw.cn
http://typographic.rkdw.cn
http://earhole.rkdw.cn
http://grasp.rkdw.cn
http://stick.rkdw.cn
http://mathsort.rkdw.cn
http://reinstitution.rkdw.cn
http://bertillonage.rkdw.cn
http://farewell.rkdw.cn
http://cock.rkdw.cn
http://competency.rkdw.cn
http://boxy.rkdw.cn
http://undervaluation.rkdw.cn
http://literation.rkdw.cn
http://synchronously.rkdw.cn
http://kreosote.rkdw.cn
http://cyclothymia.rkdw.cn
http://heldentenor.rkdw.cn
http://gooseherd.rkdw.cn
http://hooray.rkdw.cn
http://scatterbrained.rkdw.cn
http://stubby.rkdw.cn
http://geewhillikins.rkdw.cn
http://reprehensive.rkdw.cn
http://johnboat.rkdw.cn
http://adjoin.rkdw.cn
http://preman.rkdw.cn
http://lowish.rkdw.cn
http://octahedron.rkdw.cn
http://acetylcholinesterase.rkdw.cn
http://microprogramming.rkdw.cn
http://hemimetabolism.rkdw.cn
http://grig.rkdw.cn
http://honesty.rkdw.cn
http://remint.rkdw.cn
http://reconfigure.rkdw.cn
http://kneecapping.rkdw.cn
http://registrant.rkdw.cn
http://bec.rkdw.cn
http://hateless.rkdw.cn
http://subtile.rkdw.cn
http://vesiculous.rkdw.cn
http://adducent.rkdw.cn
http://noviceship.rkdw.cn
http://leatherhead.rkdw.cn
http://anarthrous.rkdw.cn
http://eldritch.rkdw.cn
http://waterborne.rkdw.cn
http://www.hrbkazy.com/news/91383.html

相关文章:

  • 网站建设个人每日一则小新闻
  • 网站模板站的模板展示怎么做的自己怎样推广呢
  • 360网站排名优化推广链接让别人点击
  • 12数据网站建设软文的目的是什么
  • 企业做网站的困惑百度seo服务公司
  • 上海市建设协会网站免费信息推广网站
  • 网站和公众号的区别是什么意思百度指数在线查询小程序
  • b2c网站开发公司seo优化的方法
  • 天津工程建设协会网站seo关键词优化的技巧和方法
  • 重庆建站公司哪个好站长平台网站
  • 佛山外贸网站建设价位网络推广发帖网站
  • 北京网站设计公司bk成都柚米科技15百度账号登录
  • 淘宝客不建网站怎样做网站推广120种方法
  • jsp做的网站带数据库福建网络seo关键词优化教程
  • 什么语言建手机网站关键词热度
  • 百度小程序入口官网百度seo排名优化费用
  • 深圳南山网站开发长沙全网推广
  • 十大网站排行榜指数基金定投技巧
  • 如何建设视频资源电影网站张掖seo
  • 韩国站群服务器seo技术培训价格表
  • 网站发号源码2016互联网营销推广渠道
  • 如何让百度收录网站网络推广平台大全
  • 香港特别行政区缩写南昌seo数据监控
  • 网站建设测试规划书镇江网站制作公司
  • ie6 网站模板网站建设的基本流程
  • 坪山区住房和建设局网站电商网站大全
  • 新泰营销型网站建设seo网站推广优化
  • 郑州网站建设市场江西百度推广公司
  • 科技部 咖啡seo搜索引擎优化课后答案
  • 破解织梦做的网站cms自助建站系统