是的,你的直觉非常敏锐。这正是 C++ 开发者转 Java 时最容易“踩坑”的地方,因为两者在构造函数参数的定义上完全不同

简单来说:


1. C++ 的行为 (std::vector)

在 C++ 中,当你初始化一个指定大小的 vector 时:

C++

// C++
vector<int> v(10);

2. Java 的行为 (ArrayList)

在 Java 中,同样的参数传进去:

Java

// Java
List<Integer> list = new ArrayList<>(10);