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)同步代码块