我来自C / C ++。
我什么时候可以谈论Java中的指针?什么时候参考?我可以说Object
类型的变量持有对某些数据的引用吗,即。到一个类的实例?这个变量指向一个类的实例吗?
如果Java总是按值复制,那么如果我将上述变量作为参数传递给函数,则在变量本身被复制的同时,它的内容仍然是对类实例的引用,因此通过任何实际方式它实际上不是按值复制,因为尚未复制该类的实例,但是引用是对的,对吧?
在这种情况下与C / C ++开发人员交谈时,Java开发人员会讨厌听到什么?
无论如何,这是一个很难提出的问题,我希望我能阐明这一点。
更新以重新阐述:我可以使用在学习C / C ++时所学到的含义来谈论引用和指针,并放心Java开发人员会采用与我一样的含义吗?
更新2因此,假设“指针”一词毫无意义/在Java中不应使用,是否正确?
最佳答案
如果您首先了解内存中保留的内容(堆栈与堆),就会更容易掌握,因为与C ++相比,您对内存管理的控制最少。一旦解决了这个问题,将更容易理解什么是值和什么引用类型以及按值传递和按引用传递的工作方式。 Java严格按值传递,但并非每种数据类型都是值类型。希望对您有所帮助。
这是一个好的开始:
http://www.journaldev.com/4098/java-heap-memory-vs-stack-memory-difference