随笔分类 -  面试答案

摘要:线程池以及四种常见线程池 四种常见的线程池: Executors.newCachedThreadPool() Executors.newFixedThreadPool(int nThreads) Executors.newScheduledThreadPool(int nCorepoolSize) 阅读全文
posted @ 2018-11-27 17:30 帅不过王力宏 阅读(171) 评论(0) 推荐(0)
摘要:SurfaceView "链接一" 拥有一个独立的绘图表层,可以不需要在主线程中进行绘制。 ​ Activity窗口的顶层视图DecorView及其两个TextView控件的UI都是绘制在SurfaceFlinger服务中的同一个Layer上面的,而SurfaceView的UI是绘制在Surface 阅读全文
posted @ 2018-11-27 17:29 帅不过王力宏 阅读(98) 评论(0) 推荐(0)
摘要:TCP 、 UDP、三次握手、四次挥手 运输层为应用层提供端到端的的通信服务 UDP:无连接、不可靠的协议。DNS DHCP 都是使用的udp协议 TCP:TCP协议是面向连接的、可靠传输、有流量控制,拥塞控制,面向字节流传输等很多优点的协议。其最终功能和UDP一样,在端和端之间进行通信,但是和UD 阅读全文
posted @ 2018-11-27 17:29 帅不过王力宏 阅读(152) 评论(0) 推荐(0)
摘要:LRU least recently used 最近最多使用 实现原理为一个链表,新添加的排在链表头,如果链表中有使用过的元素,就提取到链表头,当需要删除元素的时候就从链表尾删除 阅读全文
posted @ 2018-11-27 17:29 帅不过王力宏 阅读(125) 评论(0) 推荐(0)
摘要:Java 线程内存模型 "链接一" 所有线程共享主内存,每个线程有自己的工作内存 产生线程安全的原因 :线程的working memory是cpu的寄存器和高速缓存的抽象描述:现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级 是: 寄存器-高速缓存-内存 。线程耗费的 阅读全文
posted @ 2018-11-27 17:28 帅不过王力宏 阅读(129) 评论(0) 推荐(0)
摘要:Java 对象的生命周期 "链接一" 类的创建阶段的详细流程 第一步:找到需要加载的类并把类的信息加载到jvm的方法区中。加载的方式有如下: 从class文件中读取 从jar文件中读取 从网络获取applet 根据一定的规则生成:比如动态代理模式,自动生成的代码 从非class文件中读取:道理和从c 阅读全文
posted @ 2018-11-27 17:27 帅不过王力宏 阅读(342) 评论(0) 推荐(0)
摘要:hashMap 与concurrentHashmap 转载自 https://javadoop.com/post/hashmap hashmap concurrentHashMap 阅读全文
posted @ 2018-11-27 17:25 帅不过王力宏 阅读(89) 评论(0) 推荐(0)
摘要:glide图片加载原理 参考 "链接一" 简介的简介 第一步:Glide.with(context) 在传入为fragment或者Activity的时候添加一个没有view的fragment来监控生命周期 第二步:load(url)生成RequestBuilder 第三步:into(ImageVie 阅读全文
posted @ 2018-11-27 17:24 帅不过王力宏 阅读(244) 评论(0) 推荐(0)
摘要:单链表成环 如何判断单链表成环,求环的长度(要求事件复杂度) 通过深度优先算法,在遍历过的节点上添加标记位 通过套圈的方式一个指针前进1 一个指针前进2,当两个指针第二次重叠的时候就可以检测出是否成环 阅读全文
posted @ 2018-11-27 17:23 帅不过王力宏 阅读(113) 评论(0) 推荐(0)
摘要:模块化实现的好处 代码结构更清晰 开发更解藕 阅读全文
posted @ 2018-11-27 17:23 帅不过王力宏 阅读(94) 评论(0) 推荐(0)
摘要:本地密钥的安全 1、将密钥分成不同的几段,有的存储在文件中、有的存储在代码中,最后将他们拼接起来,可以将整个操作写的很复杂,这因为还是在java层,逆向者只要花点时间,也很容易被逆向。 2、用ndk开发,将密钥放在so文件,加密解密操作都在so文件里,这从一定程度上提高了的安全性,挡住了一些逆向者, 阅读全文
posted @ 2018-11-27 17:22 帅不过王力宏 阅读(386) 评论(0) 推荐(0)