Java для начинающих программистов. Часть 4

  Рет қаралды 67,013

Sergey Nemchinskiy

Sergey Nemchinskiy

Күн бұрын

Пікірлер: 46
@SPbLobovVG
@SPbLobovVG 7 жыл бұрын
Смотрю с удовольствием которую часть, стиль преподнесения материала очень интересный: вне строгих рамок, с юморцом, с попыткой встать на место слушателя, с отзывчивостью. В общем много положительных впечатлений! Даже всеми выступающими любимый звук "ээээ" помогающий им думать не расстраивает :-)
@jckgrib5472
@jckgrib5472 5 жыл бұрын
Большое спасибо ,что объяснили насчет float...Очень давно возник вопрос на который мне никто не мог ответить. Теперь я понимаю почему ))))
@ironsadko
@ironsadko 9 жыл бұрын
Лектор - красавчег! Лихо раскладывает.
@orlikroot
@orlikroot 10 жыл бұрын
Если не сложно выложите продолжение 3-й части. Спасибо. p.s. уроки очень интересные и лёгкие для понимания
@DocterBack
@DocterBack 4 жыл бұрын
на втором уроке, чувачек в свитере сидел молодой, а к 4 уроку уже стал 15 летний фуллстек разрабочик на java :D
@aureumflamma9776
@aureumflamma9776 10 жыл бұрын
Отличные лекции и подача! Спасибо!
@tzofeolam
@tzofeolam 6 жыл бұрын
26:01 Что за ересь? Два null-а как раз таки равны друг другу. А метод equals() обязан всегда возвращать false на null по контракту. Здесь полезно было бы рассказать, что хорошей практикой сравнения стринга и стрингового литерала является вызов equals именно у литерала, например "что-то".equals(s); Это позволяет избежать NPE без дополнительной проверки s != null
@vladimirkrylov4947
@vladimirkrylov4947 7 жыл бұрын
Сергей, спасибо за труд. Немного смутило слово "Обьект", а так все шикарно!
@MichailLLevin
@MichailLLevin 6 жыл бұрын
про сравнение float'ов - пурга. Да, это будет дробь на все биты, но равенство будет. Если присваивались одинаковые выражения или вычислялись одинаковые выражения - и результат одинаковый. Плавающий сопроцессор работает тоже детерминированно, никаких случайных битов. Так и в IEEE. Разница может быть если вы что-то еще посчитали, например, умножили а потом разделили одно число на 10, или если вы вызывали какие-то программные функции для округления типа банковского или случайного. А так, как написал на доске Сергей - будет всегда true. И никакой "длиннющей колбасни на 32 символа". всего 32 бита вместе с порядком, это реально всего 7 десятичных цифр Дальше больше. (null == null) - всегда true. И даже (null == undefined) тоже всегда true. Повторите спецификацию.
@0imax
@0imax 5 жыл бұрын
Тоже напрягло с float. Вот если бы было float a = 1.0 + 0.3; float b = 2.0 - 0.7; то тогда скорее всего получится false, хотя с т.з. математики должно быть true))
@dutnum5766
@dutnum5766 9 жыл бұрын
На самом деле все переменные передаются по значению. В том числе и для ссылочных типов - в этом случае передаётся значение ссылки. Но ведь при вызове подставляется именно значение ссылки, а не сам объект. В Java нет переменных типа "объект", есть только "ссылка на объект". Так что передаётся значение того что подставили - либо значение примитивного типа, либо значение ссылки.
@dutnum5766
@dutnum5766 9 жыл бұрын
Числа с плавающей точкой вполне нормально применять в промежуточных расчётах. Просто потом надо правильно округлить и сохранить результат в целый тип. Например проценты по банковскому вкладу посчитать - вполне уместно использовать числа с плавающей точкой.
@chavgun97
@chavgun97 7 жыл бұрын
Объясните мне пожалуйста почему не стоит создавать приложения на джава с пользовательским интерфейсом?!
@R1d3rrr
@R1d3rrr 7 жыл бұрын
хмм... странно. Раньше я думал, что многопоточность - это наоборот плюс и это классная фишка. А оказывается ее стремятся убирать. Видимо из-за дедлоков. Впрочем, ваши видео знатно подлатали мои знания новичка :) Я узнал еще, что лучше не пихать по миллиарду паттернов проектирования в свой код, если это не требуется и еще то, что не надо учить миллионы языков программирования - это скорее минус, чем плюс. Ну типа глупо учить параллельно с Java еще и C++ и Python и еще там, не знаю, Haskell :D
@Лена-ч5м
@Лена-ч5м 5 жыл бұрын
Спасибо!
@klaxwork1208
@klaxwork1208 4 жыл бұрын
Вопрос: А можно ли в hashCode взять все поля, перевести их в одну строку JSON со всеми именами полей и сделать hash этой строки? Это будет правильным? Или надо обязательно побитово суммировать значения всех полей?
@ErmacRock
@ErmacRock 6 жыл бұрын
Мне интересно, ребята в аудитории они кто? Программисты, которые переходят с другого языка на джаву или же новички, которые до этого не программировали? Потому что если б я не читал литературу по джаве, то ничего б не понял.
@0imax
@0imax 5 жыл бұрын
Программировал до этого на Delphi и немножко на Си и всё понял :)
@DenisRogovskiy
@DenisRogovskiy 10 жыл бұрын
38:10 я так и не понял, какое приложение? )))
@borispr7824
@borispr7824 5 жыл бұрын
Ну вот не соглашусь про то что не надо знать как работает двигатель чтобы нажимать на педали и рулить. Приведу аналогию из web. Написать формочку на php можно без знаний как работает протокол tcp/ip. Но только если это не форма регистрации/авторизации . Иначе мы получим форму передаваемую методом get у которой Ворота на распашку.
@borispr7824
@borispr7824 5 жыл бұрын
*нараспашку
@hovsephovhan01
@hovsephovhan01 10 жыл бұрын
хорошие лекции, а про libGdx говорить не будете? ))
@СергейДиденко-о8ю
@СергейДиденко-о8ю 6 жыл бұрын
Float зло ! но нам приходится использовать дробные числа.. потому что нам надо посчитать очки и они не целые... одно действие дает 0.10 а другое целое и тд... приходится юзать Decimal ... @PreDestroy
@АлександрКопытенко
@АлександрКопытенко 7 жыл бұрын
Если float не использовать никогда - как тогда корректно делать деление? Через математическое округление? Например: 15 / 12.
@0imax
@0imax 5 жыл бұрын
Смотря что делим. Деньги делятся и округляются вообще не по математическим правилам, остальное зависит от ситуации.
@tzofeolam
@tzofeolam 6 жыл бұрын
40:00 Что опять за ересь? Метод Thread#run() вовсе не статический и никакой класс он не принимает, у него вообще нет параметров. Есть два базовых способа создать thread: 1. Унаследовать Thread и переопределить метод run() 2. Создать класс, реализующий интерфей Runnable и передать экземпляр этого класса как параметр одного из конструкторов Thread
@NikKoloss2011
@NikKoloss2011 7 жыл бұрын
notify() запускает первый wait () по времени, или по области видимости?
@tzofeolam
@tzofeolam 6 жыл бұрын
Цитата из javadoc этого метода: The choice is arbitrary and occurs at the discretion of the implementation. Тоесть выбор совершенно произвольный.
@СергейСкляренко-э5ю
@СергейСкляренко-э5ю 7 жыл бұрын
Цитата из Хорстмана "В языке Java всегда используется только вызов по значению. Это означает, что метод получает копии значений всех своих параметров. По этой причине метод не может видоизменить содержимое ни одной из переменных, передаваемых ему в качестве параметров.Некоторые программисты (и, к сожалению, даже авторы некоторых книг) утверждают, что в Java при передаче объектов используется вызов по ссылке. Но это совсем не так."
@0imax
@0imax 5 жыл бұрын
Да, но в примере из лекции в метод копируется "адрес" объекта, а не сам объект. Т.е. по сути как передача указателя на объект в C++. Внутри метода можно спокойно делать с этим объектом всё что угодно (кроме new, т.к. адрес нового объекта наружу высунуть можно только через return) и все изменения будут видны снаружи. Так что если смотреть со стороны объекта - он передаётся по ссылке, а не по значению (не копируется в метод).
@heartborne123
@heartborne123 9 жыл бұрын
а время разве не в float? P.S. жаль, что на доске очень плохо видно
@alexfray7297
@alexfray7297 8 жыл бұрын
+heartborne123 long секунды с 1970 года
@Alex59KR
@Alex59KR 9 жыл бұрын
А как же начисления %%, ПКД и прочих промежуточных расчётов без float обойтись ?
@hansolo5665
@hansolo5665 7 жыл бұрын
он наверно умеет :)
@borispr7824
@borispr7824 5 жыл бұрын
А serialize()?
@borispr7824
@borispr7824 5 жыл бұрын
Ооо про 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 сразу это не реализовали. Зачем это писать для каждого класса, который хочу сравнивать?
@borispr7824
@borispr7824 5 жыл бұрын
Ок, там дальше в видео есть ответ.
@HowItWorks
@HowItWorks 5 жыл бұрын
Я как не старался, но так и не понял зачем нужен флоат, дабл и зачем придумали свитч конструкцию. :)
@hansolo5665
@hansolo5665 7 жыл бұрын
после фразы "это семафоры это мьютексы или наоборот" .... я понял что надо прекращать это смотреть.
@DocterBack
@DocterBack 4 жыл бұрын
32:32 подумал о ctrl + z :D
@rfak05
@rfak05 2 жыл бұрын
Как я сюда попал мои дорогие?
@umed_tech
@umed_tech 7 жыл бұрын
под конец я понял что ничего не понял
@life_on_fire
@life_on_fire 8 жыл бұрын
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_fire
@life_on_fire 8 жыл бұрын
ясненько)) в любом случае спасибо за лекции))
@R1d3rrr
@R1d3rrr 7 жыл бұрын
Энивей рекомендую почаще тыкать на кнопочку "Reformat code" :D. Хотя может это ютуб так ваш код сбил.
@ФёклБрашкович
@ФёклБрашкович 4 жыл бұрын
счет в банке через getClass - лол нуб
$1 vs $500,000 Plane Ticket!
12:20
MrBeast
Рет қаралды 122 МЛН
Caleb Pressley Shows TSA How It’s Done
0:28
Barstool Sports
Рет қаралды 60 МЛН
Java для начинающих программистов. Часть 3
59:30
Изучение Java в одном видео уроке за час!
1:06:58
Гоша Дударь
Рет қаралды 1 МЛН
Великовозрастный программист. Стоит ли идти в IT в 40 лет
8:17
Дилетант широкого профиля
Рет қаралды 18 М.
Java для начинающих программистов. Часть 5
48:44
Лучший Гайд по Kafka для Начинающих За 1 Час
1:15:01
$1 vs $500,000 Plane Ticket!
12:20
MrBeast
Рет қаралды 122 МЛН