java - Java 中的变量分配

标签 java c++

我是一名即将转向 Java 的 C++ 开发人员。比较这两种语言,我对 java 中的堆使用有一些疑问。

如果我不需要在 C++ 中的函数范围之外保留变量,我会在堆栈上分配它,并让调用堆栈负责清理它。 因此这段代码在 C++ 中是完全合法的,

std::unordered_map<std::string, int> map;

虽然在 Java 中,如果我编写类似的代码,

HashMap<String, Integer> map;

编译器给我一个警告, map 的值未初始化。为了抑制警告,我必须使用,

HashMap<String, Integer> map = new HashMap<>();

我的问题是,更新每个对象是否是 Java 约定,即使我不需要在调用堆栈之外保留它?

最佳答案

Java 根本不使用 C++ 样式代码分配 map 并警告您。你应该program to the interface Map .你可以用类似的东西来克服这个警告

Map<String, Integer> map = null;

或者,如您的示例

Map<String, Integer> map = new HashMap<>();

关于java - Java 中的变量分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476035/

相关文章:

java - 在 Hibernate 中使用实体作为 DTO

c++ - 为什么此C++代码无法编译?

c++ - 为单元测试创​​建 TCP 网络错误

java - 如何通过专门的比较方式检查列表中是否存在对象?

java - Flink 动态更新流作业

java - Selenium - 如何在第一次出现后从 Set 中跳过记录

java - Java 代码的 Web UI

c++ - 固定大小的unordered_map,如何定义?

C++,为二叉树实现自定义迭代器(长)

c++ - 在 CLion 中使用 freeglut 在 OpenGL 中链接错误