Ответы пользователя по тегу Java
  • Как сделать правильный выбор между C# и Java?

    LeEnot
    @LeEnot
    Енот-андроид
    Если вы хотите использовать преимущества JVM, но вам не нравится Java как язык, для платформы есть множество других вариантов: Groovy, Scala, Clojure... Я бы рекомендовал Kotlin. Он красивый, удобный, современный и на него сейчас многие топ компании переходят. Собственно в части Android и backend разработки.
    Вообще, многое зависит от специализации. Как только вы перестанете распыляться и определитесь с тем, чем будете заниматься профессионально, тогда можно будет и средства разработки выбрать.
    Ответ написан
    3 комментария
  • В чем отличие протоколов от абстрактных классов и интерфесов?

    LeEnot
    @LeEnot
    Енот-андроид
    Ну я, например, вижу отличия:
    - в протоколе, в отличие от интерфейса, возможно задание переменных, переназначаемых реализующим протокол классом
    - протокол расширяем
    А вообще, насколько я понял, протокол это миксин. Т.е. в нем можно прописать реализацию, в отличие от интерфейсов Java. Конечно, тут можно упомянуть статические методы в интерфейсах Java 8, но, как по мне, статические методы это зло и они должны умереть :) Я вот сейчас, наверное, разливаюсь мыслию по древу, но! Когда я читал описание Kotlin, авторы обещали "Если вам в Java что-то не нравится, то с вероятностью 50% мы в Kotlin это исправили." Опачки - подумал я, загадал static methods и checked exceptions и попал в десятку.
    Ответ написан
    3 комментария
  • Объясните простыми словами что такое Java EE?

    LeEnot
    @LeEnot
    Енот-андроид
    Java EE это Java (как язык) и набор различных вспомогательных средств (фреймворков, библиотек) для нужд бизнеса. То есть, средства для написания надежных, переносимых, масштабируемых программ для работы с БД, веб и т.д. В противоположность, например, можно поставить Java ME, где масштабируемость, скажем, не нужна, а нужна компактность и скорость выполнения.
    Как итог: Java EE = язык Java + набор средств разработки для бизнеса.
    Ответ написан
    Комментировать
  • Почему для разработки под Android выбрана Java?

    LeEnot
    @LeEnot
    Енот-андроид
    На Basic4Android, Delphi XE, разработка, извините, через задницу.
    1. Java вариант поддерживается производителем (Google)
    2. Комьюнити гораздо, гораздо больше
    Этих двух пунктов должно быть достаточно. Тут может быть их гораздо больше, но я с Basic4Android иDelphi XE не работал и не знаю всех косяков, которые из-за них вылезают )
    Ответ написан
    Комментировать
  • Как реализовать чат как whatsapp?

    LeEnot
    @LeEnot
    Енот-андроид
    Вам нужно при регистрации в чате присваивать каждому юзеру и конференции уникальный идентификатор.
    1. Когда юзер будет посылать сообщение, он (неявно) будет посылать и идентификатор цели сообщения - другого юзера или конференции.
    2. Получив сообщение, сервер должен проверить, кому оно предназначается и разослать только нужным целям.
    3. Приложение, приняв сообщение, по идентификатору определит, в какой вкладке его отображать
    Ответ написан
  • Есть ли в IntelliJ IDEA какие-нибудь киллер-фичи, каких нет в Netbeans?

    LeEnot
    @LeEnot
    Енот-андроид
    А вы сами попробуйте.
    На что вам чужие советы? Кто-то в VIM пишет и нахваливает )
    Если же вы попробовали IDEA и вам по-прежнему нравится NetBeans - используйте его, раз вам удобнее )
    Ответ написан
    4 комментария
  • Как отправить POST json data в body через WebView?

    LeEnot
    @LeEnot
    Енот-андроид
    Т.е. вот так:
    HttpPost httpost = new HttpPost("http://...");
    httpost.setEntity(new StringEntity("{\"param_name\":\"param\"}"));
    httpost.setHeader("Accept", "application/json");
    httpost.setHeader("Content-type", "application/json; charset=UTF-8");
    HttpResponse response = httpClient.execute(httpPost);

    у вас не работает?
    Ответ написан
    7 комментариев
  • Массив float в int, возможно ли?

    LeEnot
    @LeEnot
    Енот-андроид
    float []arrFloat = {2.0, 0.1, 0.02};
    int []arrInt = new int[3];
    for(int i = 0; i < 3; i++){
        arrInt[i] = (int)(Math.round(arrFloat[i]*100))
    }


    При этом при использовании просто (int)(arrFloat[i]*100) вы получите проблему округления отрицательных чисел.
    Ответ написан
    1 комментарий
  • Как подгрузить данные в ListView из SQLite при прокрутке списка?

    LeEnot
    @LeEnot
    Енот-андроид
    Используйте CursorAdapter. Он такие операции (подгрузка данных из БД окном) выполняет "под капотом".
    Ответ написан
    Комментировать
  • Как идентифицировать устройство?

    LeEnot
    @LeEnot
    Енот-андроид
    Храните хеш пароля пользователя у себя в базе и на устройстве. Прочитайте про хеширование (hashing), соль (key salt), KDF
    Хранить логин и пароль пользователя на устройстве не безопасно - любой, получивший доступ к устройству, при желании, сможет их оттуда вытащить и получить доступ к данным пользователя в вашем сервисе.
    UPDATE: на самом деле вам нужно хранить хеш хеша пароля пользователя
    Ответ написан
    Комментировать
  • Приведение к типу интерфейса: какой смысл?

    LeEnot
    @LeEnot
    Енот-андроид
    Гуглите "динамический полиморфизм".
    Вкратце: при вызове метода интерфейса, java-машина проверяет тип реально использующегося объекта и вызывает его метод.
    Ответ написан
    Комментировать
  • Какой объем данных можно хранить в SQLite?

    LeEnot
    @LeEnot
    Енот-андроид
    При РАЗУМНОМ применении sqlite, проблем со скоростью у вас не будет.
    Грамотно стройте схему и индексы. Ну и не нужно туда пихать сериализованные картинки и другие файлы.
    На счет предельного объема - вы скорее заполните sdcard, чем дойдете до предела sqlite.
    Ответ написан
    Комментировать
  • Можно ли создать два AsyncTask'a в одном классе?

    LeEnot
    @LeEnot
    Енот-андроид
    Вы, конечно, можете добавить сколько угодно AsyncTask'ов в классе, но для загрузки изображений я бы порекомендовал использовать специализированную библиотеку типа Picasso, Glide, UniversalImageLoader или аналогичную.
    Какие преимущества вы получаете?
    1. Асинхронная загрузка изображений без головной боли
    2. Опциональное кеширование изображений - в том числе в RAM и на sdcard
    3. Масштабирование и преобразование изображений в thumbnails
    4. Еще много всяких приятных мелочей - см. настройки и опции библиотек
    Кстати, гугловцы для своих проектов использую Glide, очень много разработчиков используют Picasso - так что в поддержке недостатка не будет.
    Ответ написан
    6 комментариев
  • Как сохранить ArrayList в MySQL Java?

    LeEnot
    @LeEnot
    Енот-андроид
    Вам нужно завести отдельную таблицу для групп, в которой будет 2 столбца: id студента и id группы. Т.е. в таблице будет по строке на каждую группу студента.
    Ответ написан
    2 комментария
  • Стоит ли начать изучение java с книги "Изучаем Java" Кэти Сиерра?

    LeEnot
    @LeEnot
    Енот-андроид
    Вам никто не запрещает совмещать эти две книги )
    А вообще, конечно, стоит! Все книги серии Head First написаны очень доступно и понятно.
    "Философия" на русском написана вполне сносно, а задания можно ставить себе самому - что ВАМ интересно. Все равно ответов не будет и проверяющих - тоже.
    Что еще могу сказать? Описание IDE в книге не так важно, в начале своего программистского пути вы будете использовать едва 10% ее возможностей, остальное можно подтянуть по ходу обучения. Я бы советовал Intellij IDEA.
    Ответ написан
    Комментировать
  • Генерация JSON с вложенными объектами?

    LeEnot
    @LeEnot
    Енот-андроид
    Вам говорят, что вы пытаетесь обратиться к lazy-loaded collection вне сессии Hibernate. Можно поменять тип загрузки, можно добавить @JsonIgnore перед @OneToMany
    Ответ написан
    Комментировать
  • Какая операция запрещена в onLoadFinished?

    LeEnot
    @LeEnot
    Енот-андроид
    Из документации на Loader:
    Note that normally an application is not allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved. See FragmentManager.openTransaction() for further discussion on this.

    т.е. последний вариант.
    Ответ написан
    1 комментарий
  • Как отобразить нужную строку в Spinner из БД sqlite в Android?

    LeEnot
    @LeEnot
    Енот-андроид
    Даже не знаю, как вам ответить - в вашем коде очень много проблем, ни одно решение нормально не вписывается. Допустим, можно так:
    private String loadSpinnerBaudrateData() {
            String selected;
            baudrate = new ArrayList<String>();
            Cursor baudrateCursor = database.query(TABLE_NAME,
                    new String[]{BAUDRATE_ID, BAUDRATE_NAME, BAUDRATE_SELECTED},
                    null, null, null, null,
                    BAUDRATE_NAME);
            baudrateCursor.moveToFirst();
            if (!baudrateCursor.isAfterLast()) {
                do {
                    String name = baudrateCursor.getString(1);
                    if (baudrateCursor.getInt(baudrateCursor.getColumnIndex( BAUDRATE_SELECTED )) == 1){
                          selected = name;
                    }
                    baudrate.add(name);
                } while (baudrateCursor.moveToNext());
            }
            baudrateCursor.close();
            database.close();   // Закрываем БД
            return selected;
        }


    а потом:
    String compareValue = loadSpinnerBaudrateData();
    int spinnerPosition = BaudratedataAdapter.getPosition(compareValue);
    BaudrateSpinner.setSelection(spinnerPosition);

    Но вообще это криво и неправильно...
    Ответ написан
  • Почему может не работать команда javac в java SE 1.8_051-b16?

    LeEnot
    @LeEnot
    Енот-андроид
    Используйте Intellij IDEA и будет вам счастье.
    Честное слово, откуда берутся эти "гуру"-извращенцы, которые советуют писать программы в блокноте и компилировать в консоли? Это как ходить в деревенский нужник при наличии японского унитаза и пола с подогревом в туалете.
    Ответ написан
    5 комментариев