|
|
Yayınlandı 8.01.2019 09:17:25
|
|
|

Bu yılki iş arama yolculuğu neredeyse sona erdi, aslında bir iki aydır mülakat olmadı, düşündüm ya da aşağıdaki şirketleri kaydettim, sadece hatırlayabildiklerimi hatırlıyorum. Benim pozisyonum Java Ar-Ge mühendisi, bu yüzden bu alandaki tüm bilgi noktalarını içeriyor.
Staj
1. Morgan Stanley
İlk röportaj Morgan'dı... Mülakat yapan çok nazik ve sorulan ana sorular: (1) Projeyi tanıtın ve yaptığınız bölümden bahsedin (tanıtımdan sonra yaptığımın çok düşük olduğunu fark ettim ve hala hazırlanmam gerekiyor) (2) Polimorfizm. C++'da, sanal fonksiyonlar, türetilmiş sınıflarda sanal fonksiyonları yeniden yazmak, çalışma zamanında hangi alt sınıfta çalıştığımı nasıl anlarım? (3) Java'da yaygın olarak kullanılan koleksiyonlar nelerdir? C: ArrayList ve LinkedList dahil liste. ArrayList, uzunluk değiştirebilen diziler tarafından dahili olarak uygulanır. LinkedList, bağlantılı bir liste uygulamasıdır ve uzunluğu değiştirilemez. S: Genellikle bir LinkedList'in uzunluğunu, örneğin 10 olarak tanımlayıp sonra aştığınızı mı kastediyorsunuz? C: Hayır, LinkedList'in uzunluğunu belirtmek gerekmez, eğer tanımlanmamışsa, LinkedList'inizin en fazla ne kadar alanı açabileceğini belirleyen makine olmalıdır. Sadece ihtiyacım olan ölçüde veri ekliyorum. S: Eğer çok sayıda toplama işlemi varsa, hangi sorunlarla karşılaşacaksınız, sizin için sınırsız alan eklemek imkansız C: Evet... Yani belirli bir aralık var, bence maksimum LinkedList'in ne kadar alanı olabileceği makine tarafından belirlenmeli, 32-bit ve 64-bit makineler farklı olmalı (Meng, aslında bilmiyorum) S: Peki, düzenli olarak kullandığınız başka koleksiyonlar var mı? Cevap: Öncelikle HashSet, TreeSet, LinkedHashSet belirleyin ve ardından bu üçü arasındaki farkları açıklayın S: HashSet'lerin ve TreeSet'lerin, eklemelerin, sorgulamaların karmaşıklığını analiz edin. Cevap: HashSet, sıradan bir hash koduysa, çok fazla çatışmaya yol açabilir, böylece bağlı liste daha uzun olur ve arama yaparken bağlantılı listede gezinmek daha yavaş olur, ancak çatışmaları çözmek için ikincil algılama gibi optimizasyon yöntemleri kullanılır, çatışmaları azaltır, daha hızlı olmalı, TreeSet içinde kullanılan kırmızı ve siyah ağaç, arama ve ekleme sırası O(log(N)) olmalı... O zaman başka bir soru var... Daha fazla sormadım.
|
|