Android yüz yüze paylaşım: 9 şirketle görüştüm, dikkat edilmesi gereken bu teknik noktaları özetledim

İç çekmek

İki aylık iş arama deneyimi nihayet sona erdi.Gece ve gündüz onlarca iniş ve çıkışları ancak kelimeleri tatanlar yaşayabilir.Bu deneyimi gözden geçirmek veya özetlemek istiyorum. Ama bunu nasıl özetlerseniz özetleyin, öz hala cümle: Tamamen hazırlanmalı! ! ! İlgili tüm bilgi noktalarını gözden geçirin (derinlik derecesi esas olarak her zamanki birikiminize bağlıdır), biri özgüveninizi büyük ölçüde artırabilir (görüşmeci tarafından sorulacağı konusunda endişelenmenize gerek yoktur); diğeri karşı karşıya Bilgi noktaları hakkında soru sorduğunuzda, Android veya Java sistemindeki bilgi noktalarının ilişkisini ve mantığını netleştirmek için genişletebilirsiniz. Aksi takdirde, yetersiz incelemeden dolayı ideal şirketinizi veya pozisyonunuzu özlediğinizde biraz üzüleceksiniz.

Hazırlık aşamasına devam et

Görüşmecinin sizi anlaması için tek girişin özgeçmişiniz olduğu söylenebilir, bu nedenle bu genellikle bilgi noktaları sormaya başlamak için yazdığınız proje deneyimine dayanır. Şu anda proje deneyimini iyileştirmek için katıldığınız projenin kodunu dikkatlice okumalı, teknik noktaları, çözülmesi gereken sorunları ve nihai etkiyi özetlemelisiniz. Ayrıca unutmayın: Özgeçmişinize tanıdık teknik noktalar yazmalısınız, çünkü özgeçmiş bir giriş noktasıdır, görüşmeci muhtemelen size derinlemesine soracaktır, özellikle aşina değilseniz, bunalmış olabilirsiniz.

Karşı örnek: Özgeçmişimde WebView ve RecycleView kayan çakışma proje deneyimini yazdım.Birçok görüşmeci fling () 'in kayması sırasında kavşakta durma sorununu keskin bir şekilde gördü ve bu durumu sormaya devam etti. Nasıl çözülür, MD kontrolünün kayan mekanizmasını (CoordinatorLayout + Behavior) anlamak için bir uzantı yoksa, cevap verilemeyebilir. Hatta sormaya devam eden görüşmeciler bile var: Bu sorunu onTouchEvent () olay mekanizmasına dayanarak kendiniz çözmek istiyorsanız, üç sorgulama seviyesi kafanız karışacaktır.

İlk hazırlık aşaması

İlk iki haftada, hala evde dürüstçe gözden geçirme mizacına, bir bilgi noktasına ve bir bilgi noktasına dayanabiliyorum. Üçüncü haftada endişeli olmaya başladım ve incelemenin çok yavaş olduğunu ve zaman kaybı olduğunu hissettim. Bu yüzden gözden geçirilmemiş içeriğin üzerinden geçtim ve endişeyle eski meslektaşlarım ve özgeçmişleri zorlayacak kelle avcıları bulmaya başladım. Görüşme fırsatı gerçekten geldi ve bu birinci sınıf bir İnternet şirketi. Sonuçlar oldukça yetersiz: Ali, telefon görüşmelerinin ilk turunda mağlup oldu ve Oppo ikinci tura zar zor koştu ve geçemedi. Sorunu gördükten sonra, özgeçmişleri zorlamayı bıraktım, kalan bilgi noktalarını dürüstçe gözden geçirdim ve inceleme notları aldım. Tecrübe başarısızlıktan özetlenmiş olsa da, fırsat boşa gitmişti ve kazancın kayba değmemesi gerekiyordu.

