Java应该拥有对象地址类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java应该拥有对象地址类型相关的知识,希望对你有一定的参考价值。

我认为现在的Java需要一种类型:对象地址。这在C++中是有的。理由是:

如果把数据内容当作一箱苹果或者其它什么东西,那么对象引用就是一个箱子,那么在方法间调用时,在现在的Java系统中就不得不每次都要重新使用一个新的箱子来包装这些内容,这是一个额外的消耗。你知道,这个对象引用并不是像一个指针那样有固定大小的地址记录内存块,而是足够大到能包含具体对象类型的所有内容。这样的额外消耗在某些特定目的的执行过程中将会使程序崩溃,如果想要避免它又会失去面向对象的特性从而无法实现API。

举例我看见的这个缺陷造成的情况:

+ 使得类似string.replace()的执行结果(不是返回结果)违反直觉,这样不得已的缺陷。
+ 使得近10年左右的时间里都无法从Java语言的层面上构建类似播放mp3资源的API,因为在基层资源的调用中大量制造了额外的消耗。这是上面那段话最后一句描述的。

因此,我期待Java的开发团队能够意识到这个问题,并在新的版本中提供这个不该挖去的基本功能。


以上是关于Java应该拥有对象地址类型的主要内容,如果未能解决你的问题,请参考以下文章

[Java] 父类和子类拥有同名的成员变量(fields)的情况

FXCop:“拥有一次性字段的类型应该是一次性的”

Java线程中的同步

表单元素

不同的用户类型/对象在同一个表中拥有内容 - 如何?

CoreData 设计模式:我应该拥有多个或多少个 NSPessistentObjectContexts 的单个对象?