了解下JAVA的谈谈JAVA程序的反编译
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。现在JAVA言语在全球局限正热火朝天般的盛行,它广范地使用在INTERNET的数据库、多媒体、CGI、及静态网页的制造方面。1999年在美国对JAVA程序员的需求量初次凌驾C++!
作者因比来剖析一些JAVA程序,对JAVA的反编译举行了一番懂得,上面将我所懂得的情形作以下先容,但愿对JAVA喜好者有所匡助。
JAVA是接纳一种称做“字节编码”的程序布局,分为小程序(嵌进到HTML文件中)和使用程序(间接在命令形态下实行)两品种型。不管哪一种布局,一旦用JAVAC命令编译后,均酿成后缀为CLASS的同名可实行文件。这类文件是不成浏览的代码。
经查阅了SUN公司的JDK(JDK1.1.3)文档材料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于JDKBIN上面,经按申明利用后,感应扫兴,本来这个“反编译”仅可反编译出JAVA程序的数据区(界说)、多少办法和类的援用等。
这里我用了一个复杂例子来讲明成绩。
JAVA的源程序hello_java.java以下:
importjava.applet.*;
importjava.awt.*;
publicclasshello_javaextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawString("HelloJava!
",20,20);
}
}
经用反编译命令:javap-c-package-public-privatehello_javahello.java
失掉的反编译了局(hello.java)以下:(有关javap命令的选择参数请见其利用申明,这里-c暗示选择了反编译)
Compiledfromhello_java.java
publicsynchronizedclasshello_javaextendsjava.applet.Applet
/*ACC_SUPERbitset*/
{
publicvoidpaint(java.awt.Graphics);
publichello_java();
<p>
最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 Java是一种计算机编程语言,拥有跨平台、面向对java 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
页:
[1]