从Android到Harmony,从头大到头秃:客户端开发面试题

       2024年的6月真是忙碌的一个月,在鸿蒙的一线摸爬滚打,白天与BUG不死不休地缠斗,晚上还要迎战大厂面试官的灵魂拷问,好在天随人愿结果是好的,特此记录下我艰难波折的客户端开发的社招面试之旅。以下面试题全部真实,如有雷同,那就是你面试的我哈哈。

~~~先把题目发出来,后面我慢慢补答案OVO。

目录

1. 基础知识(网络、数据结构、操作系统、并发编程、数据库)
2. Android相关知识
3. Harmony相关知识
4. 性能功耗优化及稳定性方面知识
5. 算法题
6. 项目经历与其他


1. 基础知识(网络、数据结构、操作系统、并发编程、数据库)

        1.1 interface和class的区别

        转载 interface和class的区别_js interface和class的区别-CSDN博客

        【延伸】TypeScript中的type 以及 type 与 interface 和 class 的区别

  深入理解 TypeScript 的 type 以及 type 与 interface 和 class 的区别_typescript_Lee Chen_InfoQ写作社区

        1.2 Collections.synchronizedMap和ConcurrentHashMap的区别

        转载 Collections.synchronizedMap()与ConcurrentHashMap的区别_collections的synchronize两者的区别是什么?-CSDN博客

        1.3 http 和 https 的区别

        HTTP 与 HTTPS 的区别 | 菜鸟教程

        1.4 http1.0和http2.0以及http3.0的区别

        HTTP1.0、HTTP2.0、HTTP 3.0区别-腾讯云开发者社区-腾讯云

        1.5 Java中静态方法能否访问非静态成员变量和方法

        转载 java中静态方法中调用非静态方法_java中静态可以调用非静态么-CSDN博客

        1.6 String的拼接方式以及比较

        转载 https://www.cnblogs.com/lujiahua/p/11408689.html

        1.7 如何保证3个线程顺序执行

        转载 如何确保三个线程顺序执行_如何保证3个线程顺序执行-CSDN博客

        1.8 sleep和wait方法是否占用CPU

        转载 理解线程状态,答疑wait与sleep是否占用cpu资源的问题,再来个小demo_java 线程状态 消耗cpu资源-CSDN博客

        1.9 HashMap的存储方式是怎样的,又是如何解决hash冲突的

        转载:【Java面试小短文】HashMap是如何解决Hash冲突的?_hashmap解决下标冲突-CSDN博客

        1.10 SQLite数据库损坏如何修复

        微信 SQLite 数据库修复实践-腾讯云开发者社区-腾讯云

        1.11 SQLite如何保证线程安全

        转载 https://www.cnblogs.com/linybo/p/11934955.html

        https://www.cnblogs.com/HelloCodeWrold/p/12967926.html

        1.12 SQLite的日志方式

        转载 [SQLite]浅析其二——SQLite数据库的日志_sqlite 日志-CSDN博客

        1.13 SQLite的连接池

        Android中的数据库连接池-腾讯云开发者社区-腾讯云

        SQLite连接与连接池管理

        1.14 SQLite的事务

        SQLite 事务 | 菜鸟教程

        Blogs/Basic/Sqlite的事务,锁和WAL模式.md at master · LeoMobileDeveloper/Blogs · GitHub        

        1.15 SQLite的索引和视图

        SQLite 索引 | 菜鸟教程

        SQLite 视图 | 菜鸟教程

        Sqlite索引优化 - 简书

        

        1.16 说说okHttp的原理

        转载 https://www.cnblogs.com/fnlingnzb-learner/p/16694470.html

        https://segmentfault.com/a/1190000041244286

        1.17 对称加密和非对称加密的区别

        转载 非对称加密和对称加密的区别 - 简书

        1.18 锁升级和锁优化

        转载 synchronized(下)锁优化和锁升级过程_synchronized 轻量级锁升级过程-CSDN博客

        12.synchronized的锁重入、锁消除、锁升级原理?无锁、偏向锁、轻量级锁、自旋、重量级锁-腾讯云开发者社区-腾讯云

        1.19 Java的线程池参数,核心线程数和最大线程数如何设置

        Java线程池如何合理配置核心线程数-腾讯云开发者社区-腾讯云

        https://www.cnblogs.com/thisiswhy/p/12690630.html

        1.20 SQLite数据库升级流程,假设有1.0,2.0和3.0这3个版本,可以直接从1.0升级为3.0么

        转载 https://www.cnblogs.com/baiqiantao/p/10444800.html

        SQLite数据库版本升级 - 简书

