java的易错点

阅读: 评论:0

java的易错点

java的易错点

摘 要:本文旨在罗列出在编码过程中极易出错的二处,它们都来自生活中,来自于我们学生日常编码的经验中,这些出错点大多都利用了那些会导致debug的行为,要么违反直觉,要么晦涩难懂,它们被认为是陷阱(trap)、缺陷(deficiency)、和小概率案例(corner case)。任何具有JAVA应用知识的人都可以理解这些谜题,但是其中许多点对大多数师生造成了麻烦,我们通常花费数十个昼夜才能完全解决其中一个。我们探索出的解决方案大多引用了《JAVA语言规范第3版》,有些方案还涉及了对语言和API设计决策的讨论,大多数bug可以通过静态分析(static analysis )检测到。希望我们的总结能让苦恼于JAVA编程的人群更深层次理解这门语言。

关键词:Java;出错编码;陷阱缺陷;解决办法

中图分类号:TP311.52

1 静态导入难题

在编译器抉择使运行程序的方法之前,需要确定挑选程序运行方法的范围。编译器会优先考虑正确命名的方法并由此确定挑选范围,在本例中,这个范围就是importDuty类,因为其涵盖了隶属于Object的toString方法。但是,该范围内没有可以响应toString(args)调用的方法,因此编译器将不执行段程序,将显式出错。

即大家想要的toString方法没有被包含,至少在所调用的范围之内。导入的toString方法被importDuty从Object那里而来的同命名的方法所掩盖(shadow)了[JLS 6.3.1]。在日常编程过程中,大家经常混淆遮蔽与遮掩的概念,二者的关键区别是一个声明只能遮蔽类型相同一个声明:一个方法声明可以遮蔽另一个方法声明。对于此问题,大家可以参照变量声明与包声明,以及类型声明和包声明的相互遮蔽关系,以上三组关系类似,希望对大家有所提示。

2 唯一奇数参数问题

这个简单的问题,是希望提醒广大编写爱好者,无论何时使用了取余符号,都要考虑操作数和结果的符号。该操作符号的行为在其操作数非负时一目了然,但是当一个或两个操作数是负数时,它的行为就不那么显而易见了,所以大家要警惕。

3 结语

以上只是Java编写中易出错的两处,被我们引用来当作例子,希望对java工作者有所提示,当然还有许多细节需要我们细心留意。Java本身结构简单,语句巧妙,蕴含丰富的变化。其实本文也旨在宣言一种思路:如果我们能够在掌握书本知识的基础上,对我们常犯的错误加以总结、提炼及深化,我们对java这门语言一定会有更深的体会和理解。

参考文献:

[1]Joshua Bloch, Neal Gafter.Java puzzlers[M],2005,5.

[2]Cay S Horstmann,Gary Cornell.Core Java Volume I:fundamental[M],2008,6.

作者简介:赵赫(1991.9-),男,汉族,河南省郑州市人,郑州大学,本科,研究方向:通信工程。

本文发布于:2024-01-30 20:19:21,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170661716222577.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:java   易错点
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23