Смотрю с удовольствием которую часть, стиль преподнесения материала очень интересный: вне строгих рамок, с юморцом, с попыткой встать на место слушателя, с отзывчивостью. В общем много положительных впечатлений! Даже всеми выступающими любимый звук "ээээ" помогающий им думать не расстраивает :-)
@jckgrib54725 жыл бұрын
Большое спасибо ,что объяснили насчет float...Очень давно возник вопрос на который мне никто не мог ответить. Теперь я понимаю почему ))))
@ironsadko9 жыл бұрын
Лектор - красавчег! Лихо раскладывает.
@orlikroot10 жыл бұрын
Если не сложно выложите продолжение 3-й части. Спасибо. p.s. уроки очень интересные и лёгкие для понимания
@DocterBack4 жыл бұрын
на втором уроке, чувачек в свитере сидел молодой, а к 4 уроку уже стал 15 летний фуллстек разрабочик на java :D
@aureumflamma977610 жыл бұрын
Отличные лекции и подача! Спасибо!
@tzofeolam6 жыл бұрын
26:01 Что за ересь? Два null-а как раз таки равны друг другу. А метод equals() обязан всегда возвращать false на null по контракту. Здесь полезно было бы рассказать, что хорошей практикой сравнения стринга и стрингового литерала является вызов equals именно у литерала, например "что-то".equals(s); Это позволяет избежать NPE без дополнительной проверки s != null
@vladimirkrylov49477 жыл бұрын
Сергей, спасибо за труд. Немного смутило слово "Обьект", а так все шикарно!
@MichailLLevin6 жыл бұрын
про сравнение float'ов - пурга. Да, это будет дробь на все биты, но равенство будет. Если присваивались одинаковые выражения или вычислялись одинаковые выражения - и результат одинаковый. Плавающий сопроцессор работает тоже детерминированно, никаких случайных битов. Так и в IEEE. Разница может быть если вы что-то еще посчитали, например, умножили а потом разделили одно число на 10, или если вы вызывали какие-то программные функции для округления типа банковского или случайного. А так, как написал на доске Сергей - будет всегда true. И никакой "длиннющей колбасни на 32 символа". всего 32 бита вместе с порядком, это реально всего 7 десятичных цифр Дальше больше. (null == null) - всегда true. И даже (null == undefined) тоже всегда true. Повторите спецификацию.
@0imax5 жыл бұрын
Тоже напрягло с float. Вот если бы было float a = 1.0 + 0.3; float b = 2.0 - 0.7; то тогда скорее всего получится false, хотя с т.з. математики должно быть true))
@dutnum57669 жыл бұрын
На самом деле все переменные передаются по значению. В том числе и для ссылочных типов - в этом случае передаётся значение ссылки. Но ведь при вызове подставляется именно значение ссылки, а не сам объект. В Java нет переменных типа "объект", есть только "ссылка на объект". Так что передаётся значение того что подставили - либо значение примитивного типа, либо значение ссылки.
@dutnum57669 жыл бұрын
Числа с плавающей точкой вполне нормально применять в промежуточных расчётах. Просто потом надо правильно округлить и сохранить результат в целый тип. Например проценты по банковскому вкладу посчитать - вполне уместно использовать числа с плавающей точкой.
@chavgun977 жыл бұрын
Объясните мне пожалуйста почему не стоит создавать приложения на джава с пользовательским интерфейсом?!
@R1d3rrr7 жыл бұрын
хмм... странно. Раньше я думал, что многопоточность - это наоборот плюс и это классная фишка. А оказывается ее стремятся убирать. Видимо из-за дедлоков. Впрочем, ваши видео знатно подлатали мои знания новичка :) Я узнал еще, что лучше не пихать по миллиарду паттернов проектирования в свой код, если это не требуется и еще то, что не надо учить миллионы языков программирования - это скорее минус, чем плюс. Ну типа глупо учить параллельно с Java еще и C++ и Python и еще там, не знаю, Haskell :D
@Лена-ч5м5 жыл бұрын
Спасибо!
@klaxwork12084 жыл бұрын
Вопрос: А можно ли в hashCode взять все поля, перевести их в одну строку JSON со всеми именами полей и сделать hash этой строки? Это будет правильным? Или надо обязательно побитово суммировать значения всех полей?
@ErmacRock6 жыл бұрын
Мне интересно, ребята в аудитории они кто? Программисты, которые переходят с другого языка на джаву или же новички, которые до этого не программировали? Потому что если б я не читал литературу по джаве, то ничего б не понял.
@0imax5 жыл бұрын
Программировал до этого на Delphi и немножко на Си и всё понял :)
@DenisRogovskiy10 жыл бұрын
38:10 я так и не понял, какое приложение? )))
@borispr78245 жыл бұрын
Ну вот не соглашусь про то что не надо знать как работает двигатель чтобы нажимать на педали и рулить. Приведу аналогию из web. Написать формочку на php можно без знаний как работает протокол tcp/ip. Но только если это не форма регистрации/авторизации . Иначе мы получим форму передаваемую методом get у которой Ворота на распашку.
@borispr78245 жыл бұрын
*нараспашку
@hovsephovhan0110 жыл бұрын
хорошие лекции, а про libGdx говорить не будете? ))
@СергейДиденко-о8ю6 жыл бұрын
Float зло ! но нам приходится использовать дробные числа.. потому что нам надо посчитать очки и они не целые... одно действие дает 0.10 а другое целое и тд... приходится юзать Decimal ... @PreDestroy
@АлександрКопытенко7 жыл бұрын
Если float не использовать никогда - как тогда корректно делать деление? Через математическое округление? Например: 15 / 12.
@0imax5 жыл бұрын
Смотря что делим. Деньги делятся и округляются вообще не по математическим правилам, остальное зависит от ситуации.
@tzofeolam6 жыл бұрын
40:00 Что опять за ересь? Метод Thread#run() вовсе не статический и никакой класс он не принимает, у него вообще нет параметров. Есть два базовых способа создать thread: 1. Унаследовать Thread и переопределить метод run() 2. Создать класс, реализующий интерфей Runnable и передать экземпляр этого класса как параметр одного из конструкторов Thread
@NikKoloss20117 жыл бұрын
notify() запускает первый wait () по времени, или по области видимости?
@tzofeolam6 жыл бұрын
Цитата из javadoc этого метода: The choice is arbitrary and occurs at the discretion of the implementation. Тоесть выбор совершенно произвольный.
@СергейСкляренко-э5ю7 жыл бұрын
Цитата из Хорстмана "В языке Java всегда используется только вызов по значению. Это означает, что метод получает копии значений всех своих параметров. По этой причине метод не может видоизменить содержимое ни одной из переменных, передаваемых ему в качестве параметров.Некоторые программисты (и, к сожалению, даже авторы некоторых книг) утверждают, что в Java при передаче объектов используется вызов по ссылке. Но это совсем не так."
@0imax5 жыл бұрын
Да, но в примере из лекции в метод копируется "адрес" объекта, а не сам объект. Т.е. по сути как передача указателя на объект в C++. Внутри метода можно спокойно делать с этим объектом всё что угодно (кроме new, т.к. адрес нового объекта наружу высунуть можно только через return) и все изменения будут видны снаружи. Так что если смотреть со стороны объекта - он передаётся по ссылке, а не по значению (не копируется в метод).
@heartborne1239 жыл бұрын
а время разве не в float? P.S. жаль, что на доске очень плохо видно
@alexfray72978 жыл бұрын
+heartborne123 long секунды с 1970 года
@Alex59KR9 жыл бұрын
А как же начисления %%, ПКД и прочих промежуточных расчётов без float обойтись ?
@hansolo56657 жыл бұрын
он наверно умеет :)
@borispr78245 жыл бұрын
А serialize()?
@borispr78245 жыл бұрын
Ооо про equals() интересно. А почему по умолчанию не сделали такую реализацию: обход каждого поля класса Если это объект класса, то вызываем ему euqals() сравнивая с аналогичным по имени полем сравниваемого объекта. Иначе сравниваем с аналогичным по имени полем сравниваемого объекта. Примерно так : public function equals(thisClassName $object){ foreach $this as $fieldName => $fieldValue { if ($fieldValue instaceof stdClass){ $this.{$fieldName}.euqals($object.get{$fieldName} ? : return false; } else{ $this.{$fieldName} == $object.get{$fieldName} ? : return false; } } return true; } Конечно здесь ещё надо сделать проверки и отлов исключений. Но почему в Java сразу это не реализовали. Зачем это писать для каждого класса, который хочу сравнивать?
@borispr78245 жыл бұрын
Ок, там дальше в видео есть ответ.
@HowItWorks5 жыл бұрын
Я как не старался, но так и не понял зачем нужен флоат, дабл и зачем придумали свитч конструкцию. :)
@hansolo56657 жыл бұрын
после фразы "это семафоры это мьютексы или наоборот" .... я понял что надо прекращать это смотреть.
@DocterBack4 жыл бұрын
32:32 подумал о ctrl + z :D
@rfak052 жыл бұрын
Как я сюда попал мои дорогие?
@umed_tech7 жыл бұрын
под конец я понял что ничего не понял
@life_on_fire8 жыл бұрын
package com.company; import java.util.*;public class Sort { private int [] nomber = {888,999,111,0,999,333,333,777,111,333,777}; public static void main(String[] args) { new Sort().hash(); } private void hash() { System.out.print("Было - ["); Set set = new TreeSet(); for (int i = 0; i < 9; i++) { set.add(nomber[i]); System.out.print(nomber[i]); if(i
@life_on_fire8 жыл бұрын
ясненько)) в любом случае спасибо за лекции))
@R1d3rrr7 жыл бұрын
Энивей рекомендую почаще тыкать на кнопочку "Reformat code" :D. Хотя может это ютуб так ваш код сбил.