Bu aşamada gözden geçirilmek üzere bilgi noktalarının listesine başvurabilirsiniz: Temel olarak Android ve Java'nın temel bilgi noktalarının çoğunu kapsayan https://www.jianshu.com/p/0f82b0650909.Ayrıca, sonraki aşamaların gözden geçirilmesi için buradaki bilgi noktalarına da başvurabilirsiniz. .

İyi özetlenmiş başka bir liste ek olarak kullanılabilir: https://lrh1993.gitbooks.io/android_interview_guide/content.

Orta sahne

Önceki temel bilgi noktalarını bitirdikten sonra, bu aşama esas olarak kaynak koduna aşina olmaktır. Projede kullanılan açık kaynak çerçevesi ile birlikte kaynak kodunu okuyabilirsiniz Görüşme sırasında genel olarak projede kullandığınız çerçevelere göre bu çerçevelerin ilkelerinde yetkin olup olmadığınız sorulacaktır. Genel çerçeve genellikle ağ kitaplıkları, görüntü kitaplıkları, araçlar, eklenti veya sıcak güncelleme kitaplıkları vb. Bu bilgi noktaları daha sık toplanmalı ve uygulanmalıdır ve şu anda yalnızca küçük bir inceleme yeterlidir. Özellikle aşina değilseniz, kaynak kodunu çözmek için başkalarının iyi makalelerine başvurabilirsiniz.Kendi zihninizde bir bilgi yapısı oluşturmalısınız ve temel uygulama detayları belirtilmelidir.

Ek olarak, mesaj mekanizması, Çizim sürecini görüntüle, Bağlayıcı iletişimi, java koleksiyonu, eşzamanlılık vb. Gibi genellikle kullandığınız Android yerel kodunu öğrenmeniz gerekir. Bence bunlar daha temel şeyler, söylenecek bir şey yok. Anlayış ne kadar derin olursa, günlük kullanımınız için o kadar faydalı olacaktır.

Geç aşama

Yukarıdaki iki aşamaya hazırlandıktan sonra, temel görüşmelerin ilk iki turu temelde sorun değildir. Hedef pozisyon kıdemli bir geliştirici veya mimar ise, genellikle daha düşük seviyeli ilkeler ve daha soyut makro seviyeli meseleler isteyecektir.

Temel ilkeler: sanal makinenin bellek alanı ve gc süreci, tcp akışı ve tıkanıklık kontrolü ve https bağlantı kurulumunun etkileşimli süreci gibi, aşina olmak için ilgili teknik makaleleri bulabilirsiniz.

Makro seviyesi: Genel olarak, mimari mod (MVC, MVP, MVVM), geliştirme modu (modülerleştirme, bileşenleştirme, modüler bileşenleştirme) ve tasarım modu ile ilgili konulardır.Esnek kullanım düzeyinde ustalaşabilmeli ve bunları özetleyebilmelisiniz. Özellikler arasındaki benzerlikler ve farklılıklar.

Bir diğer önemli kısım ise algoritmadır.Bazı birinci kademe şirketler testi yapmayı tercih eder.Örneğin, Toutiao görüşme e-postasında algoritmanın test edileceğini açıkça belirtti. Bu nedenle hedef şirketinizin test edilmesi gerekip gerekmediğini gözden geçirmeniz gerekir. Röportajımın gidişatından yola çıkarak test edilecek özel içerik, temelde "Kılıç Parmak Teklifi" ndeki altmış küsur sorunun kapsamını aşmadı (ilgili sorularda bir çarpıtma olabilir), bu nedenle altı soruyu karşılaştırmak yaklaşık bir hafta sürdü. Bir düzineden fazla soruyu anlamak ve temel okları kendi kendinize gerçekleştirmek için.Elbette, sıralama, ikili arama, bağlantılı listelerin ve ağaçların temel işlemleri gibi bazı temel algoritmalar dikkatlice özetlenmeli ve kendi kendilerine öğrenilmelidir.

Mülakat deneyimi

Esas olarak anılara dayalı olarak özetlenmiştir (eksiklikler olacaktır).

