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

江西中慧城乡建设开发公司网站泰州哪里有做网站的网络公司4000-26

江西中慧城乡建设开发公司网站,泰州哪里有做网站的网络公司4000-26,wordpress 注册 用户名,logo制作步骤如果一个类有内部类#xff0c;编译将生成几个字节码文件#xff0c;规则是怎样呢#xff1f; 写在前#xff0c;自己动手丰衣足食#xff0c;结论只有个人实验支持#xff0c;没有官方数据支持#xff0c;欢迎自行查阅文档然后来指正#xff0c;轻喷#xff0c;谢谢…如果一个类有内部类编译将生成几个字节码文件规则是怎样呢 写在前自己动手丰衣足食结论只有个人实验支持没有官方数据支持欢迎自行查阅文档然后来指正轻喷谢谢。 1.普通类包含内部类的样例 public class Test319 {private static class StaticInner{ }//静态内部类private class Inner{}//成员内部类public void outerFunction1(){class PartInner3{}//局部内部类3}public void outerFunction2(){class PartInner1{}//局部内部类1class PartInner2{}//局部内部类2}public Thread thread1 new Thread(new Runnable() {//匿名内部类1Overridepublic void run() {}}, thread1);public Thread thread2 new Thread(new Runnable() {//匿名内部类2Overridepublic void run() {}}, thread2);public Thread thread3 new Thread(()-{//匿名内部类使用lambda表达式},thread3); }2.编译后生成的文件目录 3.小总结 首先包括外部类在内一共有9个类而目录中只有8个class文件可以看出一套规律全部内部类编译后都会生成字节码文件但是匿名内部类有个特点 1.成员内部类外部类名后加一个dollar接内部类名 2.静态内部类和成员内部类一样毕竟都是外部类的成员静态非静态而已 3.局部内部类在dollar后比成员内部类多了个数字 4.匿名内部类dollar后只有一个数字如果使用lambda表达式创建匿名内部类将不生成class文件否则会生成。 其次局部内部类和不使用lambda表达式创建的匿名内部类他们的class文件名都包含数字数字究竟是什么含义在没有查资料的情况下首先猜测数字顺序就是内部类声明的顺序先用两个匿名内部类来进行测试后面再说局部内部类的问题。 4.关于文件名中数字的测试匿名内部类 第一步为了观察方便给代码做些调整加入简单的方法体。 public Thread thread1 new Thread(new Runnable() {//匿名内部类1Overridepublic void run() {System.out.println(Hello World);}}, thread1);public Thread thread2 new Thread(new Runnable() {//匿名内部类2Overridepublic void run() {int i 10;i 1;}}, thread2);先声明的进行print操作后声明的进行int加法计算。通过javap命令对两个字节码进行解释结果如下 由上述过程可看出小数字的进行了print大数字的进行了int1而定义的顺序也就是print操作的在前int1操作的在后。 第二步使用相同手法在.java文件中调换两个操作的声明顺序即先声明的进行int1操作后声明的进行print操作得到了相同的结论具体不再赘述。 通过反复实验结果一致。但因为没有查阅官方文档先提出一个我自己的想法数字顺序是内部类的声明顺序同时作为区分匿名内部类的依据。 5.关于局部内部类 再回过头说局部内部类的问题。匿名内部类没有名字自然需要数字区分那么如果其他有名字的内部类名称重复怎么办此情况只能发生于局部内部类同样可以先得出一个结论数字是区分重名局部内部类的依据。 但是我发现数字顺序并不是声明顺序……不再赘述实验过程简单来说在外部类的两个方法里定义名称相同的局部内部类调换两个方法的声明位置。编译后文件目录如下 这里看出数字不再是声明顺序定义了两个局部内部类的方法我是后声明的数字反而变成了1而不是2。有种被逗了的感觉。秉持着“死也不去查资料先作作看结果”的精神实验继续……*其实是我不知道该去看官方的哪个文档也懒得去找* 新定义和新编译生成的文件目录如下 public class Test319 {public void outerFunction1(){class PartInner1{}}public void outerFunction2(){class PartInner1{}class PartInner2{}}public void outerFunction3(){class PartInner1{}class PartInner2{}class PartInner3{}} }差一点我就以为数字顺序是内部类所在方法定义的逆序了。还好所做了几组实验毕竟自己归纳就已经很不科学了更不能仅从一组实验就得出结论。中间步骤不说了直接来看最后一组实验 public class Test319 {public void outerFunction1(){class PartInner1{}}public void outerFunction3(){class PartInner1{}class PartInner2{}class PartInner3{}}public void outerFunction2(){class PartInner1{}class PartInner2{}class PartInner3{}class PartInner4{}class PartInner5{}}public void outerFunction0(){class PartInner1{}class PartInner2{}class PartInner3{}class PartInner4{}} }具体的自行细品吧直接说我的结论定义内部类个数最多的方法它里面的内部类生成的class文件名称里的数字就是最小的。 6.最终总结 大致总结在上面的【3】再总结一下关于数字的事情。 首先关于为什么会有数字因为匿名内部类没名字废话。。。局部内部类名称可能相同所以数字用来做不同内部类之间的区分这也是为什么只有他们两个编译出来的字节码文件名称中带有数字。 其次关于数字顺序匿名内部类数字顺序是声明顺序局部内部类定义内部类个数最多的方法它里面的内部类生成的class文件名称里的数字就是最小的。 以上是个人实验的结果未查阅文档有一定的不可靠性。但是懒得去找和读文档了欢迎指正。
http://www.zqtcl.cn/news/124457/

相关文章:

  • 企业服务平台工程建设云深圳网站建设专业乐云seo
  • 怎么建立小公司网站抖音运营推广
  • 无锡地区做网站嵌入式软硬件开发
  • 网站建设框架怎么写企业网站本身应该就是企业( )的一部分
  • 如果做公司网站WordPress出现归档
  • 温州开发网站公司阿里云 拦截网站
  • 网站建设与管理实践实践报告南宁小程序建设
  • 网站后台功能技术要求网站建设 手机和pc
  • 嘉兴住房和城乡建设厅网站仿网站被封怎么办
  • 设计君seo查询怎么查
  • 购物网站ppt怎么做网站建设的申请理由
  • 美食网站要怎么做背景墙素材高清图片免费
  • 广东专业网站优化制作公司做编辑器的网站
  • 优惠券怎做网站自己注册网站
  • 网站建设中应该返回502还是301动画短视频制作教程
  • o2o网站设计公司韩都衣舍网站建设
  • 做网站用别人的源码可以吗在线视频制作
  • 响应式网站 有哪些弊端北京网站建设怎么样
  • 轮播网站碑林微网站建设
  • 韩国网站免费观看网站建设 博客
  • 网站网商wordpress图片生成插件下载
  • seo网站营销推广桂林网站建设内容
  • 乐达淄博网站建设制作html网站开发流程
  • 赤峰网站建设flash教程网站都有哪些
  • 网站建设哪里学成品短视频app源码搭建
  • 网站可以自己做温州制作手机网站
  • 根河企业网站建设房地产如何做网站推广
  • 东莞个人网站建设南宁网站制作公
  • 网站推广seo是什么上海市人力资源网官网
  • 玉溪做网站的公司delphi xe10网站开发