[image]

Компьютерный юмор :)

 
1 25 26 27 28 29 49
+
+1
-
edit
 

Sandro
AXT

инженер вольнодумец
★★

С баша:

Anna: что-то мой метод по поиску по фамилии не работает
Alex: метод в студию
Anna:
code java
  1. public ArrayList<Student> getStudentsGivenLastName(String lastName) {
  2. ArrayList<Student> result = new ArrayList<Student>();
  3. for (Student student : this.getStudents()) {
  4. if (student.getLastName() == lastName) {
  5. result.add(student);
  6. }
  7. }

Anna: мы сегодня его тестировали с тобой
Alex: а как твой метод что-то вернёт без волшебного слова?
Anna: пожалуйстаа

- прошло 3 минуты -

Anna: ааа ретёрн
 


Так вот, кто не знает Яву, юмор очень чёрный. Дело в том, что приведённый текст программы не скомпилируется. Если вставить return result; перед последней скобкой, то скомпилируется, и с хорошей вероятностью пройдёт автоматические тесты (если они есть), но в самый неожиданный момент ответит не то.

А теперь представьте себе такой код в программе управления реактором ...
   42.0.2311.9042.0.2311.90
Это сообщение редактировалось 23.04.2015 в 11:43
+
-
edit
 

zaitcev

старожил

Sandro> Если вставить return result; перед последней скобкой, то скомпилируется . . ., но в самый неожиданный момент ответит не то.

А почему?

P.S. Наверное авторша хотела сравнение по значению.
   37.037.0
Это сообщение редактировалось 24.04.2015 в 00:35
+
-
edit
 

Sandro
AXT

инженер вольнодумец
★★

Sandro>> но в самый неожиданный момент ответит не то.
zaitcev> А почему?

А потому, что Ява-машина пытается держать пул строк, но насколько может. Ссылки на идентичные строки обычно совпадают, но иногда — нет.

zaitcev> P.S. Наверное авторша хотела сравнение по значению.

Ну ясен пень. Но сравнивает ссылки ...
   42.0.2311.9042.0.2311.90
+
+3
-
edit
 
+
+7
-
edit
 

tsonyo

старожил
★★★★
Мой бизнес по продаже цветочных удобрений шел хорошо, пока Аррlе не подала на меня в суд.
Оказывается, у них уже есть патент на продажу дерьма для нарциссов по завышенным ценам...
   42.0.2311.9042.0.2311.90
+
+5
-
edit
 

Mr.Z

опытный

D.2.> Игрались ещё во времена 95-й
D.2.> http://www.softportal.com/scr/5242/bazarbox-mid-1.gif

А во времена MS-DOS ходила шутка, что в русифицированной версии запрос "Abort, Retry, Ignore" переведён как "На.уй, Не.уй, По.уй".
   
+
+6
-
edit
 
RU Алдан-3 #28.04.2015 12:26  @Balancer#04.04.2015 15:46
+
-
edit
 

Алдан-3

аксакал
★★☆
Balancer> Страшно представить, где в этой пирамиде HTML5, CSS3, Java, Ruby, Си, Eclipse ... :)

Очевидно же - всякие там грани, рёбра и прочие чёрточки, из которых и состоит пирамида :)
   37.037.0

Mishka

модератор
★★★
Sandro> Так вот, кто не знает Яву, юмор очень чёрный. Дело в том, что приведённый текст программы не скомпилируется. Если вставить return result; перед последней скобкой, то скомпилируется, и с хорошей вероятностью пройдёт автоматические тесты (если они есть), но в самый неожиданный момент ответит не то.

Не, автоматические тесты не пройдёт, скорее всего. :) Т.к. в автоматических тестах для объектов всегда генерятся новые объекты для параметров (не те, которые используются для наполнения списка), да и списки наполняются при помощи new. Т.е. оператор == там совсем выдавать совпадения не будет. :F Значит тесты на совпадение не пройдут, а вот на несовпадения вполне пройдут. Но батарея тестов будет завалена.
   37.037.0

Mishka

