2024 Android开发工程师面经

  • 2.15 DialogFragment 黑边

  • 2.16 Handler原理,Android 消息机制

  • 2.17 Android 系统架构

  • 2.18 常用布局有哪些

  • 2.19 Android数据存储有几种方式

  • 2.20 View,SurfaceView

  • 2.21 jni调用流程

  • 2.22 组件之间相互引用 如何解决

  • 2.23 自定义View 饼状图,点击事件,画文字

  • 2.24 Android 数字签名

  • 2.25 fragment用在哪里,与Activity的区别

  • 2.26 RxJava原理

  • 2.27 EventBus原理

  • 2.28 View绘制原理

  • 2.29 Retrofit和OkHttp原理,拦截器

  • 2.30 点击事件传递机制,事件分为哪几种

  • 2.31 anr如何产生,Service触发anr是多长时间(20秒),如何解决anr?如何解决那种莫名其妙的anr?

  • 2.32 Dialog和Activity是同一个Window?

  • 2.33 Window,Activity,Dectorview之间的关系

  • 2.34 ConstraintLayout和RelativeLayout在绘制方面有何差别?

  • 2.35 onClick事件和onTouchListener在哪里回调?

  • 2.36 应用如何保活?

  • 2.37 LinearLayout是如何测量(measure)的?如果有weight又是如何测量的?

  • 2.38 屏幕适配

  • 3. 其他

    • 3. Java四种引用
  • 3.1 项目中遇到的最困难的事情是什么?如何解决的?

  • 3.2 Git基本操作

  • 3.3 Kotlin优势

  • 3.4 Kotlin 协程是什么?

  • 3.5 二叉树,广度优先遍历,深度优先遍历

  • 3.6 tcp,http,https,socket

  • 3.7 敏捷开发

  • 3.8 你经常使用哪些设计模式,常见设计模式的运用

  • 3.9 3年之后工资怎么想的

  • 3.10 你的优势

  • 3.11 职业规划(3年后干啥,5年后干啥)

  • 3.12 应用,进程,线程之间的区别

1. Java基础


1.1 什么是乐观锁?

  • 乐观锁:假设每次去拿数据都认为别人不会修改,所以不会上锁.但是在更新的时候会判断一下此期间别人有没有去更新这个数据. 一般用在读比较多,写比较少的情况.

  • 悲观锁:假设每次都是最坏情况,每次去拿数据时别人都会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会被阻塞直到它拿到锁. 多写少读时使用.

扩展资料: https://www.cnblogs.com/renhui/p/9755789.html

1.2 volatile关键字

  1. 保证可见性,不保证原子性

  2. 禁止指令重排序

  3. 不缓存,每次都是从主存中取

扩展资料: https://www.cnblogs.com/zhengbin/p/5654805.html

1.3 hashmap 原理,红黑树是什么?

  • 1.7 数组+链表,链表过长时,会导致查询效率退化

  • 1.8 数组+链表+红黑树,当链表长度大于8转为红黑树

  • HashMap 的默认初始大小为 16,初始化大小必须为 2 的幂,最大大小为 2 的 30 次方。数组中存储的链表节点 Entry 类实现于 Map.Entry 接口,它实现了对节点的通用操作。HashMap 的阈值默认为 “容量 * 0.75f”,当存储节点数量超过该值,则对 map 进行扩容处理。

  • 线程不安全的容器,解决并发问题使用ConcurrentHashMap(高效)或者是Collections.synchronizedMap().Collections.synchronizedMap()其实就是每个方法加一个synchronize,其实和HashTable 差不多.

红黑树

  • 平衡的二叉查找树

  • 节点是红色或者是黑色

  • 根节点是黑色

  • 每个叶子的节点都是黑色的空节点(NULL)

  • 每个红色节点的两个子节点都是黑色的

  • 从任意节点到其每个叶子的所有路径都包含相同的黑色节点

  • 插入时会涉及到变色和旋转

扩展资料: https://blog.youkuaiyun.com/justloveyou_/article/details/62893086

http://www.360doc.com/content/18/0904/19/25944647_783893127.shtml

1.4 jvm内存分配

Java虚拟机书中第二章

  • 程序计数器

  • Java虚拟机栈

  • 本地方法栈

  • Java堆

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值