JavaRush /Java Blog /Random-TK /5-6 ýyllyk tejribesi bolan Java programmisti üçin tehniki...
dio
Dereje
Москва

5-6 ýyllyk tejribesi bolan Java programmisti üçin tehniki söhbetdeşlik üçin 15 sorag

Toparda çap edildi
Programmistiň tejribesi başlangyç işläp düzüjiniň derejesinden (2 ýyldan 4 ýyla çenli) uly işläp düzüjiniň derejesine (5 ýyldan 7 ýyla çenli) artdygyça, Core Java-da söhbetdeşlik soraglary hem üýtgeýär. 5-6 ýyllyk tejribesi bolan Java programmisti üçin tehniki söhbetdeşlik üçin 15 sorag - 1Elbetde, maglumat gurluşlary, algoritmler we obýekte gönükdirilen programmirlemek ýaly esaslar saklanýar, ýöne soraglar we jogaplar has jikme-jik bolýar. Coreaşuly işläp düzüjilerden “Core Java” -yň haýsy soraglary berilýändigi ýa-da “Java” -yň ýokary derejeli işgäri üçin geçirilen söhbetdeşlikde haýsy soraglara garaşmalydygy barada soraglar alýaryn. Bu meni birneme geň galdyrýar, sebäbi uly bir ösüşçi bolanyňyzdan soň, awtomatiki usulda söhbetdeşliklere gatnaşyp başlaýarsyňyz we söhbetdeşlikden nämä garaşmalydygyňyzy bilmelisiňiz, ýöne şol bir wagtyň özünde, söhbetdeşligi bilýändigime düşünýärin soraglar, Oňa taýýarlanmak has aňsat bolar. Elbetde, Java bilen 2-3 ýyllyk tejribesi bolan programmistlere berilýän soraglary almarsyňyz, ýöne bu söhbetdeşlik başynda aýrylmaýar. Telefon söhbetdeşlikleri bilen ýüzbe-ýüz söhbetdeşlikleriň arasynda hiç hili tapawut göremok. Käbir soraglar öňküligine galýar, käbir soraglar has jikme-jik jogaplary talap edýär. Bu makalada, telefon söhbetdeşliginde uly işläp düzüjiniň söhbetdeşliklerinde berlen 15 sany esasy Java tehniki soraglaryny paýlaşaryn . Thehli jogaplary goýamok, ýöne häzirki blogda ýa-da Javarevisited blogynda tapyp bilersiňiz .

5-6 ösüş tejribesi bolan programmistler üçin “Core Java” -da 15 sorag