модератор
★★★
code java
  1. public class Test3
  2. {
  3.    
  4.     private int countSucceeded;
  5.     private int countFailed;
  6.    
  7.     public static void main( String[ ] args )
  8.     {
  9.         Test3 test = new Test3( );
  10.         test.RunTests( );
  11.     }
  12.    
  13.     public Test3( )
  14.     {
  15.         countSucceeded = 0;
  16.         countFailed = 0;
  17.     }
  18.  
  19.     private void stat( boolean b )
  20.     {
  21.         if ( b )
  22.         {
  23.             ++countSucceeded;
  24.         }
  25.         else
  26.         {
  27.             ++countFailed;
  28.         }
  29.     }
  30.    
  31.     public void RunTests( )
  32.     {
  33.         System.out.println( "========" );
  34.  
  35.         String s1 = new String( "abc" );
  36.         String s2 = new String( "xyz" );
  37.         String s3 = new String( "abc" );
  38.         String s4 = new String( "ABC" );
  39.  
  40.         stat( testRef( s1, s2, false ) );
  41.         stat( testRef( s1, s3, false ) );
  42.         stat( testRef( s1, s1, true ) );
  43.         stat( testRef( s3, s4, false ) );
  44.        
  45.         stat( testVal( s1, s2, false ) );
  46.         stat( testVal( s1, s3, true ) );
  47.         stat( testVal( s1, s1, true ) );
  48.         stat( testVal( s1, s4, false ) );
  49.        
  50.         stat( testValIgn( s1, s2, false ) );
  51.         stat( testValIgn( s1, s3, true ) );
  52.         stat( testValIgn( s1, s1, true ) );
  53.         stat( testValIgn( s1, s4, true ) );
  54.        
  55.         System.out.println(
  56.                             "-------- Successful test " + countSucceeded +
  57.                             ", Failed tests " + countFailed +
  58.                             ", Total tests " + ( countSucceeded + countFailed )
  59.                           );
  60.        
  61.     }
  62.    
  63.     private boolean testRef( String o1, String o2, boolean expected )
  64.     {
  65.         boolean cmp = o1 == o2;
  66.         boolean res = cmp == expected;
  67.         if ( res )
  68.         {
  69.             System.out.println( "testRef passed" );
  70.            
  71.         }
  72.         else
  73.         {
  74.             System.out.println( "testRef failed" );
  75.         }
  76.        
  77.         return res;
  78.     }
  79.    
  80.     private boolean testVal( String o1, String o2, boolean expected )
  81.     {
  82.         boolean cmp = o1.equals( o2 );
  83.         boolean res = cmp == expected;
  84.         if ( res )
  85.         {
  86.             System.out.println( "testVal passed" );
  87.            
  88.         }
  89.         else
  90.         {
  91.             System.out.println( "testVal failed" );
  92.         }
  93.        
  94.         return res;
  95.     }
  96.    
  97.     private boolean testValIgn( String o1, String o2, boolean expected )
  98.     {
  99.         boolean cmp = o1.equalsIgnoreCase( o2 );
  100.         boolean res = cmp == expected;
  101.         if ( res )
  102.         {
  103.             System.out.println( "testValIgn passed" );
  104.            
  105.         }
  106.         else
  107.         {
  108.             System.out.println( "testValIgn failed" );
  109.         }
  110.        
  111.         return res;
  112.     }
  113.    
  114. }


C:\Data\CSX\SPRs&SCRs\24605>"C:\Program Files\Java\jdk1.8.0_20\bin\javac" -Xlint:unchecked ./Test3.java

C:\Data\CSX\SPRs&SCRs\24605>"C:\Program Files\Java\jdk1.8.0_20\bin\java" -cp . Test3
========
testRef passed
testRef passed
testRef passed
testRef passed
testVal passed
testVal passed
testVal passed
testVal passed
testValIgn passed
testValIgn passed
testValIgn passed
testValIgn passed

Successful test 12, Failed tests 0, Total tests 12
C:\Data\CSX\SPRs&SCRs\24605>



Если чуть поиграть с лямдба выражениями, то получится меньше и красивее, но и менее понятно. :F
   37.037.0