1. Tencent (QQ Müzik)

Daha az etkileşimle telefon görüşmelerinde iyi olmadığımı hissediyorum ve sahayı çabucak ısıtmak zor.Sorunun cevabı gerçekten kötü. O sırada gözden geçirdiğim temel aşamanın içeriğini okumayı bitirmedim, bu da sebebin bir parçası. En sık sorulan sorular optimizasyonla ilgili sorulardır.

2. Alipay (Yurtdışı Sürüm)

Hâlâ telefondaydı ve hala hissi bulamadım, cevap durumda değildi. Son olarak, kelle avcısı tarafından yapılan bu yüz yüze inceleme şuydu: Geçmiş projelerin işlevleri nispeten basitti ve bazı teknik detaylar yerinde değildi. Bu bir fırsat kaybı.

3. Bugünün manşetleri

Katıldığınız tüm görüşmelerde daha profesyonel görüşme deneyimi. Görüşmeyi yapan kişi çok iyi teknik kaliteyi yansıtıyor. Toplamda 3 tur görüntülü görüşmeye katıldım (tüm teknik yönler tamamlandı) İlk başta bunun çok umut verici olduğunu düşündüm (iyi hissettim ve temelde engelleyici bilgi noktaları yoktu), ancak nihai sonuç başarısız olduğumdu. Nedeni bilinmiyor. Elbette, burada hazırlanmak uzun zaman aldı (yaklaşık 3 hafta), çünkü temelde algoritma test edildi, algoritma gözden geçirildi ve tüm bilgiler yeniden onaylandı.

Araştırılması gereken başlıca konular şunlardır:

