• Работа Java Junior Developer?

    MrJcnby
    @MrJcnby
    Желаю вам поскорее устроиться. Но, если все так как вы говорите - возможно проблема именно в проекте ( а точнее в коде) ? Попросите опытного товарища посмотреть на написанный вами код, возможно есть фрагмент который отпугивает работодателей.

    По поводу кода, вы делаете MVC, поэтому перепишите проект под MyBatis/Hibernate и Backbone/AngularJS и мне кажется ваши шансы устроиться как минимум удвоятся, если не больше и самое главное- вы получите огромный опыт на данном этапе. Потому как вы покажете, что умеете применять современные технологии.
    Ответ написан
    2 комментария
  • Работа Java Junior Developer?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    Понизьте планку запросов.
    Ответ написан
    6 комментариев
  • Поясните код Java?

    @aol-nnov
    надо полагать, это пример undefined behaviour.

    страшная магия, которая, будучи примененной в продакшене, испортит здоровый сон разработчику.
    компилятор джавы, как показано в одном из ответов, добавил временную переменную, чем и обеспечил такое поведение.
    Например, если изобразить этот пример на си (gcc), там такой магии не будет. Опять же, полагаю, другой компилятор может поступить иначе.
    Ответ написан
    2 комментария
  • Поясните код Java?

    @bromzh
    Drugs-driven development
    Сперва вычисляется выражение справа от присваивания, потом оно записывается в переменную, указанную слева. При этом, так как эти переменные - числа, то они неизменяемы. Т.е. сами значения таких переменных изменить нельзя, можно лишь присвоить им новые. Вычисление выражений использует старое значение идентификатора. Новое значение присвоится только после всех вычислений.
    Тут сначала вычислится выражение b (оно будет равно первоначальному значению b, т.е. 2) и его значение сохранится в переменной a (которая вторая по-счёту). Но так как это тоже часть выражения, то в первой a будет ещё старое значение. Оно складывается с результатом выражения 0*(a=b), получается снова старое значение a, которое и присвоится идентификатору b.
    Ответ написан
    Комментировать
  • Поясните код 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);
        }
    }


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

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

    @zelan
    Кратко обо мне не получится.
    Если в классе A не объявлен ни один конструктор, то он по умолчанию содержит конструктор без параметров - A(), однако, если объявлен хотя бы один конструктор с параметрами, то конструктор A() исчезает. Но исчезает он только тогда, когда явно не объявлен.

    Примеры
    //содержит неявно 1 конструктор A()
    class A{
    }
    
    //тоже содержит  конструктор A() но явно
    class A{
        A(){
        }
    }
    
    //cодержит СОДЕРЖИТ ТОЛЬКО 1 конструктор, конструктора A() уже нет
    class A{
        A(int x){
        }
    }
    
    //есть оба конструктора
    class A{
        A(int x){
        }
    
        A(){}
    }


    В примере класс A содержит один конструктор с параметром - A(int x), это значит, что он не имеет конструктора A(), и его нужно (при необходимости) определить самому.

    Механизм наследования таков:
    - мы хотим создать объект B, вызвав конструктор B(int b)
    - первой строкой конструктора должна быть строка super(...) - с параметрами или без, это нужно для того чтобы сначала сконструировался родитель, ведь B унаследован от A
    - если первая строка другая, то компилятор подставляет конструктор родителя без параметров - super(), в этом случае будет вызвано создание объекта A с помощью конструктора A().
    - но так как в объекте A не определен этот конструктор - вылетает ошибка

    Можно исправить так
    Либо добавить в объект A конструктор A(), либо в конструктор объекта B, добавить явный вызов конструктор родителя super(int x) ( в данном случае у родителя есть только 1 конструктор - A(int x)
    Ответ написан
    1 комментарий