Android开发个人面经千字汇总网易字节有赞
Android客户端开发个人面经汇总
一、 Java
- 面向对象有哪些基本特征;
- 讲一讲多态;重写和重载的区别;
- 面向对象和面向过程有什么区别;
- static关键字的作用(可能还会问static在Java和C和C++中作用有什么区别),final关键字的作用,private、protect、public关键字的作用;
- C++和Java有什么区别;
- 了解抽象类吗;
- 抽象类和接口的区别;
- 内部类和匿名内部类;
- 了解泛型吗 ;
- 自动装箱拆箱机制;(Integer和Int相关的问题)
- 堆和栈的区别;
- LinkedList与ArrayList有什么区别(数组和链表的区别),各自有什么优缺点和使用场景;
- HashMap的底层原理;
- 产生哈希冲突了是怎么解决的;
- 介绍一下hashcode和equals的区别;
- HashMap和HashTable的区别;
- 字符串拼接有哪几种方式;
- String,StringBuilder,StringBuffer 的区别;
- String s = new String("abc"),创建了几个实例?
- Int最大值加1会得到什么;
- 四大引用了解吗;
- 你了解设计模式吗,可以介绍几种吗;
- 了解单例模式吗,有哪些单例模式,他们的优缺点是什么;
- Java内存模型,内存泄漏;
- Java垃圾回收机制;
二、 Android
- 讲一讲四大组件的应用场景;
- 活动的生命周期,分别在什么情况下经历;
- 从活动A启动活动B会经历哪些生命周期,再从活动B返回活动A呢;切换到后台会经历哪些生命周期;
- 活动的启动模式有哪些,具体介绍一下;
- Fragment生命周期;
- 两个Fragment之间如何传递数据;
- Service生命周期;Service启动方式;
- 线程的创建方式有哪几种;
- 服务可以进行耗时操作吗,主线程可以进行耗时操作吗;
- SharedPreference的commit和apply区别;
- 使用ListView或者RecyclerView有没有碰到什么问题,比如滑动卡顿,怎么优化;
- 怎么设计一个下拉刷新的功能;
- 怎么实现一个免登陆功能(第一次登录之后,后续不用再次登录了);
- 了解安卓的消息通信机制吗;
- 了解handle机制吗;
- 事件分发机制;
- 用过什么框架,了解MVP和MVVM吗,他们和MVC有什么区别;
三、 计网
- http方法有哪些;
- http和https的区别;
- https有什么加密方式,介绍下加密过程;
- http状态码;
- 介绍下对称加密和非对称加密;
- TCP三次握手介绍一下;四次挥手介绍一下;为什么一定要是三次握手,不能是两次吗;
- TCP和UDP的区别,适用场景有哪些;TCP是怎么保证可靠性的;
- 介绍一下拥塞控制和流量控制,是怎么实现的;
- 网络分层结构,**层有哪些协议;
- 从输入一个url到展示页面出来经历了什么过程;
- DNS寻址过程;
四、 操作系统
- 进程和线程的区别;
- 线程有几种状态;
- wait和sleep的区别;
- 介绍一下线程池;
- 进程间通信方式;
- 内核态和用户态的区别;
- 如何保证线程安全;
- 死锁发生的条件,如何解决死锁;
- 你了解有哪些锁,简单介绍一下,比如自旋锁和互斥锁;
五、 算法(说点简单的容易被问的,别的还是靠刷题)
- 各种排序,尤其快排;
- 二叉树各种遍历,前序、中序、后续、层序;
- 反转链表;
- 判断链表是否有环,找到环的位置;
- 手写单例模式;
- 括号匹配;最长有效括号;
- 多线程按序交替打印