android 知识小结-1
Java哪些数据结构是线程安全的,CurrentHashMap的原理
ConcurrentHashMap、ConcurrentSkipListMap、ConcurrentSkipListSet、ConcurrentLinkedQueue、
CopyOnWriteArrayList、CopyOnWriteArraySet、
vector、HashTable
ConcurrentHashMap原理:数组结构包含16个segment,每个segment也是table数组结构,包含了16个桶,每一个桶由hashEntry链表组成
使用了分离所技术,每个segment都有独立的锁。
CAS操作:compare and set的缩写,是指在set之前进行比较该值有没有变化,只有在没有变化的情况下才进行赋值
Java创建线程有哪些方式,线程池的使用和原理,拒绝策略等
继承Thread,实现Runnable,实现Callable,线程池
线程池的原理:
1.调用线程池创建线程时,先判断当前执行线程的数量是否小于核心线程池的线程总数量corePoolSzie,如果小于则新建成功,大于等于则判断工作队列是否已满,没满
则将任务存储在队列里等待执行,如果队列满了,则在非核心线程池新建线程,如果线程数量小于maximunmPoolsize则新建成功,如果大于,则新建线程的请求将被拒绝,并执行饱和策略
饱和策略:
a.abort策略:默认策略,新任务提交时直接报出异常
b.CallerRuns策略:任务提交时既不抛弃,也不抛出异常,而是在调用者线程中执行任务。
c.Discard策略:提交新任务时,不报异常,直接抛弃任务
d.DiscardOldest策略:放弃队头的任务,将新任务提交,执行
Android实现异步有哪些方式,我回答了可以用Thread+Handler(HandlerThread),AsyncTask,RxJava。
1.继承Thread,实现Runnable,实现Callable,线程池,handler post runable,asyncTask,intentService
Handler的讲了实现机制、对源码理解,AsyncTask主要讲了几个回调方法在实际项目中如何使用,
1.handler原理:在主线程中new 一个handler,子线程调用其sendMessage(),发送消息,handler内部通过getloop获取主线程的loop对象,loop对象内部有一个消息队列,将要send的message对象放入其中。
通过不断循环取出message对象,message对象持有了发送他的Handler对象,会调用其handlerMessage(),从而在主线程中拿到子线程传递的数据
2.AsyncTask原理:内部用两个实现了executer接口的对象,一个是serialExecuter对象使用arrayDeque控制任务,先进先出的执行。另一个是线程池对象,
负责执行任务。包含了onPreExecutor()在主线程中执行准备工作,doInBackground()负责执行后台任务,onProgressUpdate()在UI线程中更新任务执行进度,onPostExecuter()在主线程中显示结果,onCanceled()取消任务执行
RxJava主要说了事件订阅机制,线程控制,map,zip,上下游流量控制。
1.subscribe()给被观察者添加一个观察者,subscribeOn()在io线程中执行,observeOn()切换到UI线程,map()对象变换,
Android四大组件有哪些,都有哪些回调方法,主要问了Activity,活动切换时两个活动生命周期是怎么变换的
Java内存管理,主要说的是堆内存的管理,回答了新生代、老年代的区别,如何通过JVM参数对新生代过渡到老年代进行控制,GC常见算法,垃圾收集器讲了CMS,
堆内存分为:年轻代,老年代,持久代。年轻代有被分为eden,survivor1,survivor2,
通过-XX:MaxTenuringThreshould控制其被GC回收的次数,年龄,来控制是否过度到老年代.
gc常见算法:引用计数,标记清楚,标记整理,复制,增量收集,分代
https://my.oschina.net/manmao/blog/601933
快排的原理,最好、最坏情况以及对应时间复杂度,从递归方程式上给他说了下。
从数组中取一个基准数,将其和数组其它数据比较,比它小的放到左边,大的放大右边.然后在对左边和右边的数据按此方法操作,直到组织只有一个元素为止.
时间复杂度最好的情况是O(nlogn),最坏的情况:O(n~2),空间复杂度是O(nlogn)
android 知识小结-1的更多相关文章
- Android app开发知识小结
Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,d ...
- java 、android 知识图谱
java知识图谱: android知识图谱: 照此图练习,神功自成.....
- C/C++ 位域知识小结
C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存 ...
- 我的Android进阶之旅------>Android知识图谱
Android知识图谱.快来看看哪方面有漏洞? 该图转自:http://blog.csdn.net/xyz_lmn/article/details/41411355
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- html5-基本知识小结及补充
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Android知识补充(Android学习笔记)
Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...
- HTTPS知识小结
HTTPS知识小结 背景1:TCP握手 internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的: A:你好,我跟你建立一个TCP好吗? B:好啊. A ...
- shell 环境变量的知识小结
环境变量的知识小结:·变量名通常要大写.·变量可以在自身的Shell及子Shell中使用.·常用export来定义环境变量.·执行env默认可以显示所有的环境变量名称及对应的值.·输出时用“$变量名” ...
随机推荐
- OCR技术浅探:Python示例(5)
文件说明: 1. image.py——图像处理函数,主要是特征提取: 2. model_training.py——训练CNN单字识别模型(需要较高性能的服务器,最好有GPU加速,否则真是慢得要死): ...
- Java面试人事篇(二)
1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...
- Yarn框架和工作流程研究
一.概述 将公司集群升级到Yarn已经有一段时间,自己也对Yarn也研究了一段时间,现在开始记录一下自己在研究Yarn过程中的一些笔记.这篇blog主要主要从大体上说说Yarn的基本架构以及其 ...
- HDU1695:GCD(容斥原理+欧拉函数+质因数分解)好题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题目解析: Given 5 integers: a, b, c, d, k, you're to ...
- (转)Terraform,自动化配置与编排必备利器
本文来自作者 QingCloud实践课堂 在 GitChat 上分享 「Terraform,自动化配置与编排必备利器」 Terraform - Infrastructure as Code 什么是 T ...
- c/c++值传递和引用传递
今天看数据结构的时候,因为是c语言版的,刚开始学的时候就对指针搞的焦头烂额,今天,发现参数传递的时候,&符号也莫名其妙,搜了一篇好文,转载下来. 一. 函数参数传递机制的基本理论 函数参数传递 ...
- python: 随机选择
想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : ...
- 居于mtk芯片安卓车机系统具体流程
一:车机系统框架 MCU 功能 电源控制 Radio 控制(RDS) 按键检测(Panel/Remote/SW) 常见信号检查(倒车/大灯/刹车) CAN 模块通讯 ARM- ...
- 使用docker创建aosp编译环境
如果只需要编译一个版本的aosp,那么如果在主机上架建环境即可,可写的程序如果要在各个aosp版本中编译,那在主机上架建多个aosp编译环境可以会比较麻烦,github上找到一个openstf用doc ...
- POI之Excel导入
1,maven配置 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-oox ...