java反编译的语句_Java开发网 - 请教,java反编译的问题
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反编译的问题相关推荐
- java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...
//Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(Stri ...
- java中appletviewer是什么意思_Java开发网 - 请教,appletviewer的问题
Posted by:KOF_Jazz Posted on:2005-04-19 21:56 小弟刚接触java,买的书是java2全方位学习,书上给了个例子,SayHello.java,源码如下: p ...
- java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题
Posted by:an350901450 Posted on:2008-12-30 14:44 请教一个问题 我的IDL文件: module anyM{ interface anyI{ any pr ...
- java 实现文件下载保存框_Java开发网 - 任何类型的文件下载时都会弹出文件保存框的实现(原创)...
于 2002-12-12 11:09 :):):)任何类型的文件下载时都会弹出文件保存框的实现:(:(:( 简介: 从事WEB程序设计的朋友一定都遇到过这种情况吧,对于一些操作系统可以识别的文件类型如 ...
- java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...
Posted by:shsen Posted on:2003-05-16 16:26 不太清楚怎么写啊,看看我的代码: public class DealInternalFrame extends J ...
- java at发短信_Java开发网 - 通过at指令怎样发送短信????
Posted by:tiantao78 Posted on:2004-05-26 14:04 九十年代初,AT命令仅被用于modem操作.由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS B ...
- java 句柄无效_Java开发网 - java.io.IOException: 句柄无效???
Posted by:aideliwu Posted on:2004-09-01 21:32 我思考le很久,也查看啦代码很久,可还是百思不得其解, 在Freejava中运行的结果还是: java.io ...
- java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)
Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包.从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JC ...
- java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:
1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...
最新文章
- oracle发送邮件附件,oracle发送邮件存储过程:
- Fibonacci数列Linux程序,Linux shell实现斐波那契数列编程
- 【django轻量级框架】django项目部署到阿里云服务器流程
- Linux编程获取网络信息总结
- Visio中插入mathtype公式,解决直线交叉弯曲的问题
- C/C++学习之路: STL
- 还原virtual函数的本质-----C++
- 南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴
- java项目实现服务器监控,Java实现服务器状态监控
- java停机保存数据_哦,这就是java的优雅停机?(实现及原理)
- 黑洞时间公式,为根号内为负是什么意思
- android代码混淆作用,Android代码混淆
- 关于ILRunTime + FGUI 组合使用的补充
- 软件设计 基础篇(一) 开发文档
- 使用预计算实时全局光照优化照明-设置场景
- UART协议TTL电平接口高性能低功耗SI4463无线透传通信模块
- 三菱PLC控制步进电机(外部接线原理图)
- html5css字竖着显示,css如何设置竖排文字?
- 阿里云免费SSL证书申请与安装使用-附Nginx,Apache,IIS 6,IIS 8配置SSL教程
- Linux进程描述符task_struct结构体