• Зачем же все таки нужен return?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Если брать конкретно этот код, он не требует return, ведь он нарушает принцип единой ответственности. Метод daytime в вашем случае отвечает сразу за 2 действия - определение что выводим и его вывод. Правильно было бы иметь такой код:
    static String daytime(int hour){
            if (hour >24 || hour < 0)
                throw new IllegalArgumentException("Bad argument");
            if(hour > 21 || hour < 6)
                return "Good night";
            else if(hour >= 15)
                return "Good evening";
            else if(hour >= 11)
                return "Good after noon";
            else
                return "Good morning";
        }


    А вывод должен осуществляться в методе main

    ps в жизни не писал на джаве, если там косяки в синстаксисе, поправьте
    Ответ написан
  • Зачем же все таки нужен return?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Оператор return, как и следует из его названия, возвращает из метода результат или управление.

    P.S. Поразительно, что вы задаёте вопросы по Java с 2018-го года и до сих пор не освоили самые основы.
    Ответ написан
  • Почему нельзя создать приложение на habr?

    yarkov
    @yarkov
    Проект "Жизнь после смерти" - lifeafterdeath.ru
    5fbfa4be54dee863355942.png
    Что из этих строчек не понятно?
    Ответ написан
  • Почему V::set() не является членом "V"? В чем ошибка?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    В чем ошибка?

    В том, что в классе объявлено void set(int) а определяется -- void V::set(). Объявление должно соответствовать определению.
    Ответ написан
  • Как найти сумму чисел на промежутке от 1 до n(n вводит пользователь), шаг 1?

    Завести счетчик (переменная) и в цикле от 1 до n прибавлять к счетчику единицу.
    Либо испльзовать формулу подсчета суммы для арифметической прогрессии.
    Ответ написан
  • Что изучать для хакерства?

    @sergeyiljin
    Делаю дело
    Ничего. Это преступление и тебя вычислит любой крутой сотрудник информационной безопасности (тот же хакер, только антихакер).
    Ответ написан
  • Closure Vs Common Function pointer?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Если лямбда или анонимный класс не используют переменных из объемлющей области видимости, то компилятор не станет их захватывать и разницы со ссылкой на метод не будет. Чтобы убедиться в этом, проведём эксперимент. Нам понадобится три класса:
    import java.util.function.Supplier;
    
    public class ExampleWithMethodRef {
        private static String someMethod() {
            return "Internal value";
        }
    
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = ExampleWithMethodRef::someMethod;
        }
    }

    import java.util.function.Supplier;
    
    public class ExampleWithLambda {
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = () -> "Internal value";
        }
    }

    import java.util.function.Supplier;
    
    public class ExampleWithCapturingLambda {
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = () -> value;
        }
    }

    Скомпилируем все три и запустим с параметром -Djdk.internal.lambda.dumpProxyClasses=. В рабочем каталоге появятся классы, в которые разворачиваются лямбды и ссылки на методы. Посмотрим, что у них внутри:

    javap -p -c ExampleWithMethodRef$$Lambda$1
    final class ExampleWithMethodRef$$Lambda$1 implements java.util.function.Supplier {                       
      private ExampleWithMethodRef$$Lambda$1();                                                               
        Code:                                                                                                 
           0: aload_0                                                                                         
           1: invokespecial #10                 // Method java/lang/Object."<init>":()V                       
           4: return                                                                                          
                                                                                                              
      public java.lang.Object get();                                                                          
        Code:                                                                                                 
           0: invokestatic  #19                 // Method ExampleWithMethodRef.someMethod:()Ljava/lang/String;
           3: areturn                                                                                         
    }


    javap -p -c ExampleWithLambda$$Lambda$1
    final class ExampleWithLambda$$Lambda$1 implements java.util.function.Supplier {                          
      private ExampleWithLambda$$Lambda$1();                                                                  
        Code:                                                                                                 
           0: aload_0                                                                                         
           1: invokespecial #10                 // Method java/lang/Object."<init>":()V                       
           4: return                                                                                          
                                                                                                              
      public java.lang.Object get();                                                                          
        Code:                                                                                                 
           0: invokestatic  #19                 // Method ExampleWithLambda.lambda$main$0:()Ljava/lang/String;
           3: areturn                                                                                         
    }


    javap -p -c ExampleWithCapturingLambda$$Lambda$1
    final class ExampleWithCapturingLambda$$Lambda$1 implements java.util.function.Supplier {                                            
      private final java.lang.String arg$1;
                                                                                                                                         
      private ExampleWithCapturingLambda$$Lambda$1(java.lang.String);                                                                    
        Code:                                                                                                                            
           0: aload_0                                                                                                                    
           1: invokespecial #13                 // Method java/lang/Object."<init>":()V                                                  
           4: aload_0                                                                                                                    
           5: aload_1                                                                                                                    
           6: putfield      #15                 // Field arg$1:Ljava/lang/String;                                                        
           9: return                                                                                                                     
                                                                                                                                         
      private static java.util.function.Supplier get$Lambda(java.lang.String);                                                           
        Code:                                                                                                                            
           0: new           #2                  // class ExampleWithCapturingLambda$$Lambda$1                                            
           3: dup                                                                                                                        
           4: aload_0                                                                                                                    
           5: invokespecial #19                 // Method "<init>":(Ljava/lang/String;)V                                                 
           8: areturn                                                                                                                    
                                                                                                                                         
      public java.lang.Object get();                                                                                                     
        Code:                                                                                                                            
           0: aload_0                                                                                                                    
           1: getfield      #15                 // Field arg$1:Ljava/lang/String;                                                        
           4: invokestatic  #28                 // Method ExampleWithCapturingLambda.lambda$main$0:(Ljava/lang/String;)Ljava/lang/String;
           7: areturn                                                                                                                    
    }


    Невооружённым глазом видно, что байткод вариантов со ссылкой на метод и лямбдой, не использующей переменную, идентичен, в обоих случаях происходит обращение в пул констант. Но если лямбда обращается к переменной, то в прокси-классе появляется поле arg$1, содержащее значение захватываемой переменной. Формально это влияет на потребление памяти, но если вы не собираетесь генерировать лямбды миллионами, то это влияние которым можно пренебречь, тем более во времена, когда даже на мобильных устройствах объёмы памяти измеряются гигабайтами.
    Ответ написан
  • Как найти машинную бесконечность?

    @Mercury13
    Программист на «си с крестами» и не только
    Важный вопрос: есть ли неявная единица и денормализованные числа?
    Считаем, что всё-таки есть, порядок несмещённый, записан дополнительным кодом, денормализованное число записывается 10…00 в порядке. (А то всяко бывает, в нашем родном float порядок смещён на 01…11).
    Тогда максимальное число, которое можно записать, равняется 1,1…1112·22^13−1.
    Ну а бесконечность — примерно 2·22^13−1 = 22^13.
    Wolfram Alpha говорит, что это 1,091·102466.
    Ответ написан
  • Как стать хорошим андроид разработчиком?

    BojackHorseman
    @BojackHorseman
    ...в творческом отпуске...
    терпение и труд все перетрут

    ух ты, принялось
    Ответ написан
  • С помощью Retrofit2 пытаюсь получить и вывести png. Но он упрямо выдает NullPointerExeption?

    @Jacen11
    Вообще не понимаю что вы тут за хрень творите. Glide или пикасо используйте для загрузки картинки.

    Где нпе вылетает? что за классы используются? где нормальные логи? почему поток байтов должен внезапно декадироваться в битмап из пнг? что вообще происходит?
    Ответ написан
  • Минимум знаний для андроид приложения?

    alekseyHunter
    @alekseyHunter
    Android developer
    Если нажать на кнопку, скажем "А", то счётчик будет считать сколько раз на была нажата.
    И затем по свайпу куда-то либо в меню чтоб мог смотреть сколько раз та или иная кнопка была нажата.

    Это назвать приложением нельзя.
    Какой минимум знаний нужен чтоб сделать андроид приложение.

    Моя история: На чемпионате дали задание - сделать галерею на Android. До этого момента Android не изучал вообще. Передо мной была Android Studio, Java и 15 минут на сессию для выхода в Интернет. Взял время и пошел гуглить - "Java, создать галерею". В итоге, за 1,5 часа сделал галерею. Надеюсь, понятно объяснил.

    Теперь к решению вопроса:
    1) Android Studio + ЯП Kotlin
    2) Создаешь шаблонный проект
    2) Добавляешь в XML макеты кнопки (Button) и TextView
    3) Создаешь в Activity счетчик
    4) Навешиваешь на каждую кнопку OnClickListener
    5) В обработчике увеличиваешь на единицу твой счетчик и перезаписываешь текст в TextView

    Думаю сделать его на Пайтоне, поскольку некоторое время назад начал его изучать

    Вот не надо запихивать питон, куда не следует. Да, на нем можно писать, но не надо! Отставьте его ML и вебу. Он не для Android разрабатывался. Используй языки программирования, которые предназначены для решения задачи, а не потому, что ты только начал изучать какой-то язык и хочешь на нем попрактиковаться..
    Ответ написан
  • Как сделать чтобы hint PlainText'a выезжал вверх при нажатии?

    @davidnum95
    Дефолтный material edit text
    https://material.io/develop/android/components/tex...
    Либо попроще
    <android.support.design.widget.TextInputLayout
        android:id="@+id/text_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Label">
    
        <EditText
            android:id="@+id/edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text" />
    
    </android.support.design.widget.TextInputLayout>
    Ответ написан
  • Как создать цилиндрическую винтовую линию?

    @inFureal
    Смотри, используешь формулу для спирали
    espiral.png
    И двигаешь по оси Z. Чем чаще ты вызовы, тем плотнее точки, соединяешь и рисуешь
    Ответ написан
  • Какие есть сферы в системном программировании?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Относится.
    Но вот зачем такие вещи спрашивать?

    Если вы настолько не разбираетесь в ИТ, что не понимаете сферы, то какой смысл этим интересоваться?
    Если интересуетесь, то просто изучайте что-нибудь, в процессе все это узнаете.

    А то сейчас пошла мода - не знать вообще ничего, но уже выбирать специализацию.
    Ответ написан
  • Как научить нейросеть здороваться?

    @dmshar
    Хотелось бы уточнить, если позовлите.

    Я новичок в нейронных сетях, как и в машинном обучении в целом. Поэтому хотелось бы получить как можно больше подробностей, спасибо


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

    А поскольку хотелось бы знать, на какой уровень подготовки ориентировать свой краткий ответ, расскажите пожалуйста, что по теме вы уже прочитали, какие книжки (не научную фантастику, а по теме) или с какими видеокурсами вы уже ознакомились, и главное - что конкретно осталось непонятным. Это поможет людям тут немножко сэкономить свое время для более полного удовлетворения вашего запроса.
    Ждем.
    Ответ написан
  • Если способ научится читать исходники без головной боли?

    Adamos
    @Adamos
    Чтобы уверенно читать исходники, нужно, во-первых, несколько лет их писать.
    Тогда вы сможете понимать логику пишущих и узнавать популярные решения.
    Вместо исследования письма Чужих к Хищнику.
    Ответ написан
  • Независимая оценка кода тестового задания?

    gbg
    @gbg
    Баянист. Тамада. Услуги.
    Сразу видим быдлокод:
    Game* game = new Game();
    game->Execute();
    return 0;

    Наблюдаем утечку указателя, что недопустимо. Если вы позволили себе такое в тестовом задании, что вы натворите в рабочем коде? Исправление - или вовсе убрать указатель, или использовать unique_ptr()

    Использование голых указателей в современном C++ не приветствуется.

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

    Поганый кодстайл - имена функций ни КэмэлКейс ни подчеркивающий_разделитель, а какой-то гибрид, по несколько переменных на одной строчке (повод запутаться), нет комментариев.

    А потом я увидел этот cpp файл без очевидных циклов и охренел окончательно. Это полный позор, вы некомпетентны.
    Ответ написан
  • Не могу понять почему работает последняя исключения?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Числа с плавающей точкой подчиняются стандарту IEEE-754.

    Если v > 0 и h == 0, то v/h == INFINITY. Гарантировано, что INFINITY > 0.5.
    Если v < 0 и h == 0, то v/h == -INFINITY. Для него -INFINITY < 0.5.
    Если v == 0 и h == 0, то v/h == NaN. Для него любое сравнение, ЕМНИП, возвращает false.

    INFINITY -- бесконечность, у нее тип double/float

    https://en.wikipedia.org/wiki/Division_by_zero#In_...
    Ответ написан