• Разбираемся в числах с плавающей точкой (часть 0)

    Здравствуйте, хабровчане. Я давно увлекаюсь темой регистров с плавающей точкой. Меня всегда волновало то, как происходит вывод на экран и т.д. Помню, давным-давно в универе реализовывал свой класс чисел с плавающей точкой, состоящих из 512 бит. Единственное, что я не мог никак реализовать — это вывод на экран.

    Как только у меня появилось свободное время, я взялся за старое. Завел себе тетрадку и пошло-поехало. Хотелось додуматься до всего самому, лишь иногда заглядывая в стандарт IEEE 754.
    И вот что из всего этого вышло. Интересующихся прошу под кат.
    Читать дальше →
  • Яндекс! Спасибо за Uber

      Привет, Хабр! В этой статье хотелось бы рассмотреть поглощение Яндексом службы такси Uber с точки зрения обычного пользователя, который немного понимает в программировании и не любит грязный маркетинг.
      Читать дальше →
    • List.of() и все, все, все…

        Здравствуйте, хаброжители. Наконец дошли руки написать что-то на хабр. Первая статья была немного скучной и узкоспециализированной. Поэтому я пишу в песочницу во второй раз. (UPD но почему то попал не в песочницу оО)

        На этот раз речь пойдет о нововведениях Java. А именно про ImmutableCollections. Вы наверное где-то уже использовали List.of(). Скорее всего в тестах, ибо какой-то практической ценности в этих методах я не вижу. Но даже в тестах можно наткнуться на банальные подводные камни. Банальны они по причине того, что разок прочитав их код, сразу все становится на свои места, но остается очень и очень много вопросов, почему сделанно именно так, а не по другому.

        Начнем пожалуй с интерфейса List, в котором есть статические функции of.

        Целых ОДИННАДЦАТЬ!!!


        List<E> List<E>.<E>of(E e1);  
        
        List<E> List<E>.<E>of(E e1, E e2);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5, E e6);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5, E e6, E e7);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9);  
        
        List<E> List<E>.<E>of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10);  
        
        List<E> List<E>.<E>of(E... elements)  
        


        Зачем же в джаве столько методов??? Долго я задавался этим вопросом, но никак не доходили руки порыться в source коде и погуглить. Сегодня таки я нашел ответ, который меня абсолютно неудовлетворил.

        The fixed argument overloaded methods are provided to save the overhead of array-allocation, initialization and garbage collection in case of vararg calls.
        Читать дальше →