• Как отключить синхронизацию в Яндекс Диск на Linux?

    @Exmender
    Возможно, кому-то ещё поможет, т.к. webdav не всем подходит, иногда всё же нужно хранить файлы локально.

    В хелпе яндекса синтаксис исключений указан в таком виде:
    exclude-dirs="exclude/dir1,exclude/dir2"
    Наверное, автора ввело в заблуждение слово exclude/. Но его всё же подставлять не нужно.

    Для примера, если нужно исключить некоторые директории в корне Яндекс Диска, то в конфиге прописать:
    exclude-dirs="Загрузки,Программы,Фотокамера"
    Тогда эти директории и содержимое локально скачиваться не будут. Для себя оставил одну папку, с которой нужна синхра, остальные занёс в исключения.
    Ответ написан
    Комментировать
  • Как перекодировать строки из windows 1251 в читаемый вид в java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Вот так должно заработать:
    System.out.println(new String(s.getBytes(StandardCharsets.UTF_8)));
    Ответ написан
    1 комментарий
  • Как в Reactor Netty Http Server получить тело POST-запроса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    https://www.baeldung.com/java-netty-http-server. Здесь кажется есть ответ.
    Ответ написан
    Комментировать
  • Как отключить WARN logs по ExceptionHandler в Spring?

    xez
    @xez
    TL Junior Roo
    Похоже, вам пригодятся Log Groups
    Ответ написан
    Комментировать
  • Как оптимизировать задачу?

    Lorien_Elf
    @Lorien_Elf
    Keep calm and drop database
    Я сварщик ненастоящий, но вижу два пути:
    - Отсылать на сервер данные массивом, а не поштучно.
    - Отправлять штучные запросы параллельно.

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

    axifive
    @axifive
    Software Engineer
    Так нет же запрета создать массив из ArrayList
    ArrayList<Object>[] list = new ArrayList[5];
    for (int i = 0; i < 5; i++) {
       list[i] = new ArrayList<Object>();
    }
    list[0].add(new Integer(1));
    list[0].add(new String("2"));
    list[1].add(new Float(5.0));

    как и ArrayList из массивов
    ArrayList<Integer[]> list = new ArrayList<Integer[]>();
    Ответ написан
  • Почему шаблонизатор не передает данные в контроллер?

    xez
    @xez
    TL Junior Roo
    В post используется @RequestBody
    Ответ написан
    Комментировать
  • Как получить список всех классов во время выполнения?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Как-то мне надо-было посмотреть какие зависимости использует реал-тайм одного бизнес-процесса.

    Я запускал логгирование действий класслоадера. И потом анализировал лог.

    $ java -verbose:class -jar application-1.0.jar
    Ответ написан
    5 комментариев
  • Какая из книг лучшая для изучения java?

    @KB_46
    торчу от Python и ассемблера
    Герберт Шилдт "Java: руководство для начинающих" или Николай Прохоренок "Основы Java" . И во второй книге кстати рассмотрены основные классы стандартной библиотеки, получение данных из сети Интернет, работа с базой данных MySQL. И куча примеров для более хорошего восприятия материала
    Ответ написан
    Комментировать
  • Какая из книг лучшая для изучения java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    подскажите одну книгу,которую буду читать и не жалеть о том что теряю время в пустую

    Просьба очень странная. Даже невозможно нормального ответить.
    Авторов обычно трое. Шилдт. Эккель. И Хорстман. Все пишут про Java. Примерно
    одно и тоже. Но поскольку ты очень занятой и тебе времени не хватает - то я тебе
    не советую читать ничего. Работай и задавай вопросы здесь. Когда появится желание
    читать - выбери жестко одну тему. Например рефлексия. И читай только про нее.
    Вот так.
    Ответ написан
    1 комментарий
  • Какая из книг лучшая для изучения java?

    egor_nullptr
    @egor_nullptr
    Герберт Шилдт "Java: руководство для начинающих"
    Ответ написан
    Комментировать
  • Как почитать строку в java?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Например, перебирая посимвольно с помощью цикла и метода String.charAt().
    И лучше выбрать другое имя для метода калькулятора.
    Ответ написан
    3 комментария
  • Существуют ли в opensource-проекты с хорошей архитектурой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    SOLID может на каком-то этапе противоречить например KISS. Например вы, как старший разработчик можете видеть "вперед" и прогнозировать потребность бизнеса в расширении какого-то функционала. И будете закладывать Open/Closed и прочие философии. А разработчик уровня Junior который неделю назад пришел на проект - этого не знает и будет писать "как чукча". Тоесть буквально то что надо сделать - тои напишет. И между вами может возникнуть спор как раз на тему SOLID против KISS. Но вы можете ошибаться в своём прогнозе потребности бизнеса. Или бизнес может передумать. В этом случае правда оказалась на стороне святой простоты (Santa simplicitas).

    Как вы понимаете такие антагонизмы не могут быть удовлетворены аж никогда. Поэтому вы никогда не найдете проекты которые удовлетворяют ВСЕМ философиям которые перечислены в списке одновременно.
    Ответ написан
    Комментировать
  • Почему не работают библиотеки Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    1. Рекомендую использовать Intellij Idea
    2. В импортах у вас указаны пакеты из java EE, а у вас java SE.
    3. Если библиотеки не входят в ваш SDK, их надо подключать отдельно. Либо скачав и указав в classpath (IDE с этим может помочь), либо используя maven / gradle.
    Ответ написан
    Комментировать
  • Как создать функцию которая может принимать любые типы переменных?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Примерно так:
    <T> void genericMethod(T argument) {
            // argument extends object
            System.out.println(argument);
        }

    т.к. не понтяно какой тип будет у аргумента, он будет обладать только свойствами Object

    <T extends SomeType> void someMethod(T argument) {
            System.out.println(argument);
        }
    
        abstract class SomeType implements SomeInterface {
        }
    
        interface SomeInterface {
            //TODO :: some methods
        }

    Можно указать, что аргумент наследуют к.л. тип и тогдаможно вызывать методы этого типа.
    Ответ написан
    1 комментарий
  • Почему Java выводит список данных в таком формате?

    al_gon
    @al_gon
    Предположительно у Вас метод toString в Organization не переопределённ.
    Если Вы сделаете System.out.println(new Organization("ФАР", "4444-55555-1", "FAR@GMAIL.COM", 18)) , то тоже будет не очень.
    Ответ написан
    2 комментария
  • Где и как подтянуть теорию по некоторым темам Java Core?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    По Multithreading
    "Что выведет следующий фрагмент кода"

    Это - самый плохой класс задач на мультипоточку. Я видел много таких. Большинство из них основаны на Race Conditions и бывало и такое что негативный эффект не воспроизводится хотя и ожидается в задаче. А не воспроизводится по тесяче причин. По другой операционке или по другой версии JDK/JRE. Вобщем что
    выведет код
    нужно выкинуть и заменить его на какой-то модульный тест да и еще и под нагрузкой. И беря
    во внимание комплексность самого вопроса я-бы не стал такое выводить например в собеседования. Так
    можно и мидла макнуть головой в сортир. Попробуйте распознать в коде например задачу обедающих
    философов. Я готов спорить на коньяк что если вы никогда не слыхали - то не распознаете подвох.

    Где и как подтянуть теорию Multithreading(М). Ответ - нигде. Самый лучший вариант - начать писать много кода
    с мультипоточкой и наблюдать. Очень многие эффекты книги не объясняют. И 99% новичек нигде не прочитает
    про разницу между использованием synchronized и atomic.

    Вобщем берите код с нагрузкой и наблюдайте.
    Ответ написан
    2 комментария
  • Съезжает ли индексы после удаления записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Индексы, будучи созданными один раз - остаются навечно.
    Если из таблицы удалены данные (50%) - то примерно
    столько - же данных будет удалено соотвественно и из индекса.

    Дисковое пространство которое занимает индекс - обычно не освобождается.
    Тут надо читать документацию по конкретной БД. Oracle может вести себя так,
    Postgres - как-то иначе.

    P.S. Интересная терминология. Съезжает...
    P.P.S Лётчик?
    Ответ написан
    Комментировать
  • Как ускорить процесс получения большого объема данных?

    compilator
    @compilator
    Senior Data Engineer
    Сходу - это выглядит как обычная батчевая обработка данный. Легко реализуется с помощью spark.
    Ответ написан
    4 комментария
  • Как ускорить процесс получения большого объема данных?

    @rPman
    что именно занимает так много времени, проведи профилирование чтобы выяснить где больше всего проводит времени твой код - например внутренняя обработка данных или база данных?
    для 10 000 данных весь процесс занимает около 20-25 мин.
    для такого объема записей это слишком большой срок для базы данных

    Что за анализ выполняется для этих данных что так медленно? почти наверняка это сделано ОЧЕНЬ не эффективно, особенно если вылезает вот это:
    Если стрим записи в БД сделать параллельным (parallelStream()), то появляется проблема при записи в БД, так как некоторые потоки пытаются одновременно обновить одни и те же данные.

    получается что для каждой единицы данных ты проводишь анализ в базе, совершаешь действия для этой записи и переходишь к следующей, логично что если в такой схеме делать это параллельно, порядок нарушается и если результат одной задачи будет зависеть от другой - можно получить 'поврежденные' данные

    Правильно - разделить свою задачу на три - анализ, обработка и сохранение данных. Затем анализ и/или обработку переделать на работу с одновременно большим количеством данных.. в оперативной памяти, а уже потом записать результат.

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

    Возможно у тебя этап загрузки из базы уже часть анализа, возможно придется переделать запрос с учетом того что он работает с большим количеством объектов, может даже больше информации выгружать.

    Современные даже десктопные машины с 16-32гб (а серверные с 128-256 легко) оперативной памяти позволяют вообще зхагрузить большую часть данных в оперативную память и обработать ее там эффективнее чем это получится делать через sql прослойку, которая рассчитана не на скорость обработки а на надежность хранения и многопользовательский доступ.
    Ответ написан
    4 комментария