Java中的C++智能指针有什么问题吗?Java中是否有“智能指针”?
7
A
回答
12
所有的Java'指针'(引用)都是智能指针。
Java在托管环境中运行。这意味着Java使用垃圾收集器来清理不再被引用的变量。
虽然Java的引用与指针稍有不同。 Java会将您在C++中看到的所有指针值和数学抽象出来。因此,无论何时您创建一个新对象并将其存储到一个变量中,您都将其存储到Java的'智能指针'版本中。
3
不,在Java中没有任何类的指针。一般来说,无论如何,你不需要智能指针,因为你已经有了一个垃圾回收器来做自动管理内存分配/释放周期的引用计数。
5
是的,没有。没有,Java中不存在像指针对象那样的东西。是的,每个对象都是一个“智能指针”,这意味着它被垃圾收集和照顾自己的一生。
6
我只听说过内存管理环境中的智能指针。由于内存管理是Java平台的核心,显然没有必要这样做。
想到最接近的匹配是java.lang.ref.WeakReference和java.lang.ref.SoftReference,因为它们允许在一定程度上自定义垃圾回收。
相关问题
- 1. Boost智能指针
- 2. C++智能指针
- 3. 是否有C++/CLI智能指针项目(例如scoped_ptr)?
- 4. 增强是否有数组向量的智能指针?
- 5. 是否有Valgrind用智能指针检测“内存泄漏”
- 6. C++中的智能指针
- 7. 智能指针在智能指针管理数组内
- 8. 有没有CUDA智能指针?
- 9. 指针和智能指针的区别
- 10. 智能指针代替指针
- 11. GMP和智能指针
- 12. C++:实现智能指针
- 13. 智能指针与PythonQt
- 14. C++智能指针表现
- 15. 激活智能指针?
- 16. 智能指针::地图
- 17. 二叉树智能指针
- 18. 智能指针三规则?
- 19. 数组和智能指针
- 20. 智能指针和dynamic_cast
- 21. 智能指针类predeclaration
- 22. 我的函数应该接受指针还是智能指针?
- 23. 用智能指针替换现有的原始指针
- 24. 是否将智能指针分配给_variant_t需要手动AddRef()?
- 25. 有没有推荐的方法来测试智能指针是否为空?
- 26. 获取智能指针的指针指针
- 27. 在UML中绘制智能指针
- 28. 如果我定义一个指向智能指针的指针,这是否消除了智能指针的优点?
- 29. 一旦你采用boost的智能指针,是否有任何情况下使用原始指针?
- 30. std :: get_temporary_buffer返回的是原始指针而不是智能的指针
我认为你可能会混淆那里的东西。智能指针是一个包含原始指针的包装,引用计数或边界检查。 Java没有原始指针,并且内置了GC。 – delnan 2011-01-24 15:21:04
请参阅Wikipedia对智能指针的解释以获取更多信息:http://en.wikipedia.org/wiki/Smart_pointer – 2011-01-24 15:21:48
语言实现本身(JVM)占据了大部分(如果不是全部)通常由C++中的智能指针处理的作业。 – 2011-01-24 15:23:25