Posted by:tool

Posted on:2004-12-31 06:39

有synthetic标记的field和method是class内部使用的,正常的源代码里不会出现synthetic field。小颖编译工具用的就是jad.所有反编译工具都不能保证完全正确地反编译class。所以你不能要求太多。

下面我给大家介绍一下synthetic

下面的例子是最常见的synthetic field

class parent

{

public void foo()

{

}

class inner

{

inner()

{

foo();

}

}

}

非static的inner class里面都会有一个this$0的字段保存它的父对象。编译后的inner class 就像下面这样:

class parent$inner

{

synthetic parent this$0;

parent$inner(parent this$0)

{

this.this$0 = this$0;

this$0.foo();

}

}

所有父对象的非私有成员都通过 this$0来访问。

还有许多用到synthetic的地方。比如使用了assert 关键字的class会有一个

synthetic static boolean $assertionsDisabled 字段

使用了assert的地方

assert condition;

在class里被编译成

if(!$assertionsDisabled && !condition)

{

throw new AssertionError();

}

还有,在jvm里,所有class的私有成员都不允许在其他类里访问,包括它的inner class。在java语言里inner class是可以访问父类的私有成员的。在class里是用如下的方法实现的:

class parent

{

private int value = 0;

synthetic static int access$000(parent obj)

{

return value;

}

}

在inner class里通过access$000来访问value字段。

希望通过上面几个例子,大家对synthetic 有所了解。

java反编译的语句_Java开发网 - 请教,java反编译的问题相关推荐

  1. java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...

    //Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(Stri ...

  2. java中appletviewer是什么意思_Java开发网 - 请教,appletviewer的问题

    Posted by:KOF_Jazz Posted on:2005-04-19 21:56 小弟刚接触java,买的书是java2全方位学习,书上给了个例子,SayHello.java,源码如下: p ...

  3. java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题

    Posted by:an350901450 Posted on:2008-12-30 14:44 请教一个问题 我的IDL文件: module anyM{ interface anyI{ any pr ...

  4. java 实现文件下载保存框_Java开发网 - 任何类型的文件下载时都会弹出文件保存框的实现(原创)...

    于 2002-12-12 11:09 :):):)任何类型的文件下载时都会弹出文件保存框的实现:(:(:( 简介: 从事WEB程序设计的朋友一定都遇到过这种情况吧,对于一些操作系统可以识别的文件类型如 ...

  5. java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...

    Posted by:shsen Posted on:2003-05-16 16:26 不太清楚怎么写啊,看看我的代码: public class DealInternalFrame extends J ...

  6. java at发短信_Java开发网 - 通过at指令怎样发送短信????

    Posted by:tiantao78 Posted on:2004-05-26 14:04 九十年代初,AT命令仅被用于modem操作.由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS B ...

  7. java 句柄无效_Java开发网 - java.io.IOException: 句柄无效???

    Posted by:aideliwu Posted on:2004-09-01 21:32 我思考le很久,也查看啦代码很久,可还是百思不得其解, 在Freejava中运行的结果还是: java.io ...

  8. java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)

    Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包.从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JC ...

  9. java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:

    1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...

最新文章

  1. oracle发送邮件附件,oracle发送邮件存储过程:
  2. Fibonacci数列Linux程序,Linux shell实现斐波那契数列编程
  3. 【django轻量级框架】django项目部署到阿里云服务器流程
  4. Linux编程获取网络信息总结
  5. Visio中插入mathtype公式,解决直线交叉弯曲的问题
  6. C/C++学习之路: STL
  7. 还原virtual函数的本质-----C++
  8. 南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴
  9. java项目实现服务器监控,Java实现服务器状态监控
  10. java停机保存数据_哦,这就是java的优雅停机?(实现及原理)
  11. 黑洞时间公式,为根号内为负是什么意思
  12. android代码混淆作用,Android代码混淆
  13. 关于ILRunTime + FGUI 组合使用的补充
  14. 软件设计 基础篇(一) 开发文档
  15. 使用预计算实时全局光照优化照明-设置场景
  16. UART协议TTL电平接口高性能低功耗SI4463无线透传通信模块
  17. 三菱PLC控制步进电机(外部接线原理图)
  18. html5css字竖着显示,css如何设置竖排文字?
  19. 阿里云免费SSL证书申请与安装使用-附Nginx,Apache,IIS 6,IIS 8配置SSL教程
  20. Linux进程描述符task_struct结构体

热门文章

  1. java高手之路上的必备基础知识
  2. yum 安装rabbitMQ
  3. Loadrunner乱码的解决办法
  4. Densenet论文解读 深度学习领域论文分析博主
  5. 【数据科学】什么是数据分析
  6. 数据通路习题分析之二
  7. Pytorch中的train和eval模式详解
  8. Ubuntu 14.04安装Python3
  9. Linux后台运行python程序并输出到日志文件
  10. Python股票分析系列——系列介绍和获取股票数据.p1