Android面试题二

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值