Questionshli soraglar 5 ýyldan gowrak iş tejribesi bolan işleýän uly işläp düzüjilerden alyndy. Döredijiler bu soraglara işiň dürli döwürlerinde, şol sanda telefon we ýüzbe-ýüz söhbetdeşliklerde duş geldiler.
  1. getJava-da synp usuly nähili işleýär HashMap?

    Hawa, bu henizem uly bir işläp düzüjiniň iň meşhur soraglarynyň biri, telefon söhbetdeşliginde garaşmaly, şondan soň köp soraglar ýüze çykar, jogaplaryny şu ýerden gözläň .

  2. Esasy obýekt haýsy 2 usuly durmuşa geçirmeli HashMap?

    equalsWehashcode

  3. Näme üçin açar hökmünde ulanylýan zatlar üýtgewsiz bolmaly?

    Haş kody hemişe şol bir bahany yzyna gaýtarmak üçin.

  4. Göwrümlilik nädip ConcurrentHashMapgazanylýar?

    Иногда этот вопрос звучит на интервью How: разница между ConcurrentHashMap и Hashtable в Java, поищите ответы здесь.

  5. Как сделать an object общим для разных потоков? Или How передать an object от одного потока к другому?

    Есть много путей реализации этого, такие How очереди, обменники, но блокируемые очереди с шаблоном проектирования Producer/Consumer это самый простой способ, чтобы передать an object из одного потока в другой.

  6. Как узнать что в вашей программе есть взаимная блокировка?

    (Получив дамп потока, используя kill -3, применяя JConsole or VisualVM). Я предлагаю подготовиться к этому вопросу на интервью очень тщательно, так How интервьюеры любят детали, они спрашивают бывали ли в вашем проекте подобные проблемы и How вам удалось их решить.

  7. Как избежать взаимных блокировок при codeировании?

    What бы разобраться с блокировками и получить полную информацию о теме, прочтите это.

  8. What такое ожидание занятости ("Busy spinning")? Почему вы должны использовать его?

    Один из интереснейших вопросов многопоточности для старшего разработчика Java, Busy spinning это стратегия ожидания, когда поток выполняет ожидание в цикле, при этом не используя ресурсы процессора и How бы засыпая. Эту стратегию используют когда время ожидания очень мало, при этом не нагружается процессор и не останавливается поток, сохраняются все данные, которые могут быть потеряны при запуске потока на другом ядре процессора. Этот вопрос популярен у программистов создающих высоко нагруженные проекты, где программисты добиваются чрезвычайно низких задержек в работе, в диапазоне микро- и мor- секунд.

  9. What такое блокировка Чтения и Записи (ReadWriteLock)? Использует ли ConcurrentHashMap ReadWrite блокировки?

    Блокировка Чтения и Записи это такая реализация блокировки, когда несколько разных потоков пытаются произвести операцию чтения и записи с одним an objectом. сама по себе операция чтения не изменяет an object, что допускает многопоточные операции чтения без блокировок. Java предоставляет реализацию ReadWriteLock с которой стоит ознакомиться. Например ConcurrentHashMap не применяет ReadWriteLock, instead of этого он делит Hash на отдельные части и блокирует их отдельно, таким образом в любой момент времени заблокирована только часть хеша, а не он весь. Этот вопрос популярен у опытных разработчиков, обычно просят ответить подробнее, спрашивают разные реализации ReadWriteLock для разных случаев.

  10. Как сделать an object иммутабельным (не изменяемым) в Java? Зачем делать an object иммутабельным?

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

    Посмотрите это и научитесь делать an objectы иммутабельными. На собеседовании по этому вопросу возможны дополнительные уточнения, в зависимости от полноты вашего ответа. Например когда вы говорите, что Spring иммутабельный, будьте готовы ответить почему строки так же иммутабельны в Java.

  11. Какие шаблоны проектирования в используете?

    Всегда ожидайте вопрос о шаблонах проектирования на собеседовании к вакансии старшего разработчика. Лучше отметить любой GOF шаблон, а не Singleton or MVC который использует каждый второй Java программист. Лучший ответ может быть шаблон Декоратор or шаблон Внедрение зависимости, которые довольно популярны в Spring Framework. Так же хорошо если называемые вами шаблоны проектирования вы действительно использовали и знаете к Howому компромиссу ведет их применение. Как только вы произнесете название шаблона проектирования, например: "Фабрика", интервьюер тут же спросит: "Вы использовали это в своих проектах ?" Поэтому будьте готовы привести примеры и рассказать почему вы выбрали в своем проекте именно этот шаблон.

  12. Знаете ли вы о принципе Открытости/Закрытости or Принцип подстановки Барбары Лисков?

    Шаблоны проектирования основаны на принципах an objectно-ориентированного проектирования.

    Настоятельно рекомендую посмотреть мою статью 10 принципов an objectно ориентированного дизайна, которые должен знать программист Java, по крайней мере иметь представление о том How эти принципы помогут вам писать an objectно ориентированный code. Если у вас нет ответа на этот вопрос, вы можете вежливо ответить "нет" , никто не ожидает от вас знания ответов на все вопросы. Однако зная ответ на вопрос, который вызывает затруднения у большинства разработчиков, вы делаете свою кандиdateру на собеседовании очень сильной.

  13. Какой шаблон проектирования будете использовать, что бы защитить ваш code от сторонней библиотеки, которая будет заменена через пару лет ?

    Это всего лишь один из возможных вариаций вопроса о шаблонах проектирования, которые могут быть заданы вам в зависимости от того о чем вы говорите сейчас на собеседовании. Один из способов How оградить свой code от сторонней библиотеки, это зависимость от интерфейса, а не от реализации и использование зависимостей что бы обеспечить конкретную реализацию. Подобные вопросы часто задают старшим разработчикам с 5-7 годами опыта работы.

  14. Как предотвратить SQL инъекцию в codeе на Java?

    Bu sorag Java Java EE döredijiler tarapyndan adaty Java programmistlerinden has ýygy-ýygydan berilýär, ýöne taýýarlykStatement hakda öwrenmek üçin henizem ajaýyp sebäp. “PreparedStatement”, öňünden düzülen SQL jümlesini görkezýän obýektdir. “PreparedStatement” diňe bir has gowy öndürijilik bilen çäklenmän, SQL sanjymlaryndan hem goraýar. Ilki bilen Java EE ýa-da J2EE bilen işleýän bolsaňyz, "Sessiýa düzediş hüjümleri" ýa-da "Sahypa skriptleri" ýaly käbir howpsuzlyk meseleleri bilen tanyş bolmaly we bu hüjümlerden gaça durmaly bolarsyňyz.

  15. WeakReference, SoftReference we PhantomReference ýaly Java salgy görnüşleriniň arasyndaky tapawudy düşündiriň? Näme üçin olary ulanmaly?

    Aslynda, salgylanmalaryň ähli görnüşleriniň arasynda diňe bir tapawut bar - Java Zibil Kollektorynyň ýüz tutýan zatlary bilen özüni alyp barşy. Java-da täze operatoryň kömegi bilen döredilen obýektler güýçli salgylanma bilen döredilýär. Zibil ýygnaýjy, şular ýaly zatlary diňe güýçli salgylanmalar ýok bolanda ýok edýär. Java.lang.ref paketinde 3 görnüşli baglanyşygy beýan edýän 3 synp bar, degişlilikde SoftReference, WeakReference, PhantomReference. “SoftReference” arkaly döredilen obýektler, JVM ýady talap edýän halatynda ýygnalar. .Agny, JVM OutOfMemoryError kadadan çykmazyndan ozal ähli SoftReference obýektleriniň ýygnaljakdygyna kepillik bar. “SoftReference” köplenç ýady köp saklaýan keşler üçin ulanylýar. WeakReference, ýeterlik mugt ýat bolsa-da, bir obýekti gutarmakdan halas etmeýär. Obýekte güýçli we ýumşak salgylanmalar galmansoň, gutaryp bolar. Keşler we biri-birine bagly zatlaryň zynjyrlaryny döretmek üçin ulanylýar. PhantomReference arkaly döredilen obýektler, GC salgylanylýan obýektleriň bölünip bilinjekdigini kesgitlänlerinde ýok edilýär. Bu görnüşli salgylanma gutarnykly alternatiwa hökmünde ulanylýar (has çeýe çeşme çykarmak üçin).

    Bu, Java dörediji bilen söhbetdeşlik soraglarynyň tutuş sanawy. Uly işläp düzüjileriň arasynda gaty meşhur bolan kadadan çykma, zibil ýygnaýjy, JVM sazlamak hakda köp möhüm soraglary öz içine almadym, belki indiki bölümine goşaryn. Emma soraglaryň haýsydyr birine jogap tapmasaňyz, maňa habar beriň we bu ýazgyny yzygiderli okyjylarym üçin täzelärin.

Asyl makala: Tejribeli döredijiler üçin 15 Tehniki Esasy Java Söhbetdeşlik Soraglary
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION