| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 分享一些重要的Android面试题,字节跳动最新开源 -> 正文阅读 |
|
[移动开发]分享一些重要的Android面试题,字节跳动最新开源 |
2.自增操作有三步,此时多线程写会出现问题 1.操作:内存值V、旧的预期值A、要修改的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做并返回false。 1.一个线程写,多个线程读的时候,会造成写了一半就去读 1.Asynctask:异步任务类,单线程线程池+Handler 2.线程池: 1.ThreadPoolExecutor:通过Executors可以构造单线程池、固定数目线程池、不固定数目线程池。 2.ScheduledThreadPoolExecutor:可以延时调用线程或者延时重复调度线程。 3.GC相关:重要 1.搜索算法: 1.引用计数 2.图搜索,可达性分析 2.回收算法: 1.标记清除复制:用于青年代 2.标记整理:用于老年代 3.堆分区: 1.青年区eden 80%、survivor1 10%、survivor2 10% 2.老年区 4.虚拟机栈分区: 1.局部变量表 2.操作数栈 3.动态链接 4.方法返回地址 5.GC Roots: 1.虚拟机栈(栈桢中的本地变量表)中的引用的对象 2.方法区中的类静态属性引用的对象 3.方法区中的常量引用的对象 4.本地方法栈中JNI的引用的对象 JAVA类加载过程: 1.加载时机:创建实例、访问静态变量或方法、反射、加载子类之前 1.mvc:数据、View、Activity,View将操作反馈给Activity,Activitiy去获取数据,数据通过观察者模式刷新给View。循环依赖 1.classes.dex:通过代码混淆,删掉不必要的jar包和代码实现该文件的优化 2.资源文件:通过Lint工具扫描代码中没有使用到的静态资源 3.图片资源:使用tinypng和webP,下面详细介绍图片资源优化的方案,矢量图 4.SO文件将不用的去掉,目前主流app一般只放一个arm的so包 ANR的形成,各个组件上出现ARN的时间限制是多少 1.只要是主线程耗时的操作就会ARN 如io 2.broadcast超时时间为10秒 按键无响应的超时时间为5秒 前台service无响应的超时时间为20秒,后台service为200秒 SERIALIZABLE和PARCELABLE 的区别 1.P 消耗内存小 2.网络传输用S 程序内使用P 3.S将数据持久化方便 4.S使用了反射 容易触发垃圾回收 比较慢 SHAREDPREFERENCES源码简述 1.储存于硬盘上的xml键值对,数据多了会有性能问题 2.ContextImpl记录着SharedPreferences的重要数据,文件路径和实例的键值对 3.在xml文件全部内加载到内存中之前,读取操作是阻塞的,在xml文件全部内加载到内存中之后,是直接读取内存中的数据 4.apply因为是异步的没有返回值, commit是同步的有返回值能知道修改是否提交成功 5.多并发的提交commit时,需等待正在处理的commit数据更新到磁盘文件后才会继续往下执行,从而降低效率; 而apply只是原子更新到内存,后调用apply函数会直接覆盖前面内存数据,从一定程度上提高很多效率。 3.edit()每次都是创建新的EditorImpl对象. ANR的形成,各个组件上出现ARN的时间限制是多少 1.只要是主线程耗时的操作就会ARN 如io ANR的形成,各个组件上出现ARN的时间限制是多少 1.只要是主线程耗时的操作就会ARN 如io |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:34:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |