Ответ
Использование оператора new явно указывает на выделение памяти в куче для нового объекта. В Java все объекты (экземпляры классов) и массивы создаются в heap-памяти.
Почему? Куча используется для динамического выделения памяти, время жизни которой управляется сборщиком мусора (GC). Это позволяет объектам существовать дольше, чем метод, в котором они были созданы.
Примеры:
// Явное создание объекта String в куче
String str1 = new String("Hello");
// Создание массива (тоже объект) в куче
int[] numbers = new int[10];
// Создание экземпляра пользовательского класса в куче
MyClass obj = new MyClass();
Важно: Даже строковые литералы (например, String str2 = "Hello";) хранятся в куче, в специальной области — пуле строк (String Pool). Примитивные типы (int, char), если они не являются полями объекта, хранятся в стеке (stack).