+
+1
-
edit
 

Luchnik

старожил
★★
Mishka> Если чуть поиграть с лямдба выражениями, то получится меньше и красивее, но и менее понятно. :F

Сорри, а в чём юмор ?
   1515
+
-
edit
 

SarBMC

опытный

Это не юмор, это правда...
Прикреплённые файлы:
 
   
+
-
edit
 

Mishka

модератор
★★★
Luchnik> Сорри, а в чём юмор ?
Юмор в том, что лямды и в правду часто позволяют красивее записать. Вот только разбираться нанмого сложнее. :F Т.е. быстрота кодирования, красота кода часто позже аукаются совсем по другому.
   37.037.0
+
+2
-
edit
 

yacc

старожил
★★★
Как отдел кадров и программисты воспринимают резюме:

ОК:
"+"
- упомянул навыки при описании работы более 5 раз
- упомянул навыки при описании работы 3-5 раз
- упомянул навыки при описании работы 1-2 раза
- в рекомендательном письме к рекрутеру обращаются по-имени
- с резюме есть рекомендательное письмо
"-"
- нет упоминания навыков при описании работы
- нет доп. образования после получения среднего

П:
"+"
- написал компилятор или ОС ради интереса
- резюме сделано на LaTEX
- вносил вклад в развитие СПО
- была учебная задача написать компилятор или ОС
- ведет блог в котором обсуждаются программистские темы
- президент клуба по программированию/робототехнике/инженерным дисциплинам
- участвовал в фестивалях по программированию/робототехнике/инженерным дисциплинам
- проходил стажировку в Гугл или Майкрософт
- написал сложную программу на скриптовых языках ( perl/python/ruby )
- знает 3 или более ЯП
- предыдущая работа требовала сходных знаний
- проходил стажировку
- основал компанию
- личный сайт содержит странички на Rail / PHP / Asp.NET
- почтовый адрес в собственном домене
- работал с модификацией скриптов на скриптовых языках ( perl/python/ruby )
- есть личная Веб-страничка
- отличник, лучший в классе
- получал грант
- упомянул работу в фаст фуде
"-"
- выглядит как пьяный на страничке в ФБ
- имеет PhD
- рекомендательное письмо общего вида
- упомянул опыт в Экселе и Ворде
- грамматические/синтаксические ошибки в резюме
- мелкий шрифт резюме
- весь опыт программирования исчерпывается уроками
- знает только один ЯП
- резюме более трех страниц
- в резюме в качестве цели присутствуют несвязанные с работой
- получил сертификат по той или иной технологии
- низкие оценки при обучении за курсы, которые относятся к работе
- первым делом упомянул Вижуал Бейсик
- с голым торсом на фото в ФБ
- в резюме переплетаются набор пробелов с табуляцией для отступа при форматировании абзацев

:)
   
+
+2
-
edit
 
+
+1
-
edit
 

yacc

старожил
★★★
Шли 60-е года прошлого века ... :)
   43.0.2357.6543.0.2357.65

ED

старожил
★★★☆
yacc> Шли 60-е года прошлого века ...

70-й вроде.

60-е вот. С высококачественным звуком: :)

   43.0.2357.6543.0.2357.65
+
+4
-
edit
 
+
+1 (+2/-1)
-
edit
 
BG TSONYO₃ #11.06.2015 20:09
+
+4
-
edit
 

TSONYO₃
tsonyo

старожил
★★★★
Я сам раозбарл, поичтсил и сбоарл клаиуавтру
   43.0.2357.12443.0.2357.124
+
+1
-
edit
 
LT Bredonosec #21.06.2015 21:53
+
+3
-
edit
 
+
+1
-
edit
 
+
+6
-
edit
 

yacc

старожил
★★★
Когда изобретатель USB-порта умрет, то его гроб сначала опустят в яму, затем поднимут, перевернут, а затем снова опустят правильной стороной.
   
22.06.2015 20:36, TSONYO₃: +1: Я буду участвовать
1 25 26 27 28 29 49

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru