1. JAVA的接口和抽象類的區別
接口 –implements 單繼承
抽象類—extend 多繼承
接口中的方法的權限是固定的- 必須是publicstatic
抽象類中可以有正常的方法,權限可以隨意
接口讀取速度比抽象類慢
接口不可以有構造器 ,抽象類是有的
2. Java的三大特性
繼承 封裝 多態
3. Activity的生命週期,說下按home鍵後再次按返回鍵回到主界面,activity的生命週期的流程。
Oncreate onstart onresume onPause onrestart onstop ondetory
首先是onpause–onstop--onrestart –onresume
4. Activity中如何動態的添加Fragment,說說fragment的生命週期
1.獲取到FragmentManager,在Activity中可以直接通過getFragmentManager得到。
2.開啓一個事務,通過調用beginTransaction方法開啓。
3.向容器內加入Fragment,一般使用replace方法實現,需要傳入容器的id和Fragment的實例。
4.提交事務,調用commit方法提交。
5.如何動態生成一個佈局
LinearLayout layout = new LinearLayout(this)
TextView text = new TextView(this);
text.setText("Hello World");
text.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
layout.addView(text);
setContentView(layout);
6. 說說listview的優化
儘量讓 ItemView 的 Layout 層次結構簡單,這是所有 Layout 都必須遵循的;
採用viewHolder 來複用
每個 Item 不能太高,特別是不要超過屏幕的高度,
爲了保證 ListView 滑動的流暢性,getView() 中要做盡量少的事情,不要有耗時的操作
7.說說常見的設計模式(3種以上)
創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
8 .service的兩種使用方式
採用start的方式開啓服務
使用這種start方式啓動的Service的生命週期如下:
onCreate()
--->onStartCommand()
(onStart()
方法已過時)
---> onDestory()
說明:如果服務已經開啓,不會重複的執行onCreate()
,而是會調用onStart()
和onStartCommand()
。
服務停止的時候調用 onDestory()
。服務只會被停止一次。
採用bind的方式開啓服務
使用這種start方式啓動的Service的生命週期如下:onCreate()
--->onBind()
--->onunbind()
--->onDestory()
注意:綁定服務不會調用onstart()
或者onstartcommand()
方法
9.activity的啓動模式
standard,singleTop,singleTask,singleInstance
10.有兩個線程A 和B ,A 訪問foo方法,B訪問buu方法會不會阻塞?
Publicvoid synchronied foo(){}
Publicvoid synchronied buu(){}
不會堵塞
當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