# 微信读书
自我介绍
实习经历简介,负责了哪些?
MVP 模式
模型层(Model):主要是获取数据功能,业务逻辑和实体模型。
视图层(View):对应于 Activity 或 Fragment,负责视图的部分展示和业务逻辑用户交互。
控制层(Presenter):负责完成 View 层与 Model 层之间的交互,通过 Presenter 获取 Model 的数据返回给 View,使得 View 与 Model 之间没有耦合。
网络请求框架有了解过内部的原理吗?
主线程怎么把数据交给子线程?Handler 和 AsyncTask?
除了约束布局,还有什么线性布局还是相对布局?它们之间的区别是什么?
LinearLayout 是将多个 View 水平或者垂直排列;RelativeLayout 可以通过确定两个或多个组件的相对位置来摆放组件。
有没有遇到过一个布局中嵌套的布局非常多?会出现什么情况?
Android 界面的布局太复杂,嵌套层次过深,会使得整个界面的测量、布局和绘制变得更复杂,对性能会造成影响。
有没有遇到过界面卡顿的情况吗?什么情况会造成界面卡顿?
View 的绘制流程?执行的顺序?
有没有了解过一些事件传递机制?
Java 虚拟机有哪几种内存?哪些内存是独立的,哪些是共享的?方法区分为哪些?
方法区(线程共享):各个线程共享的一个区域,用于存储虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量池是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。
HashMap 的原理?
put
方法发生冲突会怎么样?垃圾回收机制?怎么判断什么时候会被回收?
https 和 http 的区别?
Socket 有了解吗?
Socket 相关面试题:
Socket 是对 TCP/IP 协议簇的一种封装,是应用层与 TCP/IP 协议簇通信的中间软件抽象层。
TCP 和 UDP 的区别:
- TCP 提供面向连接的传输,通信前要先建立连接(三次握手机制);UDP 提供无连接的传输,通信前不需要建立连接;
- TCP 提供可靠的传输(有序、无差错、不丢失、不重复);UDP 提供不可靠的传输;
- TCP 是面向字节流的传输,所以能将信息分隔成组,并在接收端将其重组;UDP 是面向数据报的传输,没有分组开销;
- TCP 提供拥塞控制和流量控制机制;UDP 不提供拥塞控制和流量控制机制
长连接和短连接的区别?HTTPS 是长连接吗?
在 HTTP/1.0 中,默认使用短连接。就是浏览器和服务器每进行一次 HTTP 操作,都会建立一次连接,任务结束后就会断开连接。
在 HTTP/1.1 中。默认使用长连接。使用长连接的情况下,当某个网页打开完毕之后,客户端和服务器之间的 TCP 连接不会关闭,如果客户端再次访问该服务器上的网页,会使用上一次已经建立的连接。但是长连接不是永久的连接,它有一个保持时间
Activity 生命周期?切换横竖屏的生命周期?
切换横竖屏的生命周期:
onPause
onSaveInstanceState
onStop
onDestory
onCreate
onStart
onRestoreInstanceState
onResume
进程和线程的区别是什么?
介绍下快排,时间复杂度?
如何快速找到一个单链表的中间节点?
快慢指针法。当快指针遍历完整个链表后,慢指针才遍历到一半的链表,则正好是单链表中间节点的位置。