Android:

  • Web görünümünde h5 yüklemenin optimizasyonu (birçok soru)
  • Optimizasyonla ilgili (paket boyutu, başlangıç optimizasyonu, donma), webp'nin şeffaf kanalıyla nasıl başa çıkılacağı, kod sıkıştırmayla nasıl başa çıkılacağı
  • Yerel-jni ile ilgili; yerel kilitlenme yığını nasıl analiz edilir;
  • Süreç canlı tut
  • Eklenti prensibi
  • Ağ optimizasyonu (kötü cevap)
  • https, fiddler paketleri nasıl yakalar, neden fiddler https verilerini kurcalayabilir. Başlıkta ana bilgisayarın rolü nedir
  • Kotlin'i anlamıyorum (sadece hayır de)
  • 4 başlangıç aktivite modu, A B başladığında iki aktivite yaşam döngüsünün akışı nedir
  • Aktivitenin arka plandan ön plana geçmesi nasıl izlenir? OnResume () 'de itme işleminin askıda kalmasını ele almak yerine, tekrar yukarı çekildiğinde itme işleminde hizmetin durumu nasıl geri yüklenir
  • İki süreç iki yönlü iletişim için bağlayıcıyı nasıl kullanır?
  • Sıradan nesnelerin sızıntı yapıp yapmadığını, sızıntı kanalının boşaltma sırasında kötü şekilde donup donmadığını, liste görünümü ve geri dönüşüm görünümü arasındaki farkın nasıl optimize edileceğini izleme
  • WebSocket, soket, NIO
  • Uygulama mimarisinin anlaşılması
  • Aktivite başlangıç süreci
  • Mesajları iki sayfada nasıl senkronize edebilirim? (Önceki yorum sdk'sine benzer şekilde, alt yorum sayfasından istediğinizde, geri döndükten sonra benzer durumunu senkronize etmeniz gerekir)

Java:

  • Sınıf yükleme süreci
  • Sınıfın benzersiz tanımlayıcısı nedir
  • gc süreci
  • Harita türleri nelerdir, özellikleri nelerdir ve hashmap'in iç yapısı
  • Dinamik proxy ve statik proxy arasındaki fark, ortak bir nesneye proxy nasıl yapılır

algoritma:

  • Son siparişi vermek için iki sıralı bağlantılı listeyi birleştirin.
  • Harita

harita, anahtar / değer çiftini değer karesinin artan sırasına göre yazdırın.

  • 0 ile 100 arasında 10 milyon ondalık, ilk 100'ü bulun. Ya iki ondalık basamak tutarsanız?

4. akulaku

Genel görüşme deneyimi iyidir ve görüşmecinin teknik okuryazarlığı da iyidir. Tüm süreçler bir öğleden sonra tamamlandı (2 tur teknoloji ve 1 tur İK). Bu şirket, Ali'nin yatırımı ve Güneydoğu Asya e-ticaretine ve finansına odaklanan birçok dahili ürün yelpazesiyle bir başlangıç şirketi olarak görülmeli ve şu anda patlayıcı bir büyüme dönemi. Daha derin hafızaya sahip sorular şunları içerir:

Güçlendirmenin dinamik aracısında arabirim dönüş türleri ile nasıl başa çıkılır (çünkü arabirim tarafından bildirilen genel tür çalışma zamanında silinecektir)

Proje mimarisini yaparken, BaseActivity / BaseFragment genel olarak hangi nesnelerin yerleştirilmesi gerektiğini kapsamaktadır. Binder'ın genel çalışma mantığı nedir (genel temel ilkeyi söyleyebilmek için)

5. Hengxin Wynn

Şirketin itibarı yoktur ve İnternet finansmanı yapmaktadır. Ancak mülakat sürecinden teknik hüner hala oldukça iyi, o zamanın mimarı. Yeterince hazırlanmadım. Pek çok soru gerçekten iyi yanıtlanmadı (yalnızca orta dönem aşamasına kadar gözden geçirilmelidir) ve genel olarak sorun değildi. Ve ondan sonra yavaş yavaş güven bulmaya başladım.

Daha derin hafızaya sahip sorular şunları içerir:

  • Mimarinin özü, hangi sorunun çözüleceği ve iyi bir mimari denen şeydir.
  • Köprü örüntüsü ne tür tasarım örüntüsüne (yapısal desen) aittir ve bunları çözmek için hangi senaryoları kullanır?
  • Kullanıcı A, IM sisteminde B kullanıcısına bir mesaj gönderdiğinde, veri paketlerinin ve sinyalleme paketlerinin etkileşim diyagramını çizin.

CurrentHashMap uygulamasının kaynak kodunu hiç gördünüz mü ve eşzamanlılığı optimize etme ilkesinden bahsettiniz mi? CAS'ı anlamak için üretici-tüketici modelini aşina olduğunuz eşzamanlı bir şekilde uygulayın ve verimliliğini değerlendirin.

6. oppo (uygulama mağazası)

Şirketten bahsetmiyorum bile, genel olarak çok iyi. Mülakat deneyimi de iyi Hafta sonu iş fuarına katıldım ve 2 tur teknikle tanıştım. Grubun yüzünün ikinci turunda iyi performans göstermediğimi hissettim ve tam olarak hazırlanmayan detaylar vardı. Bu, diğer departmanlarla yüzleşme şansı bırakmayan bir fırsat kaybı gibi geliyor.

Daha derin olanlar, çoğunlukla Görünüm ile ilgili sorunlar gibi görünüyor:

  • View sisteminde animasyonun çizim prensibi. (Soruyu cevaplamadım, animasyon işlemenin kaynak kodunu Görünüm'de görmeniz gerekiyor)
  • Yukarıda bahsedilen kayan çatışmada () fling () stall problemi nasıl çözülür?
  • Bir çocuğu kaydırmanın yolları nelerdir?
  • Aktivite başlangıç süreci

7. vivo (büyük veri merkezi gömülü nokta sdk)

Şirket hiçbir şey söylemedi, genel olarak oldukça iyi. Toplam 3 tur teknik + İK ile karşı karşıya kalmıştır.Önceki deneyimlerin birikimi nedeniyle, şu anda temelde uygulama düzeyinde sorun yoktur.

En etkileyici mülakat soruları:

  • İzleme dosyası tarafından yazdırılan yığın, ANR oluştuğunda MessageQueue.nativePollOnce () adresinde engellenirse, ANR sisteminin uygulama ilkesi, genellikle ANR sorununun nasıl çözüleceği hakkında konuşun, belirli sorunun nasıl bulunacağı
  • İşlemi yeniden başlatmadan etkili olması için sıcak güncellemeler nasıl uygulanır?
  • Aktivite başlangıç süreci
  • İyimser kilitleme ve kötümser kilitleme hakkında konuşun
  • Gerçek kullanımda tekli modun dezavantajları nelerdir

8. SF Teknolojisi (Ekspres)

Şirketin platformu hala iyi ve bu yıl geliştirilen ana iş, ekip hala yapım aşamasında ve geliştirme beklentileri hala çok iyi. Sadece işin içeriği, işe olan kişisel ilgiye bağlı olarak daha iş odaklı olacaktır.

İş odaklı çalışmanın doğası gereği, en sık sorulan görüşmeler veri tabanıyla ilgilidir:

  • Veritabanı tablo yapısı nasıl yükseltilir.
  • İstemci veritabanı SQLite'nin sınırı, ne kadar verinin depolanabileceği, veri miktarı özellikle büyükse, veri sorgusunun etkinliğinin nasıl optimize edileceğidir.
  • IM sistem istemcisinin veritabanı tablosunun yapı diyagramını çizin. Varlık, kullanıcı bilgilerini, tek kişilik konuşmayı ve grup sohbetini içermelidir.
  • Zayıf bir ağ durumunda verilerin nihai kullanılabilirliği ve güvenilirliği nasıl sağlanır (http önbelleğe alma ve sıkıştırma).

9. Wanxing Teknolojisi

Başlangıç sürümü ile borsada işlem gören bir şirkettir.Şirketin teknik yetenekleri fena değildir.Video düzenleme yazılımına odaklanır.Bu nedenle hedef teknoloji multimedya ile ilgili geliştirmedir (c / c ++, ses ve video, opengl). Şirketin iş modelinin oldukça tuhaf olduğunu ve muhtemelen hedef pazarın yurtdışında olması nedeniyle yazılım lisansları satmaya devam ettiğini düşünüyor. Ancak multimedya geliştirmeyle ilgilenenler hala denemeye değer.

sonuç olarak

Aslında, müşteri tarafı gelişiminde çok fazla bilgi noktası var ve görüşmelerde hala sorulacak çok şey var. Bu nedenle, bu bilgi noktalarına ne kadar iyi hazırlandığınızı görmek için görüşme için başka bir numara yoktur. Bu yüzden, bir röportaj için dışarı çıktığınızda, incelemenizde hangi aşamaya ulaştığınızı görmek güzel.

Bu, bugün paylaşılan mülakat sorularının sonu, aynı cümle ... Sadece anlamanız gereken değil, aynı zamanda onları iyi ifade edebilmeniz için bazı şeyler var, böylece mülakat yapan kişi mülakatta olmazsa olmaz bir soru olan İşleyici mekanizması gibi anlayışınızı tanıyabilir. . Bazı belirsiz noktalar var, belki sadece röportajda yaşıyor, gerçek işte hiç kullanmayacaksın ama ne olduğunu bilmelisin.

Son olarak, buradaki editör, yukarıdaki teknik sistem şemalarıyla ilgili düzinelerce set koleksiyonunu paylaşıyor. Tencent, Toutiao, Ali, Meituan ve diğer şirketlerden 19 yıl içinde mülakat soruları , Teknik noktaları video ve PDF olarak düzenledi (aslında beklenenden çok daha fazla enerji harcadı), Bilgi bağlamı + birçok ayrıntı , Sınırlı alan nedeniyle, işte resim şeklinde bir parçası.

ve ayrıca Gelişmiş mimari teknolojisi gelişmiş zihin haritası, Android geliştirme röportajı özel materyalleri , Herkesin ileri seviyeyi geliştirmeyi öğrenmesine yardımcı olmak için gelişmiş gelişmiş çerçeve materyalleri ve ayrıca internette öğrenmek için materyal aramak için herkesin zamanından tasarruf sağlar ve ayrıca birlikte öğrenmek için arkadaşlarla paylaşılabilir.

[Android temel ileri teknoloji PDF belgesi, BAT görüşmesindeki gerçek soruların analizi]

[Algoritma Koleksiyonu]

[Android temel bilgi noktalarını genişletin]

[Gelişmiş mimari video öğrenme kaynaklarının Android bölümü]

Android Tanıtım Videosu alıp öğrendikten sonra, daha da güçlü hale geliyor! BATJ fabrikasına girin ve benzeri (hazırlık)! Günümüzde İnternetin soğuk olduğu söyleniyor. Aslında, yanlış arabaya bindiğinizden ve daha az (beceri) giydiğinizden başka bir şey değil. Doğru arabaya binerseniz ve kendi teknik yeteneğiniz yeterince güçlüyse, şirketin değişim maliyeti yüksek olacaktır. Sadece son iş Curd'u ortadan kaldırmak için! Günümüzde piyasada genç programcılar akınına uğramaktadır. Bu eğitim seti 1-6 yaş arası Android geliştirme mühendislerine yöneliktir. Darboğaz dönemindedirler. Gelecek yıl maaş artışlarını aşmak isteyenler, ileri düzey Android orta ve kıdemli, mimarlar daha da önemlidir Sudaki bir balık gibi, çabuk alın!

[Android gelişmiş öğrenme videosu], [Android mülakat hilelerinin tam seti PDF], [Android geliştirme temel bilgi notları] özel mesajla [Android] ücretsiz olarak elde edilebilir!

Android mülakat soruları güncellenmeye devam ediyor: Lütfen bu DingTalk ve Douyin mülakatlarını büyük mülakatçılarla saklayın!
önceki
Kıdemli Android geliştiricileri size şunu söylüyor: Özgeçmişinizi böyle yazın ve röportaj görüşmesi yumuşaktır!
Sonraki
Andrews'ın soğuk kışında iş atlama ve maaş artışı gibi gelişmiş geliştirme deneyimi paylaşılır, böylece mülakat geçiş oranı iki katına çıkar!
Android Orta Düzey ve İleri Düzey Mülakat Soruları Sürekli Destek: Android Bağlayıcı Mekanizmasını Gösterme
Android geliştiricilerinin zorlu yolculuğunu geri sayın: o yıllarda hepimizin yaptığı hatalar
Android Bilgi Notları: 2 "yanlış anlaşılan" Android bilgi puanını kaydedin
Görüşme sırasında hangi konulara dikkat edilmelidir? İşte programcı iş görüşmelerinin 66 detayı
Android röportajları için temel bilgi noktaları: Android'de Handler hakkında sekiz önemli sorunun bir özeti
Yıl ortasında Ali'ye tekrar katılmak için iyi bir zaman, Ali'ye katılmak istersem ne yapmalıyım?
Android programcıları: İyi bir iş bulmak ve salgın krizi kırmak için mülakata nasıl hazırlanılır?
"Bir günde röportaj için nasıl hazırlandım ve Tencent teklifini nasıl aldım?"
Muhabir: Temel java nasıl? Çok iş parçacıklı okuma mutlaka çok iş parçacıklı güvenlik sorunlarına neden olur mu?
Yılbaşı tarım ürünleri siparişleri 200 milyonu aştı, Pinduoduo markalı tarım ürünlerini şehirlere ve kırsal alanlara tanıtıyor
Didi, 62 tren istasyonunda çevrimiçi araç çağırma için özel toplama noktaları ve kanallar oluşturuyor
To Top