• Java. Проблема с инициализацией переменной

    Очень надеюсь, что мсье не относит себя к «теоретикам „по учебнику“». Предложу еще немного практики. Дано два класса

    public class Primitive {
        public static void main(String[] args) {
            double[] array = new double[1000000];
            for (int i = 0; i < array.length; i++) {
                array[i] = 1.0 * i;
            }
            System.out.println("Ok");
        }
    }
    
    public class Reference {
        public static void main(String[] args) {
            Double[] array = new Double[1000000];
            for (int i = 0; i < array.length; i++) {
                array[i] = 1.0 * i;
            }
            System.out.println("Ok");
        }
    }
    
    И два вызова
    java -Xmx16m -Xms16m Primitive.java
    java -Xmx16m -Xms16m Reference.java
    

    Вопрос: что произойдет в каждом из вызовов и почему?
    Если jdk < 11, то запускать классы чуть по-другому надо. Но практик, думаю, разберется)

  • Java. Проблема с инициализацией переменной

    Я правильно понял, что в использовании double нет никаких преимуществ ни по памяти, ни по скорости по сравнению с Double?

  • Java. Проблема с инициализацией переменной

    у Java давно уж нет примитивов
    class Scratch {
        public static void main(String[] args) {
            final Foo foo = new Foo();
            for (Field field : foo.getClass().getDeclaredFields()) {
                System.out.println(field.getName() + " has type: " + field.getType());
            }
        }
    
    
        static class Foo {
            double a = 0.0;
            Double b = 0.0;
        }
    }
    
    Если примитивов нет, то почему результатом выполнения будет?
    a has type: double
    b has type: class java.lang.Double
    
    Підтримав: Ievgen Safronenko
  • Паника при рабочем контакте с коллективом

    ничего лучшего в мире ИДЕ пока не придумали.

    Одна буква пропущена в слове IDEA )