轉載:http://blog.csdn.net/xiaole0313/article/details/62056612
持續更新答案及問題------
RXJava詳解:http://gank.io/post/560e15be2dca930e00da1083
開源項目:一小時打造新聞app
ClassLoader:http://blog.csdn.net/briblue/article/details/54973413?locationNum=2&fps=1
android性能優化系列:http://www.csdn.net/article/2015-08-12/2825447-android-performance-patterns-season-3
android內存優化之OOM:http://www.csdn.net/article/2015-09-18/2825737/1
JVM面試知識點總結,高級Java工程師必備:http://www.importnew.com/23792.html
TCP流量控制與擁塞控制:http://blog.csdn.net/yechaodechuntian/article/details/25429143
TCP三次握手與四次揮手:http://blog.csdn.net/whuslei/article/details/6667471
android異步處理更新UI:http://blog.csdn.net/mylzc/article/details/6777767
Java泛型:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html
事件分發機制:http://www.lxweimin.com/p/e99b5e8bd67b
最新整理:
1.簡述synchronized?Object;Monitor機制):synchronized關鍵字通過修飾一個方法或聲明一個代碼塊,從而產生一個同步對象鎖以及對應的同步代碼塊。每當有線程要對該同步代碼塊進行訪問時,線程就會首先嘗試去獲取該對象鎖,并在成功獲取到對象鎖后,對該同步代碼塊進行正常訪問,在同步代碼塊訪問過程中,線程會一直持有該對象鎖直到同步代碼塊訪問完畢才會釋放。在上述線程持有同步鎖并進行同步代碼塊訪問過程中,其它線程將無法獲得該對象鎖,也無法訪問該同步代碼,這些線程都會被阻塞直到上述線程訪問完畢。syschronized關鍵字,通過以上措施,確保每次只有一個線程能持有對象鎖并對同步代碼塊進行訪問,并在訪問結束之前,不會對其它線程訪問。也就說,即使同步代碼塊在執行過程中遭遇線程調度,其它線程也無法訪問該同步代碼塊,直到該線程被重新調度并完成同步代碼塊的訪問并釋放對象鎖。這樣就保證了線程對同步代碼塊訪問的連續性不受線程調度而中斷。java中Object的理解:java把現實中的任何事物都當作一個對象 (Object),Java是面向對象的,。此處的Object在Java中被定義為一個頂級父類,它是任何類的父類,我們可以顯示的繼承它,也可以隱式繼承。Object包含以下方法:equals(Object obj), finalize(), getClass, hashCode(), notify, notifyAll(), wait(), Clone(), toString(),其中方法會被高頻率的使用,為了實現代碼復用,Java設計者把這些常用的方法集中的放到了一個類中,就是Object類。java多線程同步機制:為了達到同步,java在一個監控器(Monitor)的基礎上實現了一個巧妙的方案,監控器是一個控制機制,可以認為是一個很小的、只能容納一個線程的盒子,一旦一個線程進入監控器,其它的線程必須等待,直到那個線程退出監控為止。通過這種方式,一個監控器可以保證共享資源在同一時刻只可被一個線程使用,這種方式稱為同步。一旦一個線程進入一個實例的任何同步方法,別的線程將不能進入該同一實例的其它同步方法,但是該實例的非同步方法仍然能夠被調用。
2.簡述happen-before規則:java內存模型中定義的兩項操作之間的偏序關系,如果A先行發生于操作B,意思就是說在發生操作B之前,操作A產生的影響都能被操作B觀察到,”影響“包括修改了內存中共享變量的值、發送了消息、調用了方法等,它與時間上的先后發生基本沒有太大關系,它是判斷數據是否存在競爭、線程是否安全的主要依據。Java中有8條可保證happen-before的規則見鏈接。指令重排序:java語言規范規定了jvm線程內部維持順序化語義,也就是說只要程序的最終結果等同于它在嚴格的順序化環境下的結果,那么指令的執行順序就可能與代碼的順序不一致。這個過程叫做指令的重排序。意義在于:jvm能夠根據處理器的特性(CPU的多級緩存系統、多核處理器等)適當的重新排序機器指令,使機器指令更符合CPU的執行特點,最大限度的發揮機器的性能。在沒有同步的情況下,編譯器、處理器以及運行時等都可能對操作的執行順序進行一些意想不到的調整。
3.JUC和Object;Monitor機制區別是什么;簡述AQS原理;
4.簡述DCL失效原因,解決方法;
5.簡述nio原理;
6.jvm運行時數據區域有哪幾部分組成,各自作用;
JVM運行時數據區簡介:https://my.oschina.net/leejun2005/blog/486581
JVM學習筆記:http://blog.brucefeng.info/post/jvm-notes
JVM的組成:http://www.importnew.com/16388.html
JVM由4大部分組成:ClassLoader,Runtime Data Area,Execution Engine,Native Interface。
---運行時數據區共六部分,運行時數據區可以分為線程私有還是線程共享,總體分為如下兩種,單個線程私有:程序計數器,JVM棧,本地方法棧,多個線程共享:堆數據區,方法區,運行時常量池。(1)程序計數器:用來記錄當前線程正在執行的指令,如果當前線程正在執行的方法是本地方法,那么此刻程序計數器的值為undefined,這個區域是唯一一個不拋出OOM的運行時數據區。(2)JVM棧,隨著一個方法的調用開始而創建,方法調用完成而銷毀,存放方法中的局部變量,操作數棧等數據。當棧內存設置成固定值,程序執行需要的棧內存超過設定的固定值會拋出StackOverflowError錯誤。當棧內存設置成動態增長,JVM嘗試申請的內存大小超過了可用內存時會拋出OutOfMemoryError錯誤。(3)存放本地方法的數據區,通常為C或C++,同樣會拋出StackOverflowError和OutOfMemoryEror錯誤。(4)堆數據區:用來存放對象和數組,堆內存由多個線程共享,堆內存隨著JVM啟動而創建,垃圾回收就是操作這個數據區來回收對象進而釋放內存。如果堆內存剩余的內存不足以滿足于對象創建,JVM就會拋出OOM錯誤。(5)方法區:視為堆內存的一個邏輯部分,方法區存放類的信息,比如類加載器引用,屬性,方法代碼和構造方法和常量等,當方法區的可用內存無法滿足內存分配需求時,JVM會拋出OOM錯誤。(6)運行時常量池:創建在方法區,當一個類或一個接口被創建的時候,JVM會創建一個運行時常量池,一個運行時常量池實際上是一個類或接口的class文件中常量池表的運行時展示形式。一個運行時常量池包含多種類型的常量。同樣拋出OOM錯誤。
7.gc算法有哪些;gc收集器有哪些;
Java GC算法與GC收集器:http://www.importnew.com/23752.html------(1)標記-清除算法,首先標記出所有需要回收的對象,在標記完成后統一回收掉所有被回收的對象。缺點:標記和清除過程中的效率不高;空間問題,標記清除后會產生大量不連續的內存碎片,空間碎片太多可能會導致,當程序在以后運行過程中需要分配較大對象時無法找到足夠的連續內存而不得不提前觸發另一次垃圾收集動作。(2)復制算法:將內存容量劃分為大小相等的兩塊,每次只使用其中的一塊,當這一塊的內存用完了,就將還存活著的對象復制到另外一塊上面,然后再把已使用過的內存空間一次清理掉。解決了內存碎片問題,代價是將內存縮小為原來的一半,持續復制長生存期的對象則導致效率降低。(3)標記-壓縮算法:標記過程與標記-清除算法一樣,但不是直接對可回收對象進行清理,而是讓所有存活的對象都向一端移動,然后直接清理掉邊界以外的內存。(4)分代收集算法:新生代每次垃圾收集時都有大批對象死去,只有少量存活,那就選用復制算法,只需要付出少量存活對象的復制成本就可完成收集,而老年代中對象存活率高,沒有額外空間對它進行分配擔保,就必須使用標記-壓縮算法進行回收。
8.簡述class加載各階段過程;class;loader有哪些模型;
9.簡述常用的JDK命令行工具;
10.簡述字節碼文件組成;
11.講講你平常是如何針對具體的SQL做優化;
12.mysql的存儲引擎有哪些,區別;
13.gc:內存模型;
14.gc:垃圾回收;
15.多線程:如何實現一個定時調度和循環調度的工具類。但提交任務處理不過來的時候,拒絕機制應該如何處理;線程池默認有哪幾種拒絕機制;
16.多線程:如何實現一個ThreadLocal;與同步的區別;當然ThreadLocal并不能替代同步機制,兩者面向的問題領域不同。同步機制是為了同步多個線程對相同資源的并發訪問,是為了多個線程之間進行通信的有效方式;而ThreadLocal是隔離多個線程的數據共享,從根本上就不在多個線程之間共享資源(變量),這樣當然不需要對多個線程進行同步了。所以,如果你需要進行多個線程之間進行通信,則使用同步機制;如果需要隔離多個線程之間的共享沖突,可以使用ThreadLocal,這將極大地簡化你的程序,使程序更加易讀、簡潔。
17.說說你了解的一個線程安全隊列;
18.Atomic包的實現原理是什么;
19.CAS又是怎么保證原子性的;
20.string分析1000次循環subString用了多少內存;
21.OSI七層模型;
22.數據庫(第一范式,第二范式,第三范式);第一范式,強調的是列的原子性,即列不能夠再分成其他幾列。第二范式,首先是第一范式,另外包含兩部分內容,一個是表必須有個主鍵,二是沒有包含在主鍵的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。第三范式,首先是2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴,即不能存在,非主鍵列A依賴于非主鍵列B,非主鍵列B依賴于主鍵的情況。
Android基礎
1.什么是ANR 如何避免它?答:在Android 上,如果你的應用程序有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應用程序無響應(ANR:Application Not Responding)對話框。用戶可以選擇讓程序繼續運行,但是,他們在使用你的應用程序時,并不希望每次都要處理這個對話框。因此,在程序里對響應性能的設計很重要,這樣,系統不會顯示ANR 給用戶。不同的組件發生ANR 的時間不一樣,主線程(Activity、Service)是5 秒,BroadCastReceiver 是10 秒。解決方案:將所有耗時操作,比如訪問網絡,Socket 通信,查詢大量SQL 語句,復雜邏輯計算等都放在子線程中去,然后通過handler.sendMessage、runonUITread、AsyncTask 等方式更新UI。無論如何都要確保用戶界面操作的流暢度。如果耗時操作需要讓用戶等待,那么可以在界面上顯示進度條。
2.View的繪制流程;自定義View如何考慮機型適配;自定義View的事件分發機制;View和ViewGroup分別有哪些事件分發相關的回調方法;自定義View如何提供獲取View屬性的接口-------------
3.Art和Dalvik對比;虛擬機原理,如何自己設計一個虛擬機(內存管理,類加載,雙親委派);JVM內存模型及類加載機制;內存對象的循環引用及避免------ART(Android Runtime),ART的機制與Dalvik不同,在Dalvik下,應用每次運行的時候,字節碼都需要通過即時編譯器(Just in time, JIT)轉化為機器碼,這回拖慢應用的運行效率,而在ART環境下,應用在第一次安裝的時候,字節碼就會預先編譯成機器碼,使其成為真正的本地應用。這個過程叫預編譯(AOT--Ahead of Time),這樣的話,應用的首次啟動和執行就會變得更加快速。ART的系統性能顯著提升,應用啟動更快,運行更快,體驗更流暢,觸感反饋更及時,有更長的電池續航能力,支持更低的硬件,但機器碼占用的存儲空間更大,字節碼變為機器碼之后,可能會增加10%-20%,應用安裝時間會變長。ART與Dalvik的區別:dalvik是執行的時候編譯+運行,安裝比較快,開啟應用比較慢,應用占用空間小,ART是安裝的時候就編譯好了,執行的時候直接就可以運行,安裝慢,開啟應用快,占用空間大。
Java虛擬機的一個重要特點就是平臺的無關性,把目標代碼編譯成字節碼。Main()方法是程序的起點,它被執行的線程初始化為程序的初始線程。程序中其它的線程都由它來啟動。java的線程分為兩種:守護線程和普通線程。守護線程是java虛擬機自己使用的線程,比如負責垃圾收集的線程就是一個守護線程。當然,也可以把自己的程序設置為守護線程。包含Main()方法的初始線程不是守護線程。只要java虛擬機中還有普通的線程在執行,java虛擬機就不會停止。如果有足夠的權限,你可以調用exit()方法終止程序。每個java虛擬機都有一個類加載器子系統,負責加載程序中的類型(class和interface),并賦予唯一的名字。每一個java虛擬機都有一個執行引擎負責執行被加載類中包含的指令。
JAVA類加載流程:Java系統自帶三個類加載器(1)Bootstrap ClassLoader最頂層的加載類,主要加載核心類庫,加載%JRE_HOME%\lib下的rt.jar, resources.jar, charsets.jar和class等。(2)Extention ClassLoader擴展的類加載器,加載目錄%JRE_HOME%\lib\ext目錄下的jar包和class文件。(3)Appclass Loader加載當前應用的classpath的所有類。加載順序:Bootstrap ClassLoader,Extention ClassLoader, App classLoader。雙親委托:一個類加載器查找class和resource時,是通過委托模式進行,它首先判斷這個class是不是已經加載成功,如果沒有的話它不是自己進行查找,而是通過父加載器,然后遞歸下去,直到Bootstrap ClassLoader,如果Bootstrap ClassLoader找到了直接返回,如果沒有找到,則一級一級返回,最后到達自身去查找這些對象,這種機制叫做雙親委托。
4.ddms 和 traceView的區別;
5.內存回收機制與GC算法(各種算法的優缺點以及應用場景);GC原理時機以及GC對象;內存泄露場景及解決方法;
6.四大組件及生命周期;ContentProvider的權限管理(讀寫分離,權限控制-精確到表級,URL控制);Activity的四種啟動模式對比;Activity狀態保存于恢復;
7.什么是AIDL 以及如何使用;
8.請解釋下在單線程模型中Message、Handler、Message Queue、Looper之間的關系;
9.Fragment生命周期;Fragment狀態保存;
10.startActivityForResult是哪個類的方法,在什么情況下使用,如果在Adapter中使用應該如何解耦;
11.AsyncTask原理及不足;intentService原理;
12.Activity 怎么和Service 綁定,怎么在Activity 中啟動自己對應的Service;
13.請描述一下Service 的生命周期;
14.AstncTask+HttpClient與AsyncHttpClient有什么區別;
15.如何保證一個后臺服務不被殺死;比較省電的方式是什么;
16.如何通過廣播攔截和abort一條短信;廣播是否可以請求網絡;廣播引起anr的時間限制;
17.進程間通信,AIDL;
18.事件分發中的onTouch 和onTouchEvent 有什么區別,又該如何使用?
19.說說ContentProvider、ContentResolver、ContentObserver 之間的關系;
20.請介紹下ContentProvider 是如何實現數據共享的;
21.Handler機制及底層實現;
22.Binder機制及底層實現;
23.ListView 中圖片錯位的問題是如何產生的;
24.在manifest 和代碼中如何注冊和使用BroadcastReceiver;
25.說說Activity、Intent、Service 是什么關系;
26.ApplicationContext和ActivityContext的區別;
27.一張Bitmap所占內存以及內存占用的計算;
28.Serializable 和Parcelable 的區別;
29.請描述一下BroadcastReceiver;
30.請描述一下Android 的事件分發機制;
31.請介紹一下NDK;
32.什么是NDK庫,如何在jni中注冊native函數,有幾種注冊方式;
33.AsyncTask 如何使用;
34.對于應用更新這塊是如何做的?(灰度,強制更新,分區域更新);
35.混合開發,RN,weex,H5,小程序(做Android的了解一些前端js等還是很有好處的);
36.什么情況下會導致內存泄露;
37.如何對Android 應用進行性能分析以及優化;
38.說一款你認為當前比較火的應用并設計(直播APP);
39.OOM的避免異常及解決方法;
40.屏幕適配的處理技巧都有哪些;
41.兩個Activity 之間跳轉時必然會執行的是哪幾個方法?答:一般情況下比如說有兩個activity,分別叫A,B,當在A 里面激活B 組件的時候, A 會調用onPause()方法,然后B 調用onCreate() ,onStart(), onResume()。這個時候B 覆蓋了窗體, A 會調用onStop()方法. 如果B 是個透明的,或者是對話框的樣式, 就不會調用A 的onStop()方法。
42.Handler與AsyncTask的區別;http://blog.csdn.net/yahohi/article/details/9031725,在Android中實現異步任務機制有兩種方式,Handler和AsyncTask。Handler模式需要為每一個任務創建一個新的線程,任務完成后通過Handler實例向UI線程發送消息,完成界面的更新,這種方式對于整個過程的控制比較精細,但也是有缺點的,例如代碼相對臃腫,在多個任務同時執行時,不易對線程進行精確的控制。為了簡化操作,Android1.5提供了工具類android.os.AsyncTask,它使創建異步任務變得更加簡單,不再需要編寫任務線程和Handler實例即可完成相同的任務。
43.xml,json,gson之間有什么聯系?XML全稱叫做可擴展標記語言,它的結構相對簡單,可讀性強,但是對于一些比較復雜的數據結構就很難存儲,JSON的話剛好彌補了XML的這些缺點,至于GSON的話,是因為Google的一個開源庫而得名的,這個開源庫可以很方便地將JSON數組轉換為對象,這在開發中簡化了將JSON的字段轉換為屬性的步驟。
44.jar包與aar包的區別?兩者區別:
*.jar:只包含了class文件與清單文件,不包含資源文件,如圖片等所有res中的文件。
*.aar:包含所有資源,class以及res資源文件全部包含
如果你只是一個簡單的類庫那么使用生成的*.jar文件即可;如果你的是一個UI庫,包含一些自己寫的控件布局文件以及字體等資源文件那么就只能使用*.aar文件。
45.Android控件RecyclerView和ListView的異同。http://www.tuicool.com/articles/aeeaQ3J
Java基礎
1.集合類以及集合框架;HashMap與HashTable實現原理,線程安全性,hash沖突及處理算法;ConcurrentHashMap;
2.進程和線程的區別;
3.Java的并發、多線程、線程模型;
4.什么是線程池,如何使用? 答:線程池就是事先將多個線程對象放到一個容器中,當使用的時候就不用new 線程而是直接去池中拿線程即可,節
省了開辟子線程的時間,提高的代碼執行效率。
5.數據一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖;
6.Java中實現多態的機制是什么;
7.如何將一個Java對象序列化到文件里;
8.說說你對Java反射的理解; 答:Java 中的反射首先是能夠獲取到Java 中要反射類的字節碼, 獲取字節碼有三種方法,1.Class.forName(className) 2.類名.class 3.this.getClass()。然后將字節碼中的方法,變量,構造函數等映射成相應的Method、Filed、Constructor 等類,這些類提供了豐富的方法可以被我們所使用。
9.同步的方法;多進程開發以及多進程應用場景;
10.在Java中wait和seelp方法的不同;答:最大的不同是在等待時wait 會釋放鎖,而sleep 一直持有鎖。wait 通常被用于線程間交互,sleep 通常被用于暫停執行。
11.synchronized 和volatile 關鍵字的作用;答:1)保證了不同線程對這個變量進行操作時的可見性,即一個線程修改了某個變量的值,這新值對其他線程來說是立即可見的。2)禁止進行指令重排序。
12.volatile 本質是在告訴jvm 當前變量在寄存器(工作內存)中的值是不確定的,需要從主存中讀取;synchronized 則是鎖定當前變量,只有當前線程可以訪問該變量,其他線程被阻塞住。
1.volatile 僅能使用在變量級別;synchronized 則可以使用在變量、方法、和類級別的
2.volatile 僅能實現變量的修改可見性,并不能保證原子性;synchronized 則可以保證變量的修改可見性和原子性
3.volatile 不會造成線程的阻塞;synchronized 可能會造成線程的阻塞。
4.volatile 標記的變量不會被編譯器優化;synchronized 標記的變量可以被編譯器優化
13.服務器只提供數據接收接口,在多線程或多進程條件下,如何保證數據的有序到達;
14.ThreadLocal原理,實現及如何保證Local屬性;
15.String StringBuilder StringBuffer對比;
16.你所知道的設計模式有哪些; 答:Java 中一般認為有23 種設計模式,我們不需要所有的都會,但是其中常用的幾種設計模式應該去掌握。下面列出了所有的設計模式。需要掌握的設計模式我單獨列出來了,當然能掌握的越多越好。
總體來說設計模式分為三大類:
創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
17.Java如何調用c、c++語言;
18.接口與回調;回調的原理;寫一個回調demo;
19.泛型原理,舉例說明;解析與分派;
20.抽象類與接口的區別;應用場景;抽象類是否可以沒有方法和屬性;
21.靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
22.修改對象A的equals方法的簽名,那么使用HashMap存放這個對象實例的時候,會調用哪個equals方法;
23.說說你對泛型的了解;
24.Java的異常體系;
25.如何控制某個方法允許并發訪問線程的個數;
26.動態代理的區別,什么場景使用;
數據結構與算法
1.堆和棧在內存中的區別是什么(數據結構方面以及實際實現方面);
2.最快的排序算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個算法?堆和樹的區別;寫出快排代碼;鏈表逆序代碼;
3.求1000以內的水仙花數以及40億以內的水仙花數;
4.子串包含問題(KMP 算法)寫代碼實現;
5.萬億級別的兩個URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分組->多文件讀寫效率->磁盤尋址以及應用層面對尋址的優化)
6.蟻群算法與蒙特卡洛算法;
7.寫出你所知道的排序算法及時空復雜度,穩定性;
8.百度POI中如何試下查找最近的商家功能(坐標鏡像+R樹)。
其他
1.死鎖的四個必要條件;
2.常見編碼方式;utf-8編碼中的中文占幾個字節;int型幾個字節;
3.實現一個Json解析器(可以通過正則提高速度);
4.MVC MVP MVVM; 常見的設計模式;寫出觀察者模式的代碼;
5.TCP的3次握手和四次揮手;TCP與UDP的區別;
6.HTTP協議;HTTP1.0與2.0的區別;HTTP報文結構;
7.HTTP與HTTPS的區別以及如何實現安全性;
8.都使用過哪些框架、平臺;
9.都使用過哪些自定義控件;
10.介紹你做過的哪些項目;
數據庫問題:
1.第一范式,第二范式,第三范式;http://blog.csdn.net/famousdt/article/details/6921622
第一范式:強調的是列的原子性,即列不能夠再分成其它幾列。
第二范式:首先是1NF,另外,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。
第三范式:首先是2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴,即不能存在:非主鍵列A依賴于非主鍵列B,非主鍵列B依賴于主鍵的情況。
非技術問題匯總
1.研究比較深入的領域有哪些;
2.對業內信息的關注渠道有哪些;
3.最近都讀哪些書;
4.自己最擅長的技術點,最感興趣的技術領域和技術點;
5.項目中用了哪些開源庫,如何避免因為引入開源庫而導致的安全性和穩定性問題;
6.實習過程中做了什么,有什么產出;
6.5枚硬幣,2正3反如何劃分為兩堆然后通過翻轉讓兩堆中正面向上的硬幣和反面向上的硬幣個數相同;
時針走一圈,時針分針重合幾次;
7.N * N的方格紙,里面有多少個正方形;
8.現在下載速度很慢,試從網絡協議的角度分析原因,并優化(網絡的5層都可以涉及)。
HR問題匯總
1.您在前一家公司的離職原因是什么?
2.講一件你印象最深的一件事情;
3.介紹一個你影響最深的項目;
4.介紹你最熱愛最擅長的專業領域;
5.公司實習最大的收獲是什么;
6.與上級意見不一致時,你將怎么辦;
7.自己的優點和缺點是什么?并舉例說明?
8.你的學習方法是什么樣的?實習過程中如何學習?實習項目中遇到的最大困難是什么以及如何解決的;
9.說一件最能證明你能力的事情;
10.針對你你申請的這個職位,你認為你還欠缺什么;
11.如果通過這次面試我們單位錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎么辦;
12.項目中遇到最大的困難是什么?如何解決的;
13.你的職業規劃以及個人目標;未來發展路線及求職定位;
14.如果你在這次面試中沒有被錄用,你怎么打算;
15.評價下自己,評價下自己的技術水平,個人代碼量如何;
16.通過哪些渠道了解的招聘信息,其他同學都投了哪些公司;
17.業余都有哪些愛好;
18.你做過的哪件事最令自己感到驕傲;
19.假如你晚上要去送一個出國的同學去機場,可單位臨時有事非你辦不可,你怎么辦;
20.就你申請的這個職位,你認為你還欠缺什么;
21.當前的offer狀況;如果BATH都給了offer該如何選;
22.你對一份工作更看重哪些方面?平臺,技術,氛圍,城市,money;
23.理想薪資范圍;杭州崗和北京崗選哪個;
24.理想中的工作環境是什么;
25.談談你對跳槽的看法;
26.說說你對行業、技術發展趨勢的看法;
27.實習過程中周圍同事/同學有哪些值得學習的地方;
28.家人對你的工作期望及自己的工作期望;
29.如果你的工作出現失誤,給本公司造成經濟損失,你認為該怎么辦;
30.若上司在公開會議上誤會你了,該如何解決;
31.是否可以實習,可以實習多久;
32.在五年的時間內,你的職業規劃;
33.你看中公司的什么?或者公司的那些方面最吸引你。