垃圾回收
有些语言,比如C++,动态分配对象必须使用delete运算符手工释放它。而JAVA则采用了不同的方法,自动的重新分配内存。完成这种功能的技术叫垃圾回收。垃圾回收是这样工作的:当一个对象的引用不存在时,这个对象就被认为不再需要的了,它所占用的内存就可以被回收。这时候不需要像C++那样明确的清楚对象。垃圾回收只是在程序执行过程中偶然发生。对于那些已不再使用但仍旧存在的一个或多个对象来说,垃圾回收不会因此而简单的发生。此外,不同的JAVA运行系统采用不同的垃圾回收方法,但对于大多数情况来说,编写程序时不用过多的考虑这些。
finalize()方法
在删除一个对象之前,有时需要确认某些动作已经完成。例如:如果一个对象已经获得了某些系统资源,比如一个文件句柄,那么在删除该对象之前需要确定该资源已经被释放。JAVA提供了一种叫做终止的机制对这些情况进行处理。使用终止可以定义指定的动作,这个动作在一个对象刚好被垃圾回收器回收时发生。
为类增加一个终止,只需简单的定义finalize()方法。无论何时对那个类中的对象进行回收时,JAVA的运行系统都会调用这个方法。在finalize()方法中指定在一个对象被销毁前所必须要执行的那些动作。finalize()方法的通常形式如下:
protected void finalize()
{
// finalization code here
}
理解finalize()只在垃圾回收前被调用是非常重要的。例如,当对象超出作用域时,finalize()就不会被调用。这意味着不会知道finalize()将会在什么时候执行。因此,程序中应当提供由其它对象使用的释放系统资源的方法。对于一般的程序操作不必依赖finalize()。
方法重载
在JAVA程序中,只要所声明的参数不同,就可以在同一个类中定义两个或更多具有相同名字的方法。当这样做时这些方法就称为被重载,这个过程称为方法重载。当一个重载的方法被调用时,JAVA使用参数的类型和个数取决于实际调用哪一个被重载的方法。因此,重载的方法在参数类型和数量上肯定不会一样。重载的方法可以有不同的返回类型,仅单独使用返回类型不能辨别是哪个方法。当JAVA程序遇到调用重载方法时,它仅仅执行与调用
参数相匹配的那个方法。
除一般的方法重载外,也可以重载构造函数。下面举一个方法重载的例子:
// Demonstrate method overload 下面类说明了重载的test()方法。 |
参数传递
通常一种计算机语言有两种向子程序传递参数的方法。第一种方法叫做值调用(call-by-value)。这种方法将一个参数的值复制到子程序的形式参数里。因此,子程序参数的变化并不会影响到用于调用的参数。第二种参数传递的方法叫做引用调用(call-by-reference)。在这种方法中,把一个参数(不是参数的值)的引用传递给形式参数。在子程序里,这个引用用于对调用中指定的实际参数进行访问。这就意味着形式参数的变化会影响到用于调用子程序的参数。JAVA根据传递的内容使用这两种方法。
| 共4页: 上一页 [1] [2] 3 [4] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |