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

沈阳市城市建设局网站网页制作平台是什么

沈阳市城市建设局网站,网页制作平台是什么,网站开发哪种语言,酒仙网网站推广方式一、简要描述 Lambda的底层实现原理Lambda表达式编译和运行过程 二、Lambda的底层实现原理 Lambda表达式的本质 函数式接口的匿名子类的匿名对象 反编译#xff1a;cfr-0.145.jar 反编译#xff1a;LambdaMetafactory.metafactory() 跟踪调试#xff0c;转储Lambda类#x…一、简要描述 Lambda的底层实现原理Lambda表达式编译和运行过程 二、Lambda的底层实现原理 Lambda表达式的本质         函数式接口的匿名子类的匿名对象 反编译cfr-0.145.jar         反编译LambdaMetafactory.metafactory()         跟踪调试转储Lambda类                 jdk.internal.lambda.dumpProxyClasses                 LambdaPrinciple$Lambda$1.class 结论         Lambda底层用匿名内部类实现ASM技术         Lambda表达式是个语法糖 三、Lambda表达式编译和运行过程 JVM参数jdk.internal.lambda.dumpProxyClasses 命令java -Djdk.internal.lambda.dumpProxyClasses ClassName转储得到内部类ClassName$$Lambda$1.class反编译java -jar cfr-0.145.jar LambdaPrinciple.class --decodelambdas false本质函数式接口的匿名子类的匿名对象         Lambda表达式与函数接口的抽象函数格式一一对应 1、LambdaPrinciple 代码实现 package tech.flygo.lambda.demo4;import java.util.Arrays; import java.util.List;/*** Lambda表达式的底层实现* 语法:* (parameters) - { statements; }* 或* (parameters) - expression** p* JVM参数jdk.internal.lambda.dumpProxyClasses* 命令java -Djdk.internal.lambda.dumpProxyClasses ClassName* 转储得到内部类ClassName$$Lambda$1.class* 反编译java -jar cfr-0.145.jar LambdaPrinciple.class --decodelambdas false* p* 本质函数式接口的匿名子类的匿名对象* Lambda表达式与函数接口的抽象函数格式一一对应*/ public class LambdaPrinciple {public static void main(String[] args) {ListString stringList Arrays.asList(one, two, three);// 通过lambda表达式实现元素遍历stringList.forEach(s - {System.out.println(s);});} }2、cfr工具包解码Lambda代码实现 CFR解析包 cfr-0.145.jarhttps://www.yuque.com/attachments/yuque/0/2023/jar/1509175/1684030971197-5456d0f4-1c6a-45d0-bf96-009ee00cd9cd.jar 2.1、复制cfr工具包到class目录下 2.2、使用Java命令解码Lambda代码实现 进入class目录class和工具包同一级目录使用java命令解码Lambda实现内容    java -jar cfr-0.145.jar LambdaPrinciple.class --decodelambdas false 2.3、解码出来的Lambda内容 /** Decompiled with CFR 0.145.*/ package tech.flygo.lambda.demo4;import java.io.PrintStream; import java.lang.invoke.LambdaMetafactory; import java.util.Arrays; import java.util.List; import java.util.function.Consumer;public class LambdaPrinciple {public static void main(String[] args) {ListString stringList Arrays.asList(one, two, three);stringList.forEach((ConsumerString)LambdaMetafactory.metafactory(null, null, null, (Ljava/lang/Object;)V, lambda$main$0(java.lang.String ), (Ljava/lang/String;)V)());}private static /* synthetic */ void lambda$main$0(String s) {System.out.println(s);} } 3、分析Lambda实现逻辑 3.1、LambdaMetafactory.metafactory()方法 从下面的源码可以看出Java是严格遵循的面向对象原则这里返回的是一个对象而不是一个函数体。 3.2、调用InnerClassLambdaMetafactory 3.3、InnerClassLambdaMetafactory.buildCallSite()构造调用点 3.4、调用InnerClassLambdaMetafactory.spinInnerClass() 4、使用Java命令打开dumps调试模式 Java命令java -Djdk.internal.lambda.dumpProxyClasses ClassName 打开调试模式 4.1、进入class文件包文件的目录 特别注意比如class文件的包路径为 tech.flygo.lambda.demo4则进入目录 tech的上一级目录 执行java命令java -Djdk.internal.lambda.dumpProxyClasses tech.flygo.lambda.demo4.LambdaPrinciple 4.2、查看Lambda生成的匿名内部类 5、Java对动态语言的支持 使用javap查看class字节码javap -p -v LambdaPrinciple Java7之后增加了动态指令InvokeDynamicJava支持动态语言
http://www.hkea.cn/news/14367472/

相关文章:

  • 网站空间流量是什么汕头模板网建站
  • 钻井网站建设有帮忙做ppt的网站或人吗
  • 广州哪里有做网站的用户注册和登录网站怎么做的
  • 电子系统设计网站html网站管理
  • 重庆网站设计软文推广营销平台
  • 做汽车价格的网站教育 企业 重庆网站建设
  • 做徽商要做网站吗安阳网站自然优化
  • 有什么网站做图片宣传海报wordpress 755权限
  • 物流网站的建设下班后做兼职任务网站
  • 五和网站建设seo 能提高网站速度吗
  • 未备案网站如何加cdn龙岩网站建设行情
  • 亳州做企业网站大连优化网站
  • 做网站的人叫什么软件网络商城平台怎么做
  • 网站建设提问wordpress显示代码框
  • 国内论坛网站有哪些wordpress 清理 数据库
  • 高权重网站怎么做重庆住建网站
  • 怎样进行网站后台管理支付网站建设费用做账
  • 晋江网站设计泉州名扬专业金华网站建设团队
  • 上海网站建设制作公司如何只做网站
  • 企业网站的制作与维护wordpress视频类模板下载
  • 有什么网站可以做免费推广广西网络推广公司
  • h5自适应网站源码华为外包一般能干多久
  • wordpress 站点打开慢lunix安装wordpress
  • 免备案做网站可以盈利吗开发和研发的区别
  • dede程序数据库还原图文教程★适合dede网站迁移铜陵市建设工程管理局网站
  • 在哪做网站关键词苏州高级网站建设
  • 深圳网站建设哪家强厦门网页设计代做
  • 做电影网站资源哪里来的杭州网站设计询问蓝韵网络
  • 网站怎么做留言提交功能云猎建筑人才网
  • 梅州哪里做网站企业建设网站怎么做账