面试
这个人中暑了
这个作者很懒,什么都没留下…
展开
-
String创建难点和intern
1.String a="ab",String b="ab",a==b结果:trueString储存在常量池,创建时先查看常量池,如果有则返回引用,没有则创建新的,所以相等。2.String a="ab",String b="a"+"b",a==b结果:true编译时会省略+号,相当于String b="ab"3.String a="ab原创 2019-03-01 19:47:41 · 140 阅读 · 0 评论 -
JVM对象回收算法
回收算法引用计数法每个对象含有一个引用计数器,每当被引用计数器值就加1;当引用失效,计数器值减1。但是该方法会有循环引用问题,如果对象A、B互相引用,然后A、B=null,这时虽然A、B引用失效,但是由于仍然相互引用,内部计数器值不为1,所以无法回收。所以JVM使用的并不是引用计数法。可达性分析算法将一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,走过的...原创 2019-03-02 23:12:33 · 182 阅读 · 0 评论 -
二叉树非递归遍历
先序遍历先序遍历顺序:中左右首先构造一个栈,将根节点压入栈。然后弹出栈顶部元素,打印输出,再压入弹出元素的右儿子和左儿子(注意顺序)。这时再开始循环,弹出栈顶元素,打印输出,再压入弹出元素的右儿子和左儿子,直到最后栈元素为空 public void before(Node root) { if(root==null) return; Stack<N...原创 2019-03-07 15:18:46 · 2350 阅读 · 1 评论 -
TCP/IP协议详解
TCP/IP模型层次应用层:Http、FTP协议 传输层:TCP/UDP协议 网络层:IP协议,负责对数据加上IP地址和其他的数据以确定传输目标 网络接口层:以太网协议数据链路层 三个基本问题:封装成帧、透明传输、差错检测。 封装成帧:把网络层数据报加头和尾,封装成帧,帧头中包括源MAC地址和目的MAC地址。 透明传输:零比特填充、转义字符。 透明传输是指不管...原创 2019-03-22 14:31:36 · 511 阅读 · 0 评论 -
OkHttp源码简单解析
使用流程1.创建OkHttpClient对象默认直接new OkHttpClient()创建,其实内部是通过一个建造者模式创建的,使用默认配置。2.发起Http请求Requst通过Request.Builder()创建,client.newCall(Request)返回一个call,newCall()返回的是一个RealCall对象。Call的execute()是同步方法,enque...原创 2019-04-16 14:10:20 · 194 阅读 · 0 评论 -
Retrofit详解:新手学习
这是我在学习Retrofit时为了理解写下来的,写的很详细,如果你是对Retrofit不了解,请一定从头到尾耐心地读下来。我在遇到一个方法是,常常会一直深入下去,所以往往结果就是深入结束后都忘记从哪儿开始的了,所以请耐心地回头看看。> 一.创建RetrofitRetrofit retrofit=new Retrofit.Builder() ...原创 2019-04-18 20:20:09 · 1009 阅读 · 0 评论 -
Android AsyncTask源码解析
由于AsyncTask是抽象类,所以必须要有子类继承,下面是它的构造函数://1public AsyncTask() { this((Looper) null); }//2public AsyncTask(@Nullable Handler handler) { this(handler != null ? handler.getLooper()...原创 2019-05-12 12:43:59 · 142 阅读 · 0 评论 -
Android EventBus源码解析
1.EventBus.getDefault().register(this);public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance =...原创 2019-05-23 15:11:55 · 122 阅读 · 0 评论 -
Android热修复之代码修复原理(类加载方案)
这个方案是基于Android的类加载机制PathClassLoader负责加载Android的系统类和你自己定义的应用程序类;DexClassLoader负责加载任意目录下的dex和zip、jar、apk内的dex文件;PathClassLoader0和DexClassLoader都继承自BaseDexClassLoader,这两者类似,只是增加了调用父类构造函数的构造函数。所以功能不同只是...原创 2019-05-23 19:58:19 · 248 阅读 · 0 评论