2. Android相关知识

        2.1 Android的线程模型

        转载 Android 线程模型和Looper深入理解_looper和线程 android-CSDN博客

        https://www.cnblogs.com/aimqqroad-13/p/8820271.html

        2.2 Android是如何保证线程安全的

       解锁Android多线程开发核心技术|Android教程|Android高级技术|架构技术|Android架构师|Android资深工程师|架构思维|Kotlin教程|Jetpack教程|MVVM教程|Flutter教程|React Native教程|混合架构|性能优化

        2.3 Handler机制

        转载 全面解析 | Android之Handler机制 - 简书

        Android :安卓学习笔记之 Handler机制 的简单理解和使用_android handler 机制-CSDN博客

        2.4 Android应用启动过程

        搞懂Android应用启动过程,再也不怕面试官了-腾讯云开发者社区-腾讯云

        Android应用启动流程与ActivityThread深入解析|Android教程|Android高级技术|架构技术|Android架构师|Android资深工程师|架构思维|Kotlin教程|Jetpack教程|MVVM教程|Flutter教程|React Native教程|混合架构|性能优化

        2.5 Android的UI绘制流程

        Android高频面试专题 - 提升篇(二)View绘制流程-腾讯云开发者社区-腾讯云

        转载 Android进阶宝典 --- UI的绘制流程_安卓ui设计设计流程图-CSDN博客

        2.6 Android的View如何获取宽高

        转载 Android获取View宽高的常见方式_android 获取view的宽高-CSDN博客

        2.7 Android的进程间通信方式

        转载 Android 进阶13:几种进程通信方式的对比总结_android 进程间通信-CSDN博客

        AndroidNote/OperatingSystem/AndroidKernal/1.Android进程间通信.md at master · CharonChui/AndroidNote · GitHub

        2.8 Android的线程间通信方式

        转载 https://www.cnblogs.com/nhgtx/p/16921667.html

        android线程间通信的几种方法_Android进程间和线程间通信方式-腾讯云开发者社区-腾讯云

        2.9 MVC/MVP/MVVM和MVI的区别

        转载 Android 架构漫谈-从 MVC 到 MVI - 晨鹤部落格

        https://www.cnblogs.com/papering/p/17583548.html

        2.10 Android的启动方式

        Android基础:最易懂的Activity启动模式详解-腾讯云开发者社区-腾讯云

        2.11 View.INVISIBLE和View.GONE的差异

        转载 https://www.cnblogs.com/zhenji-li/p/17068436.html

        2.12 Android的Window

        转载 https://juejin.cn/post/6888688477714841608

        Android视图体系—理解Window概念_android 视图window-CSDN博客

        2.13 Android的Binder机制与原理

        Android跨进程通信:图文详解 Binder机制 原理-腾讯云开发者社区-腾讯云

        

        2.14 Activity A页面启动Activity B页面的生命周期顺序

        转载 Activity A页面启动Activity B页面的生命周期顺序(多种情况)_activitya启动activityb生命周期-CSDN博客

        2.15 Android如何完成组件复用

        转载 Android中组件的复用与封装-CSDN博客

        美团外卖Android平台化的复用实践 - 美团技术团队

        2.16 Android的插件化原理

        转载 Android插件化原理与方案详解_android 插件化原理-CSDN博客

        Android-Notes/notes/android/Android插件化技术——原理篇.md at master · Demo-H/Android-Notes · GitHub

