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

相关文章

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

java线程深度解析(五)——并发模型(生产者-消费者)

http://blog.csdn.net/Daybreak1209/article/details/51378055 三、生产者-消费者模式     在经典的多线程模式中,生产者-消费者为多线程间协作提供了良好的解决方案。基本原理是两类线程,即若干个生产者和若干个消费者,生产者负责提交用户请求任务(到内存缓冲区),消费者线程负责处理任务(从内存缓冲区中取任务进行处理),两类线程之

java线程深度解析(四)——并发模型(Master-Worker)

http://blog.csdn.net/daybreak1209/article/details/51372929 二、Master-worker ——分而治之      Master-worker常用的并行模式之一,核心思想是由两个进程协作工作,master负责接收和分配任务,worker负责处理任务,并把处理结果返回给Master进程,由Master进行汇总,返回给客

java线程深度解析(二)——线程互斥技术与线程间通信

http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的