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

黑龙江省网站建设_网站建设公司_网站建设_seo优化

昆山专业简历制作网站,青海省城乡建设厅网站首页,图片生成链接的网站,网页设计作业文件反射 05 性能对比分析 下面对比了通过普通new方式、反射方式及关闭Java语言安全检测的反射方式三种情况下#xff0c;程序的性能(所需时间)。 package com.duo.reflection;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;//性能测试…反射 05 性能对比分析 下面对比了通过普通new方式、反射方式及关闭Java语言安全检测的反射方式三种情况下程序的性能(所需时间)。 package com.duo.reflection;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;//性能测试 public class Test8 {//1.普通方式newpublic static void test1() {Person person new Person();long startTime System.currentTimeMillis();for (int i 0; i 100000000; i) {String name person.getName();}long endTime System.currentTimeMillis();System.out.println(普通方式(new)调用执行1亿次所需时间 (endTime - startTime) ms);}//2.反射方式调用public static void test2() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {Person person new Person();Class? extends Person c1 person.getClass();Method getName c1.getMethod(getName, null);long startTime System.currentTimeMillis();for (int i 0; i 100000000; i) {getName.invoke(person, (Object[]) null);}long endTime System.currentTimeMillis();System.out.println(反射方式调用执行1亿次所需时间 (endTime - startTime) ms);}//3.关闭Java语言安全检查调用public static void test3() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {Person person new Person();Class? extends Person c1 person.getClass();Method getName c1.getMethod(getName, null);getName.setAccessible(true);long startTime System.currentTimeMillis();for (int i 0; i 100000000; i) {getName.invoke(person, (Object[]) null);}long endTime System.currentTimeMillis();System.out.println(关闭安全检测以反射方式调用执行1亿次所需时间 (endTime - startTime) ms);}public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {test1();test2();test3();} }运行结果 由此可见通过反射方式调用执行会影响程序效率而采用了setAccessible()关闭语言安全检测之后可以提高效率。 06 反射操作泛型 Java采用泛型擦除的机制来引入泛型Java中的泛型仅仅是给编译器javac使用的确保数据的安全性和免去强制类型转换问题但是一旦编译完成所有和泛型有关的类型全部擦除 为了通过反射操作这些类型Java新增了ParameterizedTypeGenericArrayTypeTypeVariable和WildcardType几种类型来代表不能被归一到Class类中的类型但又和原始类型齐名的类型 ParameterizedType表示一种参数化类型例如CollectionGenericArrayType表示一种元素类型是参数化类型或者类型变量的数组类型TypeVariable是各种类型变量的公共父接口WildcardType代表一种通配符类型表达式 获取泛型信息 package com.duo.reflection;import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import java.util.Map;//通过反射获取泛型 public class Test9 {public void test01(MapString, Person map, ListPerson list) {}public MapString, Person test02() {System.out.println(test02);return null;}public static void main(String[] args) throws NoSuchMethodException {Method method Test9.class.getMethod(test01, Map.class, List.class);Type[] genericParameterTypes method.getGenericParameterTypes(); //获得泛型的参数类型for (Type genericParameterType : genericParameterTypes) {System.out.println(# genericParameterType);//instanceof用来在运行时指出对象是否是特定类的一个实例if (genericParameterType instanceof ParameterizedType) {Type[] actualTypeArguments ((ParameterizedType) genericParameterType).getActualTypeArguments();for (Type actualTypeArgument : actualTypeArguments) {System.out.println(actualTypeArgument);}}}System.out.println();method Test9.class.getMethod(test02);Type genericReturnType method.getGenericReturnType(); //获得泛型返回值类型if (genericReturnType instanceof ParameterizedType) {Type[] actualTypeArguments ((ParameterizedType) genericReturnType).getActualTypeArguments();for (Type actualTypeArgument : actualTypeArguments) {System.out.println(actualTypeArgument);}}} }运行结果 07 反射操作注解 getAnnotations getAnnotation 了解什么是ORM Object relationship Mapping -- 对象关系映射 class Student {int id;String name;int age; }上述对应 idnameage001Li32002Wang24 即类和表结构对应、属性和字段对应、对象和记录对应 反射操作注解 package com.duo.reflection;import java.lang.annotation.*; import java.lang.reflect.Field;//反射操作注解 public class Test10 {public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException {Class? c1 Class.forName(com.duo.reflection.men);//通过反射获得(类名的)注解Annotation[] annotations c1.getAnnotations();for (Annotation annotation : annotations) {System.out.println(annotation);}//获得(类名的)注解的value值Table annotation c1.getAnnotation(Table.class);String value annotation.value();System.out.println(value);//获得类指定的注解Field id c1.getDeclaredField(name);Attribute annotation1 id.getAnnotation(Attribute.class);System.out.println(annotation1.columnName());System.out.println(annotation1.type());System.out.println(annotation1.length());} }Table(database_men) class men {Attribute(columnName id, type int, length 10)private int id;Attribute(columnName age, type int, length 10)private int age;Attribute(columnName name, type varchar, length 3)private String name;public men() {}public men(int id, int age, String name) {this.id id;this.age age;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return man{ id id , age age , name name \ };} }//类名的注解 Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) interface Table {String value(); }//属性的注解 Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) interface Attribute {String columnName();String type();int length(); }运行结果
http://www.ihoyoo.com/news/54084.html

相关文章:

  • 国外网站排名 top100大连市住建局官网
  • 海阳网网站怎么做高端网站
  • 有哪些免费做外贸网站营销网站建设哪里便宜
  • 做交网站如何自己设计一个网站
  • 网站建设项目怎么跟进客户模仿网站
  • 建设网站是做什么wordpress3.1
  • 网站建设选哪家环保东莞网站建设技术支持
  • 高端网站建设的介绍网站设计公司兴田德润信任高
  • 设计师图库网站深圳罗湖区网站开发公司
  • 网页与网站设计什么是抖动专业网站建设科技公司
  • 纪检网站建设山西省建设厅网站官网
  • 做手机网站哪家好新网建站教程
  • 云南网络公司排名信息流优化师面试常见问题
  • 网站建设行业努力都看不到效果广告制作费用清单明细
  • 百度站长 添加网站嘉兴网站建设平台
  • 网站备案管理系统网站微信清粉网站开发
  • 淘宝客绑定网站备案号全国二级建造师注册查询
  • 加强门户网站建设方案网上商城采购
  • 网站底部浮动广告代码vs做网站如何输出
  • 网站名加引号2345电视剧网站免费
  • 做设计 素材网站有哪中企动力企业电子商务
  • 可以做网站挂在百度上吗wordpress不显示主题
  • 网站建设公司如何开拓客户付费推广的途径和原因
  • 站长统计ios新乡商城网站建设价格
  • 济南品牌网站建设低价成都旅游路线一览表
  • 网站模板建设报价如何使用手机看建设网站
  • 做自媒体的上那些网站门户网站的注意要素
  • 大气机械网站免费咨询法律律师在线12348
  • 做问卷调查的网站有哪些内容外贸找客户平台
  • 如何选取网站关键词广告图文制作用哪个软件