上海某公司android面试题

  1. 你对多线程的理解 如何开启多线程

    一个程序有多条路径执行就是多线程 
    继承Thread  
    实现runnable接口  
    实现Callable接口
    
  2. 列举你知道的线程同步方法

     同步方法 : 使用synchronized修饰的方法
     同步代码块: 使用synchronized修饰的代码块
     使用volatile实现线程同步 
     使用重入锁实现线程同步:reentrantlock
     参考
     https://www.cnblogs.com/XHJT/p/3897440.html
    
  3. andorid 四大组件是什么

     activity  
     service
     content provider 
     broadcast receiver
    
  4. androide 数据存储方式有哪些

     文件存储
     SharedPreferences
     SQLite数据库存储
     ContentProvider
     网络存储
    

5.java虚拟机和Davilk虚拟机区别

java虚拟机是基于栈 

--> 加载流程  
.java --> .class文件--> jvm虚拟机

Davilk是基于寄存器 

.java --> .class文件--> .dex文件 -->Davilk可执行文件 
  1. activity的启动模式和使用场景

     standard  标准模式
     singleTop 栈顶复用
     singleTask 栈内单例模式
     singleInstance  单一实例模式
    
    
     standard 默认模型 
     singleTop 使用场景 比如登录界面
     singleTask 使用场景 应用程序主界面 
     singleInstance 使用场景 拨打电话界面
    
  2. 注册广播的方式 这些方式有什么区别

      注册方式 静态注册和动态注册     
      静态注册不能取消广播接受,应用关闭后还会收到广播
      动态注册当应用关闭后接收器自动销毁 也可以手动销毁
    
  3. activity的生命周期有哪些

      onCreate()  --> onStart() --> onResume()--> onPause() --> onStop()-->onDestory()
      
      onReStart()
    
  4. mvc和mvp mvvm区别

     mvc 
     优点:耦合性低 视图层和业务层分离 
     缺点:视图和控制器连接过于密切 
    
     mvp 
     mvp是mvc的升级模式  
     优点  
     模型和视图完全分离 
     业务逻辑在presenter上 单元测试比较方便  
     缺点
     presenter和视图层交互太频繁 视图层改变 presenter也要跟着改变 
    
     mvvm 和mvp模式很像 多了一个双向数据绑定的过程 
    
  5. android的事件传递

    View的事件传递 
    View的绘制流程  
    
  6. 内存溢出和内存泄漏

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值