首页 > 编程知识 正文

如何永远家里蹲(handler的实现)

时间:2023-05-06 08:27:14 阅读:78225 作者:614

前言

今年我想辞职去大干一场,结果遇到了新冠灾祸,在家蹲了三个月。 打工给了我机会真是太好了。 前几天,字节跳动的报价开始了。 从宣传来看,就是有大量的HC,机会很多。 怀着抬头的心理,配送到了杭州方面的部门。 首先感谢在这里推荐我的哥哥。 热心地跟踪了进展情况。 因为路上发生了几个插曲。 还是热心的哥哥联系了HR,最后把我调到了想送货的部门。 我投的是安卓开发工程师。 面试项目的大部分问题都是围绕我的开源项目蘑菇博客展开的。 另外,也有我以前准备面试的笔记。 (大人物请轻喷。 ()。

面试时间

详细面试解答解析及学习笔记,转发后后台私信关键词【666】即可获得资料下载地址

第一天:等了一面两天:三面HR面一周后:意向书

第一面

等面试官来了看起来年轻,感觉就像刚毕业的年轻人汁,声音发青的哈哈开始面试的时候把我弄懵了。 刚睡午觉醒来,还没缓过神来

计算机网络部分:

1.http的一系列流程是什么?

2.https启动连接的过程是什么?

3.http请求的请求标头包含哪些字段? (这里忘了很多字段,只说了三四个。 呜呜呜) ) )。

4 .一次http请求的机制是什么? 这里是网络问题,问了三遍,终于明白了面试官的意思。 宇宇宇宇

操作系统:

1 .你能简单谈谈线程和进程的区别吗?

2 .你知道进程间通信的方式有什么吗?

你听说过消息生成器吗? (我知道,但基础是仍在使用的AIDL处理程序的形式,而AIDL基础是仍在使用的Binder驱动程序。)

数据库:

1 .你能简单说一下数据库如何修改表中的数据吗?

2 .在表格中添加字段应该使用什么关键字?

Java :

能简单谈谈与Lock、synchronize、CAS的关系,以及具体实用的场景吗?

2 .能详细说一下什么是CAS吗? AtomicInteger是如何实现线程安全的?

3 .具体的密钥升级机制能简单说明吗?

4 .你能简单谈谈代理模式吗? 动态代理和静态代理有什么区别?

安卓:

1 .你能简单说一下事件的分发机制吗?

2.MeasureSpec.UNSPECIFIED是什么意思? 如果外部视图组的模式为AT_MOST,内部层为match_parent,那么最终传递到内部层的模式是什么? (AT_MOST ) ps:这个问题没什么意义

(我听说View有scrollTo,scrollBy,所以我要分析场景问题。)

3 .场景标题:首先,有一个嵌套了两层视图的框架布局。 重写onTouchEvent时,如何滑动上层视图以暴露下层视图? (这里有个洞。 面试官说scrollTo,scrollBy。 我在想这两个人上面怎么曝光下层的视图,最后突然觉得事件可以调整整个视图的布局位置)

源代码:

1 .你看过优秀开源框架的源代码吗?

2 .你知道源代码相关的设计模式吗?

3.HashMap简单说一下原理吧

二面:

二面是一个女面试官,年龄可能在40岁左右

设计模式:

1.熟悉那些设计模式呢?

2.动态代理底层是如何实现的?

3.讲讲Retrofit的动态代理吧

Java:

1.能简单说说JVM内存模型的目的以及在内存中区分为哪些区域吗?

2.内存回收机制大致讲讲呗?

3.类加载机制完整细致的描述一下把

4.类加载器的大力的鼠标委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下)

5.能说一下Java .class文件的结构吗?

6.线程池的基本机制有了解吗?非核心线程如何保证延迟结束?

7.为什么内部类会默认持有外部类的引用?

Android:

1.Handler消息机制简单说一下吧(延时的消息是如何发送的?以及通过Looper.loop()是如何处理延时消息的?)

2.为什么Handler会出现内存泄漏?

3.View中的post和handler的post有什么区别?(我说view中的handler是经过重写的,会处理关于View的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?)

4.有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的JVM内存回收机制)

5.知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制)

6.能讲一下Activity的启动流程吗?

7.听你讲到了进程间通讯,PackageManagerService和ActivityManagerService进行通信的方式是什么?

8.Binder驱动底层原理了解吗?(mmap的内存地址映射)

9.Serializable和Parcable有什么区别?如何使用?

10.听你说到了sp(SharedPreference),你知道sp能跨进程通讯吗?

三面:

1. 聊项目

2. 下面的代码会发生什么?


<font color=``"#ffffff"``> <font color=``"#bbbbbb"``> class Foo { <font color=``"#bbbbbb"``> public``: <font color=``"#bbbbbb"``> void A() {} <font color=``"#bbbbbb"``> <font color=``"#bbbbbb"``> virtual``<font color=``"#bbbbbb"``> void``<font color=``"#bbbbbb"``> B<font color=``"#bbbbbb"``>()<font color=``"#e06c75"``> {}<font color=``"#bbbbbb"``> <font color=``"#bbbbbb"``> void C() { std::cout << this << std::endl; } <font color=``"#bbbbbb"``> }; <font color=``"#bbbbbb"``> Foo* temp = nullptr; <font color=``"#bbbbbb"``> temp->A(); <font color=``"#bbbbbb"``> temp->B(); <font color=``"#bbbbbb"``> temp->C(); <font color=``"#bbbbbb"``> <font color=``"#ffffff"``> </font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>

1)函数A,什么都不会发生;

2)函数B,crash

3)函数C,打印地址0

C++的成员函数,如果使用了this相关的,那么编译器在编译时会给函数入参加入this指针作为入参。A不需要,因此没有this指针作为入参;B和C需要,其中B是虚函数,需要找到虚表,即需要解引用,空指针解引用直接就会崩溃,C不需要解引用,只会打印空指针的地址0。

3. 算法题xml解析 有一点类似leetcode 385/591 可以看看xml解析相关的实现

HR面

花10来分钟做个简单的沟通

1.自我介绍

2.考研的时候为什么选择的是这个学校呢?

3.回顾一下,上大学到现在这段时间内,让自己最有挫败感的事情是什么呢?

4.有哪些方面需要在改进的么?

5.对于以后参加的工作,你主要会看重哪些方面呢?

6.同学这块,大家都有在投递字节这边的岗位么?

7.反问环节:关于面试结果,告知,这边只是做简单的了解,面试结果大约会在一周左右出来,到时候会有邮件或者电话通知。关于面试的结果,需要综合前面的几个面试官进行综合评测,才能决定是否录取。

总结+面试前的准备(供大家参考学习)

给大家个建议,面试官如果愿意和你聊组里业务,一定要把握机会好好聊,最好能提出让面试官眼前一亮的问题,直指业务核心。代码谁都会写,基础知识网上都能查到,但是对产品的理解和新的想法不是谁都有的.

首先

这份资料,一共有1312页,230775个字涵盖了Android所有高级知识,面试题都是各个大厂的面试者提供的。我们建立了一个【学习交流群】,大家会在一起学习交流,解决问题。如果最近有面试的都会把自己最近面试的题目分享出来,还有一些面试遇到的坑,有时候还开开车感觉还挺愉快!在这里感谢所有群里提供面试题的伙伴,话不多说来看看大厂都喜欢问哪些高级压轴题目吧!

群文件夹里的知识集合

转发后后台私信关键字【666】即可获得资料下载地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。