网站建设编码中成员的初始化

为了确保变量在使用之前已经进行了初始化,Java做得还要彻底。如果变量是在方法内部定义的局部变量,这种保障就表现为编译时的错误信息。这个错误信息会告诉你还没有初始化。当然编译器原本可以给一个缺省值,但这看上去更像是程序员犯的错误,而给了缺省值之后反而会把这个错误给掩盖了。强制程序员提供初始化的值更像是在找bug。

但是,如果这个primitive是类的成员数据,那么情况就有些不同了。由于任何方法都可能初始化或用到这个数据,因此要求用户在使用数据之前就对它进行适当的初始化,就显得不那么现实了。然而把垃圾值留给它也是不安全的,所以类的primitive类型的数据都能确保获得一个初始值。

数组内部成员初始化

所有数组(不论它是primitive的还是对象的)都有一个可供查询的内部成员)但是你不能修改——它会告诉你这个数组有多少元素。这个成员就是length。由于Java的数组,同C和C++的一样,是从零开始计算的,因此你能访问的最大的数组下标length-1。如果是C和C++的数组,即使你过了界,它也会安安静静地接受这个指令,然后放你到内存里乱串一气,许多臭名昭著的bug就是由此产生的。

但是Java能让你免受这些问题的困扰。一旦你出了界,就会引发一个运行时错误。当然,每次访问数组的时候都要花时间检查,而且代码也会长些,但是你没法把它关了,也就是说,如果效率非常重要,那么访问数组就可能会成为拖累程序效率的一个因素。但是为了internet的安全和程序员的编程效率,Java的设计者们认为这个代价还是值得的。

«1»
最近发表
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
搜索
Tags列表
网站收藏
图标汇集
  • 订阅本站的 RSS 2.0 新闻聚合
友情链接

热门搜索: 外链域名 高外链域名 高收录域名

Copyright www.thyst.cn. Some Rights Reserved.