Задать вопрос
Ответы пользователя по тегу Java
  • Где размещать переменные: класс или метод?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    #1 от #2 отличаются только явной инициализацией переменной во втором случае. В первом - она инициализируется при создании объекта.
    #3 и #4 сами по себе вполне корректны, но бессмыслены: ht, я так понимаю - рост кошки. Нет никакого смысла переносить эту переменную внутрь метода. Метода может и не быть, а рост, видимо, быть должен. Кроме того, если бы в классе Cat были еще какие-то методы (например int getHeight() ), то они не имели возможность получить доступ к этой переменной в последних случаях.

    Вот еще пример:
    public class Cat {
        int height;
    
        public int getHeight() {
            return height;               //Все ок переменную видно.
        }
    
        public void setHeight(int height) {
            this.height = height;    //Все ок переменную видно. this.height - эта переменная, обозначенная в классе.
        }
    
        public void setInternalVar(int var) {
            int internalVar = var;   //Все ок, но переменная скрыта внутри метода
        }
        
        public int getInternalVar() {
            return internalVar;   // !!Не компилируется  - переменная internalVar не определена внутри класса.
        }
    }
    Ответ написан
    Комментировать
  • Правильно ли я пользуюсь try with resources или в чём тут проблемма?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Может и не заходить, если Connection con = connectionPool.getConnection() бросает эксепшн.
    Попробуй подебажить и/или в блок catch добавить какой-нибудь System.out.println("Inside catch block!");
    Ответ написан
    5 комментариев
  • Почему не работает вариант с HashMap?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    1. Map - это структура типа {Key, Value} - у вас перепутаны местами ключ и значение.
    2. int number = 0 - должно стоять в другом месте.
    3. Изучите методы класса Map - эту задачу можно решить в один цикл.
    Ответ написан
    2 комментария
  • С чего начать учить Java 8?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    И Хорстманн и Шилдт хороши. По поводу именно java 8 особо заморачиваться не стоит. Изменения там носят скорее эволюционный характер, потом как-нибудь доучишь уже.
    Ответ написан
    4 комментария
  • Можно ли возможностями java передать файл или текст с устройства на другое устройство?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Погугли "Java socket".
    Вот, например, на первой странице: www.dokwork.ru/2012/02/http-java-tcp.html
    Ответ написан
    Комментировать
  • Почему при запуске и остановке сервера нет сообщений?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Это проблема хрома.
    Попробуй 127.0.0.1:8080
    Ну или вот так можно:
    superuser.com/questions/646304/google-chrome-cant-...
    Ответ написан
    Комментировать
  • Ваше мнение. Какой способ ввода лучший?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Ответ: никакой.

    В Java консольный ввод почти не используется и предлагается для изучения только в учебных целях.

    Насчет буфера:

    Выглядит это примерно так
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String s = reader.readLine();


    Мне этот вариант (с буффером) больше нравится: для ввода из файла разница будет небольшая (для текста):

    BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
    String s = reader.readLine();


    Вот тут обсуждение можно почитать, на тему "Что лучше?" javatalks.ru/topics/25752
    Ответ написан
    Комментировать
  • Проблемы с IF в Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Main.java:15: error: cannot find symbol
    for (int i = 0; i < odd.size(); i++)
    ^
    symbol: variable odd
    location: class Ideone

    Java не видит переменную odd, то же самое с even и other

    Они у тебя объявлены в main
    а printList туда доступа не имеет.

    В качества quikFix-а могу предложить вынести из метода main.

    static ArrayList<Integer> even = new ArrayList<>();
            static ArrayList<Integer> odd = new ArrayList<>();
            static ArrayList<Integer> other = new ArrayList<>();


    Это будет компилироваться, но вообще-то лучше так не делать.
    Ответ написан
    Комментировать
  • Поясните код Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Вот что происходит после компиляции:

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    public class test {
        public test() {
        }
    
        public static void main(String[] args) {
            byte a = 1;
            byte b = 2;
            byte var10000 = a;
            a = b;
            int b1 = var10000 + 0 * b;
            System.out.println(b1 + " " + a);
        }
    }


    Как можно заметить, никакой магии здесь нет.

    В общем и целом я не рекомендую использовать такую "магию". Гораздо лучше писать понятный и очевидный код.
    Ответ написан
    Комментировать