2020 字节跳动,网易,华为,androidui线程执行

2023-12-03 06:50

本文主要是介绍2020 字节跳动,网易,华为,androidui线程执行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要是MVC和MVP,当然更主要是MVP喽。然后自己把MVP的架构讲了一下,以及在项目中遇到的MVP架构不合理的地方,和自己认为对这个不合理地方的改进。然后讲了自己针对公司项目的MVP架构,写的Android Studio插件。

5.然后问了我简历里写的技术细节的东西。

比如屏幕适配。项目中为什么使用OpenGL。礼物动画为什么使用SurfaceView,它与View有什么区别等等。

6.最后先让我说我看过的一些Android的源码,然后我讲了一下Activity,Ph
oneWindow,View他们的关系。

还有Touch事件的分发过程,自己还说看过Handler消息传递机制,不过他没有让去细讲,估计听了前两个讲的挺细的觉得够了吧。然后他又问了一下Activity从Launcher的启动过程。这个自己明确表明没有看过源码,但是自己也简单的分析了一下可能过程,感觉面试官还算认可。之后查询相关资料发现自己分析的有些地方还是不对的,而且还有很多细节没有分析到(囧)。

**整个过程面试下来感觉还是不错的。面试官的问题由浅入深。**而且针对自己项目细节都有针对的问题。面试到最后面试官说之后会有主管给我面试。我觉得一面应该是过了吧。然后收到回复是面试哥觉得我去这个部门太委屈了,因为是游戏辅助APP,然后让HR姐姐把我推荐到云音乐,非常感谢面试哥,人真的蛮好,也谢谢HR姐姐帮忙推荐其他部门。但是无奈云音乐并不缺人,但这里也不要我了……不过对方招聘岗位本来就是高级工程师。可能感觉我经验还是不够吧。


字节跳动

一面 46min
  • 简单介绍项目

  • 了解哪些数据结构

  • 了解哪些排序算法

  • 手撕代码:堆排序

  • Java集合类:a)LinkedList与ArrayList;b)HashMap扩容 ConcurrentHashMap

  • TCP与UDP,区别及运用场景

  • http是用的TCP还是UDP

  • http与https的区别

  • JVM内存模型(Static方法在哪个区)

  • Activity生命周期,Activity启动模式,Handler源码

  • 代码题:旋转数组

(一面面试官很nice,答的时候卡壳还会给引导,问的问题、撕的代码都不难)

下午面完当天晚上就接到约二面的通知了

二面 55min(部分问题有重叠的不再列出)
  • final、finally、finalize的区别

  • 抽象类的成员变量与成员方法的继承

  • socket是否了解,简单聊聊

  • 经典问题:在浏览器输入网址敲回车后经历了什么(这题我感觉我至少说了10分钟[捂脸]) a)三次握手;b)https的加密流程;c)对称加密与非对称加密原理(RSA、AES)

  • 数据库有哪几种隔离机制

  • union与union all的区别

  • MySQL的索引怎么实现的

  • B+树查找的时间复杂度,数据结构讲一下

  • 设计模式:a) 手撕DCL单例;b) 还了解什么设计模式(讲了观察者模式、策略模式)

  • JVM的垃圾回收机制,GC Roots有哪些,说说了解的垃圾回收器

  • View的事件分发机制

  • 代码题:两数相加(链表,要求原地实现,空间复杂度O(1),这个犯蠢撕了好久结果还是靠强行打印发现的问题)

面完后二面面试官希望直接进行三面,可惜似乎三面面试官在开会,所以另约在了两天后

三面 70min (部分问题有重叠的不再列出)
  • 线程与进程

  • 死锁条件,如何排查、解决

  • 虚拟内存、分页机制,讲一讲LRU

  • 创建对象的方式有哪几种(new 反射 clone 序列化)

  • 序列化与反序列化

  • 反射中的class.forname()与class.getclass()二者有什么区别

  • String.equals(),StringBuffer

  • 类加载的过程讲一下

  • Java锁的种类

  • volatile关键字的作用、原理

  • handler.post(Runable()),聊一聊这个

  • ANR,OOM了解吗?

代码题:a) 螺旋遍历矩阵;b)(变种)原地旋转图像

  • 聊人生聊理想聊爱好

讯飞

相对于网易的面试要简单一些。主要问题偏向于解决他们项目中面临的问题。

1.自我介绍:当然这个还是那些内容嘛。

2.他又问了一些基础的东西。这个我也记不大清了。

3.然后又问了MVP架构的东西。

4.然后他开始问一些问题,应该是他们项目中遇到的问题。讲了一个需求“要在手机上显示一个表格,表格可能100*100,要在这些表格里显示数据,手机屏幕一般只能显示4列,这个要怎样做。是使用View用Canvas绘制上去,还是使用ViewGroup添加View进去?”。自己给出了使用RecyclerView然后自定义LayoutManager的方式实现(因为自己这样做过嘛,详情可以看我的把RecyclerView撸成马蜂窝)。他听了还是比较满意的。

5.还有一个是手机和平板适配的办法。这个其实很简单嘛。Android官方有很好的方案。layout-swxxx+Fragment嘛。然后接着问了Fragment使用的具体方法都有哪些。这个也不难嘛。什么Fragment+FragmentAdapter+ViewPager,或者使用FragemntManager来通过Transaction来操作Fragment等等。

6.最后问了一下工作模式。一个需求拿到手,要怎样把需求做出来。这样的工作流程是怎样的?这个自己从需求分析到与其他部门商定通信协议,然后再分析需求要注意的case,最后再实际编码,都讲了一下。他也比较满意的。

整体下来,这个公司偏向于应用和解决问题的能力。具体的原理没有去问太多。过的也是挺轻松的。不过这里可以看出无论是大公司和创业公司,对MVP都很有比较高的要求的。 还有就是简历中自己写的东西一定要能讲出个123。这个家公司还是比较注重人才的开的薪水还是不错的。 但是最后我聊了聊工作内容,自己并不是很感兴趣。感觉对于自身的成长帮助不是很大,所以并没有准备去。


应用和解决问题的能力。具体的原理没有去问太多。过的也是挺轻松的。不过这里可以看出无论是大公司和创业公司,对MVP都很有比较高的要求的。 还有就是简历中自己写的东西一定要能讲出个123。这个家公司还是比较注重人才的开的薪水还是不错的。 但是最后我聊了聊工作内容,自己并不是很感兴趣。感觉对于自身的成长帮助不是很大,所以并没有准备去。


这篇关于2020 字节跳动,网易,华为,androidui线程执行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/448524

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法