Java для начинающих. Урок 30: Приведение примитивных типов данных.

Sdílet
Vložit
  • čas přidán 15. 03. 2017
  • МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ...
    ПРАКТИКА НА JAVA: java-marathon.tilda.ws
    Реклама и сотрудничество: alishev.neil@gmail.com

Komentáře • 101

  • @alishevN
    @alishevN  Před 6 lety +4

    Регистрируйтесь на курс "Продвинутая Java": czcams.com/video/rRe1vT0SDD8/video.html
    Практикуйтесь в написании Java кода: java-marathon.tilda.ws

  • @ilya9852
    @ilya9852 Před rokem +81

    в игре Sid Meier's Civilization существовал баг, из-за которого Махатма Ганди, который никого не должен обижать, на определённом этапе игры становился крайне агрессивным и активно использовал ядерные боеголовки. Эта ошибка случилась из-за явного привидения типов, когда число становилось больше настолько, что вместо максимального уровня доброты, менялось на максимальный уровень злости.

  • @dmitritsurjumov5663
    @dmitritsurjumov5663 Před 3 lety +54

    Хотелось бы отметить, что при привышении значения переменной byte, мы не еще дальше уходим, а начинаем второй круг от -128... тоесть byte x=256 покажет нам 0. Это число и есть диапазон между -128 и 127. Следовательно 512 покажет нам также нулевое значение)

  • @Sam-jb8cy
    @Sam-jb8cy Před 6 lety +44

    Лучшее учебное видео-пособие во всём ру-ютубе! Спасибо!

    • @user-gc4nx8tm2u
      @user-gc4nx8tm2u Před rokem +2

      всеравно надо всех смотреть, один скажет это, второй дополнит, третий закрепит примером, четвертый напомнит, пятый спросит "а знаете ли вы", шестой скажет ну что будем кодить двоичным кодом?

  • @zabikhulloibragimov284
    @zabikhulloibragimov284 Před 4 lety +12

    Этот урок должен быть на мой взгляд в первой десятке, но как говорят: лучше поздно, чем никогда.
    А так ролики очень информативны! Большое спасибо.

  • @ThePetrovichl32
    @ThePetrovichl32 Před 6 lety +5

    Огромное спасибо за эти видео уроки! Благодаря вам, обучение проходит гораздо легче и нагляднее, чем по книгам.

  • @user-jo4pu2tg3w
    @user-jo4pu2tg3w Před 6 lety +1

    Спасибо за то, что это не муторно, не скучно, как делают большинство и понятно.

  • @rahilfatullazade8230
    @rahilfatullazade8230 Před 3 lety +6

    Даже в конце 2020 года твои видео актуальны! Молодец! Смотрю из Баку!

  • @sergey3196
    @sergey3196 Před 3 lety +3

    Твои уроки понятнее и проще к восприятию, чем в именитых онлайн универах!

  • @korumstar9989
    @korumstar9989 Před 5 lety +1

    Спасибо за работу!

  • @ramenshinguji9492
    @ramenshinguji9492 Před 2 lety +2

    Спасибо большое вам за уроки!))

  • @alisaholainen6334
    @alisaholainen6334 Před 4 lety +2

    Наконец-то более менее дошло, в чём дело. Спасибо

  • @user-xl7px3mh8t
    @user-xl7px3mh8t Před 4 lety +21

    Спасибо тебе большое, за твои дела! 2020 на дворе, 3 года видео, но оно актуально!

    • @manOfPlanetEarth
      @manOfPlanetEarth Před 3 lety +1

      а то!🙂
      будем живы-здравы -- можем и чз 5 лет свериться на тему его актуальности😉🙂

    • @dom4is-544
      @dom4is-544 Před 2 lety +10

      2022 год,тема до сих пор актуальна

    • @travisbickle7260
      @travisbickle7260 Před rokem +5

      так это база. Как она может стать неактуальной.

    • @Yerasyl-ramzan-tv.
      @Yerasyl-ramzan-tv. Před rokem +2

      к 2023 оно все еще не устарело!

    • @makson363p
      @makson363p Před 3 měsíci +1

      2024 год - учу java))))

  • @zacknazarov1649
    @zacknazarov1649 Před 3 lety +1

    you are so very talented at explaining complicated things!!!!!bravo!

  • @ruslansemkiv4580
    @ruslansemkiv4580 Před 3 lety +1

    Благодаря тебе я знаю что такое Java. Спасибо !)))

  • @user-og9ge8jj6x
    @user-og9ge8jj6x Před 5 lety +1

    Спасибо за ваши труды! Всё очень понятно

    • @hikmatasgarli7036
      @hikmatasgarli7036 Před 5 lety

      извиняюсь а по каким заданиям практикуете?

    • @user-og9ge8jj6x
      @user-og9ge8jj6x Před 5 lety

      @@hikmatasgarli7036 javarush и skillbox

  • @kladmonet9
    @kladmonet9 Před 4 lety

    Благодарю за урок!!!

  • @user-fk7jl4ht1c
    @user-fk7jl4ht1c Před 5 lety +5

    Реально такого учителя просто не найти, хочется слушать и слушать) Я очень рад, что ты не забросил канал и есть ещё много учебного материала, как все окучим тут перейдем на продвинутую Java. Конечно хотелось бы твоего мнения в каком порядке учить материал или может какие книги толковые, понимаю много всего, но хочется услышать твое мнение.

    • @savgik
      @savgik Před 5 lety +3

      Все "Философия JAVA" советуют, Эккель

  • @user-bw5jo9bj4k
    @user-bw5jo9bj4k Před 2 lety +1

    Ох спасибо, очень понятно)

  • @johngatecrasher3248
    @johngatecrasher3248 Před 4 lety

    Сложно, но очень интересно рассказываете

  • @user-og6nc2yp9i
    @user-og6nc2yp9i Před 3 lety +8

    Тип byte имеет диапазон от -128 до 127

  • @user-yi6wo7jt3j
    @user-yi6wo7jt3j Před 7 lety +7

    спасибо за уроки

  • @Andrzej3935
    @Andrzej3935 Před 2 lety +1

    Благодарение!

  • @Artem_35_
    @Artem_35_ Před 6 lety

    Спасибо большое!

  • @Anatoli-bq1pe
    @Anatoli-bq1pe Před 2 lety +1

    Благодарю!

  • @divergenny
    @divergenny Před 3 lety

    Спасибо большое

  • @C2H5OHH
    @C2H5OHH Před 2 lety +1

    Спасибо!

  • @user-pg4sq8vi2r
    @user-pg4sq8vi2r Před rokem

    спасибо бро

  • @user-ck2nm8kp2g
    @user-ck2nm8kp2g Před 2 lety +2

    Спасибо огромное за ваши уроки. Это самые понятные уроки, которые я нашол на Ютубе

  • @user-ck9uf6pw6j
    @user-ck9uf6pw6j Před 4 lety +3

    Превышение диапазона это как стрелочные весы при попытке взвесить вес больше допустимого, стрелка по второму кругу пойдет

    • @joice554
      @joice554 Před 4 lety

      То есть, создаётся новая переменная? А где оно тогда хранит остаток?(прошлый круг).

  • @siberian_arg
    @siberian_arg Před 2 lety +4

    2022 на связи

  • @user-md5dm1ke8m
    @user-md5dm1ke8m Před 4 měsíci

    Всем Привет!! Дошол до 30 повторю ,все и дальше поиду ,в путь куда он ведет раскажу через год.

  • @guseynbolt8369
    @guseynbolt8369 Před rokem

    Можно ли использовать для введения значения типа обычный var?

  • @user-ly7ed2ji7j
    @user-ly7ed2ji7j Před 4 lety +1

    Java заботится о типах)

  • @MrNurislam82
    @MrNurislam82 Před 6 lety

    Возможно, далее в роликах будет ответ (пока еще не дошел).
    Правильно ли я понимаю, что по сути можно без потерь переходить на старший тип: byte -> short -> int -> long -> double ?

    • @alishevN
      @alishevN  Před 6 lety +2

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

  • @usertyfoon
    @usertyfoon Před rokem

    Ура! Наконец-то качество 1080p60!

  • @user-yu4wp3jg3k
    @user-yu4wp3jg3k Před 3 lety +5

    Размер byte от - 128 до 127

  • @user-ot1qx7ys4e
    @user-ot1qx7ys4e Před rokem

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

  • @A1xarT
    @A1xarT Před rokem

    4:45 "long в 2 раза больше" звучит неоднозначно). Не сам лонг, а количество битов в 2 раза больше, каждьій бит - увеличение в 2 раза.

  • @Razumist
    @Razumist Před rokem

    а что такое вещественные числа? есть понятное объяснение??

  • @15bleach51
    @15bleach51 Před 4 lety +1

    Вам нужно больше компрессии на голос и высоких частот

  • @user-ll1pt3nr3p
    @user-ll1pt3nr3p Před 3 lety

    2021 год пришел с Джавараш (там мало годной информации)
    Спасибо за уроки, все понятно и доступно

  • @dionraiden4554
    @dionraiden4554 Před 4 lety +5

    автоматическое это неявное

  • @step8516
    @step8516 Před rokem

    Можно я вас поправлю на первой минуте с byte не корректный трактовка в виде значения .... Это важный момент - Минимальная величина равна -128 (-27).
    Максимальное значение равно 127 (включительно) (27-1).

  • @pandadzho4223
    @pandadzho4223 Před 2 lety +1

    2021 на связи🙂

  • @bardir16
    @bardir16 Před 7 lety

    Извини,что вопрос не по теме. Почему в Java сделано так,что переменные класса мы может инициализировать по умолчанию,а локальные переменные нет? Понятно,что будет ошибка компиляции,но за чем вообще так сделано?

    • @alishevN
      @alishevN  Před 7 lety +12

      Интересный вопрос.
      Мне кажется, что причины были идеологические.
      Если бы локальные переменные инициализировались по умолчанию, то никогда бы не возникала ошибка "Variable might not have been initialized"("Переменная может быть не инициализирована").
      Благодаря этой ошибке мы можем увидеть, что мы где-то забыли инициализировать переменную. Исправив такую ошибку, мы можем рассчитывать на то, что все локальные переменные в нашей программе инициализированы.
      Если бы локальные переменные инициализировались по умолчанию,
      то мог бы возникнуть такой сценарий: (очень упрощенно)
      int x; // забыли инициализировать
      int y = 1;
      int z = 1 / x; // получили ошибку. Деление на 0.
      Так что инициализация локальных переменных по умолчанию могла бы приводить к неожиданным результатам, что плохо.

  • @emilvafin436
    @emilvafin436 Před rokem +1

    12:30
    Помогите плиз - не понял почему мы не можем из double сделать округление и превратить в Int.
    123 это же подходит под int. Почему java заставляет нас делать приведение в long ?

    • @magellan127
      @magellan127 Před rokem

      Потому что метод Math.round(); возвращает long. Можешь посмотреть как он работает под капотом в IntelliJ IDEA, нажав на данный метод через ctrl + клик мыши по методу.

  • @aliaksandrliashchenia5712

    Почему-то изображение вперед звука идет( благо тема легкая, спасибо за уроки и задания

  • @Aladinovich
    @Aladinovich Před 2 lety

    Неожиданные вещи это задачи джавараша на эту тему:
    Правильно расставь операторы приведения типа, чтобы получился ответ: d > 0.
    int a = 0;
    int b = (byte) a + 46;
    byte c = (byte) (a*b);
    double f = (char) 1234.15;
    long d = (short) (a + f / c + b);

    • @siberian_arg
      @siberian_arg Před 2 lety

      как успехи на javarush?

    • @Aladinovich
      @Aladinovich Před 2 lety

      @@siberian_arg та я бросал , потом заново всё проходил , кумарят практические задания, не задачи , а ребусы блин какие то, что бы решить задачи надо очень много гуглить, возможно это влияет на то что лучше запомнишь, а возможно это сделано для того что бы как можно дольше находился на курсе и платил соответственно

    • @user-gr7ft5gt4t
      @user-gr7ft5gt4t Před 2 lety

      Блин, да это логическая жопа, которая не имеет никакого отношения к логике самих примитивных переменных, как таковых. В задаче, как бы говорится, что операторы расставлены неправильно == расставь их правильно. Я честно сидел наверное часа 2, чёто думал, расставлял, пытался чёто понять, а что же тут неправильного с операторами, что они выдают минус, а правильная расстановка должна давать плюс. Как жеж расставить? Вот жеж как сложно! Где-то че-то я не понимаю еще! Как жеж мать его должно быть правильно? Мозг перегрелся, я пошел покемарить чуток и о чудо приснилось мне решение)))
      Короче тут не столько важно, что вообще понаписано в коде и что, где расставлено. Тут важно только одно то, что код выдает минус 1. Это и есть самая главная и основная фишка задачи. Больше ничего не надо. Вообще! Вот абсолютно пофиг, что, где и как тут расставлено. d == Минус 1!!!
      Вторая фишка, то что java (лично я вообще не понимаю этот прикол) перескакивает на противоположный конец значений при пересечении границы диапазона допустимых значений переменных. То есть, например, byte из минус 129 внезапно становится плюс 127 вместо того, что бы логически вывалиться в ошибку. Ход мысли уже понятен?
      И только в самом конце вот этой логической жопы кроется реально логическое решение. Диапазоны CHAR == 0 - 65636. Если char вывалить в минус 1...... правильно! Будет + 65635. Собственно это всё. Необходимо пометь всего один оператор в последней строчке кода: long d = (char) (a + f / c + b);

  • @user-yi6wo7jt3j
    @user-yi6wo7jt3j Před 7 lety

    сделай урок как рисовать в яве

  • @AK-it4nk
    @AK-it4nk Před 7 lety

    Как всегда лайк! У меня вопрос: на каком этапе изучения Java можно приступать к изучению программирования под Android? Необходимо Java изучить от A до Я? Спасибо!

    • @alishevN
      @alishevN  Před 7 lety +5

      Нет, не обязательно знать от А до Я.
      Лучше разбираться по ходу.

  • @ez907
    @ez907 Před 7 lety

    Извиняюсь, может я что-то упустил, но в каких случаях,моментах чаще всего на практике используется приведение примитивных типов?

    • @alishevN
      @alishevN  Před 7 lety +2

      Нет какого-то специального случая, просто вы должны знать, что так можно делать.

    • @maxlebowski962
      @maxlebowski962 Před 7 lety +1

      Н-р когда на вход приходят целые числа, а нужно вернуть вещественное как результат деления одного на другое тогда: return (double) a / b;
      где int a, int b.

  • @user-mg7gu1bk1j
    @user-mg7gu1bk1j Před 6 lety +12

    byte От -128 до 127,а не от -127 до 127

    • @bfdhtfyjhjj
      @bfdhtfyjhjj Před 6 lety +6

      Он в конце сказал что ошибся.

    • @user-rs6xc5qx7d
      @user-rs6xc5qx7d Před 4 lety +1

      Кто то до конца видео не смотрит

  • @dimapetrashchuk3036
    @dimapetrashchuk3036 Před 5 lety

    Отличные уроки, досмотрел до 30-го практически за один заход, пока что все более менее понятно, только не понятно как это все применять на практике? Ведь там мы не будем создавать абстрактных Person, Animal or Dogs...
    P. S.
    Явное.... приведение... типов... =))) А я все ждал когда же вы заметите?;)

    • @dmitry.gashko
      @dmitry.gashko Před 5 lety

      Что бы знать как это все применять на практике нужно практиковаться. Просто смотреть - мало.

    • @dimapetrashchuk3036
      @dimapetrashchuk3036 Před 5 lety +1

      @@dmitry.gashko на практике практикуюсь, делаю задания типа сортировок массивов и смежные учебные задания. Даже пробую делать свое туристическое приложение с гугл картами. Но пока не знаю как именно нужно ПРАВИЛЬНО использовать основные принципы ООП и много с того что показал автор.

    • @dmitry.gashko
      @dmitry.gashko Před 5 lety

      Ну я думаю, это нормально

    • @korumstar9989
      @korumstar9989 Před 5 lety +1

      Делаю для обучения список задач на домашнее задание (слизываю с разных ресурсов). Могу вам выслать для тренировки.
      З.Ы. К этим урокам, непосредственно, эти задания никакого отношения не имеют.

    • @dimapetrashchuk3036
      @dimapetrashchuk3036 Před 5 lety

      ​@@korumstar9989 был бы рад взглянуть на ваш список для тренировки. Буду благодарен если вышлете сюда - dimon.develop@gmail.com или сюда - facebook.com/dimon.develop.

  • @user-er5ly8rd5i
    @user-er5ly8rd5i Před 5 lety +1

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

    • @liveshow2752
      @liveshow2752 Před 4 lety

      Eto Java, detka!

    • @Skreepan
      @Skreepan Před 3 lety

      Он показывает явное приведение double к int и при этом отсекается вещественное число

  • @adyltagaibekuulu4734
    @adyltagaibekuulu4734 Před 5 lety

    если перевести double to float

  • @kirsso
    @kirsso Před 2 lety

    byte -128-127

  • @AK-it4nk
    @AK-it4nk Před 7 lety +1

    Зачем нужно приведение из большего в меньшее если выйдя за допустимый диапазон значение изменяется? Какой от этого толк?

    • @alishevN
      @alishevN  Před 7 lety +11

      В том, что вы описали нет никакого толка.
      Но если вы знаете, что в переменной типа int будут хранится только числа от 0 до 10, например, то в приведении к типу byte есть толк, так как вы будете расходовать меньше памяти.

  • @asketkuterma4418
    @asketkuterma4418 Před 4 lety

    12:33 , решил проверить метод округления . Точь в точь всё написал и он не округляет

    • @Skreepan
      @Skreepan Před 3 lety

      Он округлил с помощью Math.round(), а ты, скорее всего, обратил внимание на то, что он сделал явное приведение double -> int! В таком случае число не округляется, а просто отсекается вещественная часть типа double.

  • @Lexoid65
    @Lexoid65 Před 7 lety +3

    Позволю себе поправочку в самом начале. Вы не совсем корректно указали диапазон возможных значений для простого целочисленного типа byte. Вы сказали, что этот тип может принимать значения в диапазоне [-127; 127], но это не совсем верно. Куда-то потерялось число -128. Верно будет так: [-128; 127]

    • @alishevN
      @alishevN  Před 7 lety +7

      Да, вы правы. В видео ошибка.
      Диапазон byte: [-128; 127].

    • @user-gy2vh5di5i
      @user-gy2vh5di5i Před 5 lety +2

      Он в конце ролика сказал об этом )

  • @user-kx1hn1uf6h
    @user-kx1hn1uf6h Před rokem

    2023 год

  • @alexone9329
    @alexone9329 Před 2 lety

    Byte ot -128