3. Harmony相关知识

        3.1 HarmonyOS的线程模型,它是如何保障线程安全的

        转载 https://www.cnblogs.com/HarmonyOSDev/p/17728498.html

        文档中心

        3.2 TaskPool和Worker的应用场景和差异

        文档中心

        3.3 HarmonyOS的Stage模型

        文档中心

        3.4 ArkUI的常见装饰器

        HarmonyOS 应用开发 —— 常用装饰器整理-腾讯云开发者社区-腾讯云

        3.5 ArkTS和Java在开发视角上的差别

        华为开发者论坛

        鸿蒙HarmonyOS应用开发为何选择ArkTS不是Java?-CSDN博客

        3.6 ArkTS的内存管理机制

        转载 OpenHarmony 资源调度之内存管理源码分析_arkts的内存管理机制-CSDN博客

        OpenHarmony实战开发-内存管理purgeable内存开发指导_openharmony 内存管理-CSDN博客

        3.7 ArkTS异步编程,Promise是如何实现的(宏任务和微任务以及执行顺序)

        转载 华为开发者论坛

        ArkTS异步机制与执行顺序 -鸿蒙开发者社区-51CTO.COM

        3.8 har、hap和hsp的区别

        华为开发者论坛

        3.9 ArkUI渲染机制

        转载 鸿蒙ArkUI:【从代码到UI显示的整体渲染流程】-CSDN博客

        ArkUI节点模型和渲染机制-鸿蒙开发者社区-51CTO.COM

        3.10 HarmonyOS的架构设计思路,它在设计上更偏向Android还是IOS

        转载 鸿蒙系统架构解析:深入理解分层设计与功能实现_三方库在鸿蒙系统中的分层-CSDN博客

        3.11 ArkUI如何获取组件宽高

        文档中心

        3.12 Harmony自定义组件如何使用

        文档中心

4. 性能功耗优化及稳定性方面知识

        4.1 如何发现内存问题、定位手段和工具、如何分析

        转载 https://www.cnblogs.com/dongxb/p/17922486.html

        4.2 内存泄漏的原因和解决方案

        转载 常见的内存泄漏原因及解决方法 - 简书

        4.3 内存泄漏监控工具的原理,它们是如何检测到内存泄漏的

        转载 Android---内存泄漏检测核心原理_android内存泄漏检测工具原理-CSDN博客

        4.4 Android中如何实现动画优化

        转载 Android属性动画优化_android setrepeatcount 无法循环-CSDN博客

        https://blog.51cto.com/u_12947/6397649

        4.5 JVM和Android的内存模型

        转载 Android内存管理(JVM 、DVM(dalvik) 、ART简单介绍)-腾讯云开发者社区-腾讯云

        Android JVM内存模型——老生常谈-CSDN博客

        4.6 GC回收的对象和FullGC的触发条件

        转载 GC详解及Minor GC和Full GC触发条件总结_full gc和minor gc区别,及各自的触发条件-CSDN博客

        4.7 OOM问题如何定位,如何解决

        线上问题定位--OOM-腾讯云开发者社区-腾讯云

        转载 马上: Android线上OOM问题定位解决分享及总结_android oom如何定位-CSDN博客

5. 算法题

        5.1 当前有一系列任务A,B,C,D等,给定各任务的依赖关系,比如B依赖A完成,C依赖A和B完成,D依赖B完成,任务本身不能被中断。请设计一套接口,使得各任务能够按照依赖关系完成,如果中途正在进行任务,任务不能被打断,但是任务可以暂停和继续。

        略(拓扑排序 + 并发控制)

        5.2 手写生产者和消费者算法

        转载 生产者―消费者问题算法的实现_生产者消费者算法-CSDN博客

        5.3 LeetCode 打家劫舍2

        . - 力扣(LeetCode)

        5.4 完美洗牌算法

        转载 https://www.cnblogs.com/greyzeng/p/16410631.html

        5.5 现有一棵二叉树,给出每个节点的值,判断二叉树上是否存在一条从根节点到叶子节点的路径,使得路径上的值的和等于目标值,如果该路径是从根节点到非叶子节点呢

        略(递归)

        5.6 制作日历

        转载 https://www.cnblogs.com/jiakecong/p/16427937.html

        5.7 LeetCode 括号匹配

        . - 力扣(LeetCode)

        

6. 项目经历与其他

        6.1 你最有成就感的项目经历,你是如何应对挑战的
        6.2 现网问题处理流程和解决思路
        6.3 如何协调项目上下游的资源,如何处理跨部门沟通上的障碍
        6.4 应用的稳定性问题如何监控、如何闭环
        6.5 你个人的优势和劣势,未来的职业规划和发展方向
        6.6 如何看待初级开发、中级开发和高级开发的角色定位

7. 延伸阅读

https://blog.yorek.xyz/android/paid/master/storage_3/#_2

AndroidNote/OperatingSystem/AndroidKernal at master · CharonChui/AndroidNote · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值