摘要: finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因为收集的对象只和JVM的垃圾收集策略有关。1.构造函数要点:构建器(Constructor)属于一种较特殊的方法类型,因为它没有返回值.这与 void返回值存在着明显的区别。对于void返回值,尽管方法本身不会自动返回什么,但仍然可以让它返回另一些东西。构建器则不同,它不仅什么也不会自动返回,而且根本不能有任何选择.若创建一个没有构件器的类,则编译器会自动创建一个默认构件器.2.finalize( 阅读全文
posted @ 2013-02-17 18:37 时光独白 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://yang7551735.iteye.com/blog/465785Java程序的多个部分(方法,变量,对象)驻留在内存中以下两个位置:即堆和栈,现在我们只关心3类事物:实例变量,局部变量和对象:实例变量和对象驻留在堆上局部变量驻留在栈上 让我们查看一个java程序,看看他的各部分如何创建并且映射到栈和堆中:Java代码publicclassDog{Collarc;Stringname;//1.main()方法位于栈上publicstaticvoidmain(String[]args){//2.在栈上创建引用变量d,但Dog对象尚未存在Dogd;//3.创建新的Dog对象 阅读全文
posted @ 2013-02-17 17:57 时光独白 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 上一篇介绍了apk反编译的步骤,现在来研究下代码混淆,因为第三方人员完全可以通过解压APK文件并从中获取项目源码,所以对APK文件的保护显得至关重要。代码混淆亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为,代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。一、工具:Proguard\android-sdks\tools\proguard即可找到该工具,可以再docs里面找到相关手册二、 配置脚本在2.3以上的项目里可以看到proguard-project.txt文件,对于2.3以下的版本,可以去2.3以上版本的项目中复制一份。(我看到有的项目 阅读全文
posted @ 2013-02-17 17:34 时光独白 阅读(4493) 评论(0) 推荐(0) 编辑
摘要: 有时候希望学习别人的源代码,可以试一下反编译。下面介绍反编译apk的方法一、工具dex2jar-0.0.9.13.zip或者官方下载地址dex2jar内含apk反编译成java源码工具,可以把apk中的classes.dex转化成jar文件 jd-gui-0.3.5.windows.zip 官方下载地址 jdgui可以直接查看反编译后的jar包源代码二、生成jar将apk文件后缀改为zip并解压(不用改后缀也可以解压),得到其中的classes.dex,它就是java文件编译后再通过dx工具打包而成的。将classes.dex复制dex2jar.bat所在的目录下在命令行定位到dex2jar. 阅读全文
posted @ 2013-02-17 15:06 时光独白 阅读(387) 评论(0) 推荐(0) 编辑