我在一些材料中看到了这句话:
“在 Java 中,像 int 和 char 这样的简单数据类型的操作与在 C 中一样。”
我想知道实际上它们在 Java 和 C++ 中是不同的吗?
在 C++ 中,像 Java 中的原语这样的简单变量也被分配了一个内存地址,因此 C++ 中的这些原语类型也可以有一个指针。然而,Java 中的原语没有像对象那样分配内存地址。
我对么?
谢谢!
几乎。
在 java 中,原语也被分配了内存,但这发生在内部,您无法获得引用。
第三个原因是为内存管理提供安全性。
在简单类型方面,Java 和 C++ 之间存在一些差异。内存分配是不同的,因为 Java 隐藏了显式指针和引用的概念。您只需创建简单类型并分配一个值。另一个区别是 Java 对每个简单类型检查Java Simple Types使用标准化的内存占用。另一方面,C++ 依赖于编译它的平台。另一点(我不知道这是否有区别)是分配给简单类型是线程安全的。我没有在 C++ 中做过任何多线程编程,所以我不确定这是否是一个考虑因素。
正确的。
在java中,您不能将引用(指针)传递给原始类型。//事实上Java中没有指针这种东西。
在 Java 中,原始类型只能按值传递。有一种解决方法,但除非您的情况需要,否则通常不建议这样做。您可以使用包装类。何时使用包装类和原始类型
只有对象通过引用传递。
原始类型也分配在堆栈上,对象分配在堆上。
对于大多数基本的东西,它们的工作方式相同,但有很多细节差异。
原语存储在堆栈中并按值传递。
int x = 5;
int y = x;
y++;
// y = 6
// x = 5
对象存储在堆上并通过引用传递。
Object a = new Object();
Object b = a;
b.someAction();
// A and B point to the same object and both have had the 'someAction()' performed
我不知道这是否是你的要求,但我很无聊,想发布一些东西