Задать вопрос
  • Следует ли использовать геттеры и сеттеры внутри самого класса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Правильнее конечно же через геттеры-сеттреры, так как изначально предполагалось, что есть только одна точка контроля - геттер/сеттер.
    С другой стороны - все на усмотрение разработчика, можно и напрямую к полю.
    Ответ написан
    3 комментария
  • Как найти остаток от деления чисел с помощью сложения и вычитания?

    @rPman
    берем делитель и складываем с самим собой (т.е умножаем на 2), затем полученное число снова складываем.. до тех пор пока результат не станет больше делимого числа (эту сумму не запоминаем, берем предыдущую)
    затем на выбор:
    * из разницы делимого и текущей суммы, в цикле вычитаем делитель, пока результат не станет меньше нулдя (предыдущий и будет остатком)
    * в процессе подсчета суммы делителя промежуточные результаты (массив из n элементов, каждый y*2*n) из разницы делимого вычитаем предыдущую сумму, если результат меньше нуля, не запоминаем результат и переходим к следующей промежуточной сумме, так до тех пор пока не пройдем по всем сохраненным суммам. Последним пробуем вычесть сам делитель.

    этот алгоритм заметно эффективнее просто тупого вычитания делителя, второй вариант еще более эффективный но потребляет память log(x)
    Ответ написан
    Комментировать
  • Как правильно обратиться к переменной?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Еле кровь с глаз и клавиатуры оттер.
    У вас крайне бесполезная мешанина, кратко что не так:
    1) static нужно избегать всеми возможными путями. Представьте что у вас будет если вы захотите создать еще один экземпляр Field, они будут мешать друг другу.
    2) Класс Field не несет практического смысла т.к. все что можно и нельзя static.
    3) Класс должен выполнять максимально возможную "узкую" логику
    4) Что ,s общаться с классами нужно использовать getЧтоТо для получения и setЧтоТо для задания параметров и действий.
    5) Давайте максимально осмысленные названия всему, но без фанатизма

    Если не совсем полностью правильно но пока еще просто(без интерфейсов и фабрик) максимально близко к вашему должно быть как то так:
    public class Main {
        public static void main(String[] args) {
            Scanner len=new Scanner(System.in);
            System.out.println("Введите размерность матрицы");
            int lengh = len.nextInt();
            Field field1 = new Field(lengh);
            System.out.println(field1.toString()());
            System.out.println(field1.getDeterminant());
    }

    И класс сам:
    public class Field {
        private int lgth;
        private int a[][];
        public Field(int lengh){
            lgth = lenght;
            a=new int[lgth][lgth];
            for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    a[i][j]=(int)(Math.random()*10);
                }
            }
        }
    
        public int getDeterminant(){
            switch(lght):
    		case 1: return determinant1();
    		case 2: return determinant2();
    		case 3: return determinant3();
    		default: return -1; //Если не реализовано
        }
    	
        private int determinant1(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant2(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant3(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        @Override
        public String toString(){
           String str ="";
           for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    str+=(a[i][j]+" ");
                }
                str+="\n";
            }
            return str;
        }
    }
    Ответ написан
    1 комментарий
  • Как работать с jdbc без SSL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    JDBC с SSL никак не связано и работу с или без SSL никак не ограничивает.
    Ответ написан
    5 комментариев
  • Как проверить имя параметра GET запроса в Sping?

    BorLaze
    @BorLaze
    Java developer
    Вот ешкин кот, я же тебе в предыдущем вопросе дал направление на почитать!

    Еще раз - что делают декларации в твоем коде:
    gift-certificates, я так понимаю, это глобальный префикс для контроллера

    @GetMapping(params = {ParameterName.SORT_BY}) означает: вызови этот метод, когда урл выглядит как gift-certificates?sort_by

    Когда урл не подходит, берется общий - @GetMapping - который отвечает за gift-certificates, поскольку все параметры после знака вопроса опциональны.

    Если же тебе надо как-то отловить параметры с произвольными именами - тогда проштудируй вот эту статью - там как раз разобраны типичные случаи (в частности, пункт 6).
    Ответ написан
  • Почему GET запрос не попадает в метод с аннотацией @GetMapping с параметрами в Spring?

    BorLaze
    @BorLaze
    Java developer
    Потому что params в @___Mapping предназначен для однозначной привязки запроса к методу.

    То есть,
    @GetMapping(params = {ParameterName.SORT_BY, ParameterName.SORT_TYPE})
    вызовется ТОЛЬКО если оба параметра присутствуют в урле. Вне зависимости, указано required = false или нет.
    Ответ написан
    Комментировать
  • Как оптимизировать данный код?

    1. try-catch - это дорого, и вообще предназначен он для исключительных ситуаций.
    2. Тут можно только 1 раз вызвать str.split
    int n = Integer.parseInt(str.split(" ")[0]);
                int m = Integer.parseInt(str.split(" ")[1]);

    3. Здесь нет динамического выделения памяти, так что врядли
    while(true) {  // здесь занимает больше всего ресурсов 
                        int g = 0;
                        for (int i = 0; i < acc.length; i++) {
                            g += acc[i] / pays;
                        }
                        if(g >= m) break;
                        else pays--;
                    }

    Тк нужно оптимизировать выделение памяти - советую посмотреть на диапазон значений, и использовать в массиве наиболее маленький тип данных.
    Ответ написан
    Комментировать
  • Как отправлять данные после оплаты на сайте WordPress?

    @RuRoman
    Посмотрите в сторону плагина:
    https://ru.wordpress.org/plugins/woocommerce/
    Можно реализовать как продажу цифрового контента.
    Ответ написан
    Комментировать
  • Как правильно подготовить свои проект для загрузки на GITHUB?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1) Положите в проект схему базы и тестовые данные в виде sql-файлов, или сделайте утилиту для их загрузки из какого нибудь json/xml/yaml/edn/etc...
    2) Напишите файл Readme.md, в котором опишите настройки, где они лежат и как залить схему и тестовые данные. Укажите требования к проекту, как собрать, какие типы баз использовать, какие версии явы и прочее...
    3) Попробуйте собрать свой проект без использования среды разработки, только из консоли с использованием maven, gradle или что вы там используете (ant?).
    4) Обязательно укажите запускаемый класс с main-методом, ну или укажите его в в файле-сборки
    5) Залейте проект на гитхаб и попросите кого нибудь его протестировать
    6) Необязательно, но в тесты тоже иногда смотрят. Если они есть, не отказывайте в удовольствии и их в проект пихнуть.

    Ява-программисты, они умные, могут и в мавен, и в градл, и в пропертях поковыряться.
    Ответ написан
    3 комментария
  • Почему виджет вылезает поверх меню при скролле?

    Said927
    @Said927
    a little advanced программист
    Здравствуйте, для решения вашей проблемы вам потребуется сделать одно из этих действий:
    1 вариант. В настройках вашей темы запретить контенту быть выше вашего хедера (если есть такое)
    2 вариант. Дайте вашему хедеру фон в ваших настройках, если и этого нету то можете задать

    Если уже
    это сделали то вот самый возможный вариант:
    в файле style.css вашей темы впишите вот эту строчку
    .hfe-nav-menu__layout-horizontal{
    z-index:1000;
    }
    Ответ написан
    1 комментарий
  • Можно ли для придания интерактивности на вэб-страницах в место javascripta использовать java?

    @alexalexes
    Стандарт html верстки не запрещает использования какого-то другого языка программирования, кроме js.
    <script type="text/ваш-язык-программирования"></script>

    Только вот незадача, кроме браузера, такое решение требует установки в ОС модуля среды выполнения - будь это java или silverlight, или что-то еще.
    Как правило, типичный пользователь не обладает таким роялем в кустах, у него есть только браузер и ему наплевать, есть ли в ОС какие-то специфичные модули, он хочет видеть ваш сайт исключительно с помощью браузера.
    Так что, только javascript.
    Ответ написан
    Комментировать
  • 404 Not found. apache, nginx, vue, vue-router что сделать, чтобы убрать ошибку?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Выкинуть апач, настроить как следует проксирование, убедиться, что запрашиваемый ресурс действительно существует.
    Ответ написан
    1 комментарий
  • Как использует ОЗУ бесконечный цикл?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не должно влиять на ОЗУ никак. К слову, ОЗУ - это оперативная память (RAM). То есть нагрузки на оперативную память точно нет.

    Влияние было бы, если бы в каждой итерации цикла выделялась бы новая память под что-то. А этого не происходит. Переменные у вас либо статические, либо на стеке (т.е. временные). В теории переменные на стеке могут переполнить стек, если вы используете рекурсию (это когда функция вызывает саму себя), но вы её не используете, так что всё норм.
    Ответ написан
    1 комментарий
  • Как должно выглядеть правильно регулярное выражение для поиска имени хоста?

    fzfx
    @fzfx
    18,5 дм
    print(URL.findAll(~(?=https://)[^\s]+~))
    Ответ написан
    Комментировать
  • Как должно выглядеть правильно регулярное выражение для поиска имени хоста?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    У вас как минимум точка не экранирована, а значит это "любой символ". Но это так, к слову.

    А ответ такой:
    def URL = "sdfgsdfg https://inclouds.bizmail.ru hgfghfhgfhgf gfhgf"
    
    print(URL.findAll(/(?<=:\/\/)[\w\d.]+/))

    Хотя и он далёк от совершенства. Более точные условия задачи помогут его улучшить.
    Ответ написан
    Комментировать
  • Как правильно спроектировать обработку ошибок в слоях?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Репозиторий может иметь методы find() — возвращает Optional
    а может иметь get() — возвращает или нужный объект или исключение, которе может лететь дальше или перехвачено контроллером и выброшено дальше

    на уровне контроллера норм перехватывать исключения, даже если дальше есть глобальный ErrorHandler
    Ответ написан
    Комментировать
  • Как правильно вызвать void метод в main?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Ошибка в строке
    Complex res = real.increment(imaginary);
    и в
    System.out.println(real.increment(imaginary));
    такая же ошибка. Метод increment возвращает void, и изменяет внутреннее значение. void нельзя ничему присвоить, и нельзя никуда передать. Можешь считать это "пустотой", "ничем". void метод ничего не возвращает, поэтому его возвращаемое значение нельзя никуда присвоить.
    Нужно разнести это в разные строки:
    real.increment(imaginary);
    System.out.println(real);
    Ответ написан
    1 комментарий
  • Можете дать пример для использование паттерна декоратор?

    BorLaze
    @BorLaze
    Java developer
    Вот тут неплохое объяснение.

    Вообще, на этом сайте по паттернам довольно хорошие примеры - и не сильно много текста, и в то же время достаточно подробно рассказывается, как, когда и почему нужно использовать тот или иной шаблон.
    Ответ написан
    2 комментария
  • Стоит ли плагину доверят писать unit-тесты?

    @Mercury13
    Программист на «си с крестами» и не только
    Проверим один тест.
    // Какую концепцию проверяем?
       // Это не просто проверка функции ListAll, это проверка какой-то концепции кода
       // Варианты.
       // 1. Пустой listAll() даёт пустой список.
       // 2. Непустой listAll() даёт непустой список.
        void testListAll() {
            ArrayList<Product> productList = new ArrayList<Product>();
            // Проводим поиск в списке — что в этот список вносится?
            // И не будет ли физической зависимости тестов друг от друга?
            // И для чего вообще нужен этот search, если мы listAll тестируем?
            // Что такое ProductRepository и он вообще проверен?
            when(this.productRepository.search((String) any())).thenReturn(productList);
            // Ну, хорошо.
            List<Product> actualListAllResult = this.productService.listAll("Keyword");
            // Отказ, они не same: первый мы только что создали, а второй откуда-то пришёл.
            assertSame(productList, actualListAllResult);
            // Получается, что концепция — поиск, когда ничего не находится?
            assertTrue(actualListAllResult.isEmpty());
            verify(this.productRepository).search((String) any());
            // Получается, единственная концепция, которую мы тестируем,— поиск в пустом списке даёт пустоту
            // (и та некорректная из-за assertSame).
            assertTrue(this.productService.getAll().isEmpty());
        }


    Ну что, понятно, что или фтопку такие инструменты, или нужно их серьёзно осваивать, прежде чем будут приносить хоть какие-то результаты?
    Ответ написан
    Комментировать