来自非985211的普通本科的Android面试题分享【网络安全】

news2024/10/5 20:24:09

文中附有详细的面试真题目,文末有我当时刷的面试真题还有一些对我帮助良多的复习资料,特别有用,希望也可以帮大家顺利上岸,顺便攒攒人品!

个人的基本情况

本人出生在一个普通家庭,自身学历很一般,并非985也并非211,就是一个差不多是三本的二本普通本科生应届毕业生。在读书期间有过一些简单的实习,也参与过一些小公司的项目,但我还是觉得自己在其它人的眼里还是很普通(所以,自己能够在今年特别不好找工作的期间被一家大厂公司给入取感到特别幸运!!!)。

思前想后,本来不想说的(被很多大厂给谢拒了),但我还是决定分享一下我的面试前面准备的过程。

在面试前,我刷了很多面经、面试题,这里也把自己的面经分享给大家,当做回报社区好了,顺便攒攒人品,希望往后可以一切顺利。

面试是通过远程视频会议的形式进行的一对多的线上面试。

首先是面试的基本流程

  • 自我介绍(我就不怎么说了就是向面试官介绍自己(了解自己投的简历信息))
  • 随后面试官根据简历问我一些基本问题
  • 后面就是根据你的简历还有前面说的内容啊来问一些针对性的问题
  • 问我有没有问题
    (差不多每一面都是这样的吧……)

PS:会问很多基本知识,像是计算机网络、操作系统、编译原理这些底层什么的,大厂好像都挺喜欢深挖,建议大家多复习一下,钻一下底层。

一面面经

不知道是不是Android部门的人比较忙还是由于他们部门人手不足,面我的面试官是一个从事 iOS 开发的,没问我太多 Android 专业相关的东西,几乎都是根据我的简历来问我的一些相关的问题。

1、ipv6 答不上来
2、http 状态码
3、http 请求
4、https 请求过程、网络安全
5、传送大图到服务器,进度功能实现
(这里扯了很多,一开始我理解成断点续传了,后面就是给的方案是 http 每次传一部分,根据状态码是否成功来处理,后面面试官觉得这个答案不行,让我从 TCP UDP Socket 这些角度去想,我说这些实现起来就更简单了,比如TCP就双向通信之类的。。)
6、gc
7、数据库索引,b tree b+ tree
8、设计模式
9、进程间通信,我说了几个,面试官说可以说 Android 的,好得!
10、rxjava,我说我之前封装过一个 rxbus,来实现消息总线,后面我是说了下消息总线对代码的影响还是比较大的,我到后面是尽量避免这样的操作。
11、算法: 字符串匹配,返回对应 index, 我用的 HashMap 实现。

总体感觉就是,面试官大多数都是问的网络,但网络不是我擅长的领域,有些别的想不起来了……

另外一个特点就是——深挖底层。不止是题目,面试官会深入一些小地方一直往下问(感觉他一直在让我感觉焦虑,我说一个,他就顺着往下又挖,一直挖到我完全回答不上来为止)……

二面面经

这一面对我来说就些尴尬了……面试官有三个,个人感觉都不错,三个都是大佬,就是貌似他们那边的网络状态不是很好,还是我这边网络不好总是一卡一卡的。

  • 自我介绍
  • 询问了简历上的工作经历和在此过程中发生的问题是如何解决的。

1、Http1.1 和 Http 1.0 区别
2、keepalive 作用
3、keepalive 底层实现,这块我是不清楚的,我就猜测了下给了他一个答案。
4、操作系统怎么在堆上和栈上分配内存,我不太清楚,就说了 Java 虚拟机是咋分配的,结果问了我 Java 虚拟机是咋在操作系统上分配的,对不起我不知道!(后面强调了 c 的 api,我还是母鸡啊!)
5、操作系统进程和线程
6、虚拟内存
7、虚拟内存的缓存,我不清楚,依旧给了个猜测
8、手写单例,写了双重检索的,后面问我有别的吗,我说了静态内部类实现的,问我为啥静态内部类安全。
9、Android Framework,我问是 AMS 那些的吗,面试官说那太复杂了,你说下 handler , loop吧,然后问了一些相关的问题。(感动啊)
10、广播和本地广播的区别,实现原理
11、二面问我,一面评价说你觉得 rxjava 并不好,我赶紧说不是不行,rxbus 只是 rxjava 功能的一小部分,而是消息总线这样的方案有利有弊。后面说rxbus 具体封装 ,太久远了想不起来了,然后说了 rxjava 其他的用法和优点这一类的。
12、你用 map 写个 lru 吧,我说能用 LinkedHashMap 吗,不能, 后面我说了个思路,面试官觉得不行,然后说了 LruCache 怎么实现的, LinkedHashMap 怎么实现的,我说 LinkedHashMap 是用了 HashMap,在里面维护了一个双向链表,每次访问数据的时候修改链表。后面我就打算仿写一个 LinkedHashMap 来实现,多亏面试官即使打断,这个太费时间了,就不用写了。
13、手写生产者消费者,这里面试官一边看代码一边提问题,我跟着问题修改代码,其实就是把一个比较low 的生产者消费者优化成了面试官想要的样子(面试官在这里终于笑了)。
14、锁, synchronized 和 ReenTrantLock
15、抢占式锁和非抢占式锁,ReenTrantLock 怎么实现非抢占式
16、notify 和 sleep 区别
17、onTouch 和 onClick (这个我隐约中好像被问过
……剩下的记不清了

  • 问问题环节
    Q:我想了解下相关的业务
    A:这个职位是最后统一定的,我不能告诉你
    Q: 问评价
    A: 还是不能告诉你。

同样大致问题是这些,其他的也想不起来了,这块网络操作系统混合双打(还好没有再次一直挖网络)。

三面面经

直接上面试题吧:

  • 自我介绍
  • 技术问题开始

1、因为自我介绍时介绍了自己实习写的刷新加载的组件
2、 问我自己组件里怎么解决的嵌套滑动冲突,三个方面实现完美分发事件
3、 说 retrofit 动态这块
4、 retrofit 动态
里面如果传的不是 interface 怎么办,这块我不清楚,我就直接说不太清楚,然后说了 retrofit 关于注解的处理
5、 注解生命周期,编译时注解解析
6、 你用过 weex,说下weex实现原理,我说我没有看过 weex 源码,但是我实现过一个动态页面渲染框架,说了下我的渲染过程和实现方案。
7、 最近想学的技术,说了音视频,但是因为准备春招放下了
8、 为什么想学,说了自己之前做一个 APP,里面播放器无法使用没认证的 Https 请求,打算自定义一个播放器,在底层处理证书这块,然后在说了下不知道这样的方案可不可行。
9、 使用 https 请求这个不难的, 我说因为我这个是自己签的,就没法认证。
10、 那你 okhttp 里面怎么认证的, 说了拦截器
11、 还有个 ConcurrentHashMap 同步方案, 然后问了 CAS
12、 环状链表
13、 TCP握手挥手

  • 反问环节
    问了下今年的怎么招聘的,凉面太多看的我很慌张。

介于面试的时候比较紧张一二三面问题可能有个别搞混了,顺序也有些打乱,有些问题可能记不清了。当然,大家面试的时候也不会遇到完全一样的问题,这些只能当做准备面试前查漏补缺的一个参考吧。

最后,第三面的面试官依然棒,虽然问题节奏很快,但是不管是态度还是提问都很有技巧也很棒。

一星期后收到了offer,终于赶在毕业前上岸了。

经验总结

其实我觉得自己属于很普通的类型,并没有很突出的地方,能够进字节有三分运气,还有七分还是靠自己的努力。

大家也不必妄自菲薄,首先要有自信,如果有想要去的大公司,一定要好好做准备,努力提升自己,让自己的能力和素质匹配得上目标公司。

我也一直相信天道酬勤,机会永远是留给有准备的人。在字节面试前我也准备了很久,刷了很多大厂面试题。

下面,我把自己面试前准备的知识点整理出来分享给大家【文中的面试真题解析和学习资料都在共享文件夹(点击此处可直达)】

Java基础

  • 静态内部类和非静态内部类的比较
  • 多态的理解与应用
  • java方法的多态性理解
  • java中接口和继承的区别
  • 线程池的好处,详解,单例(绝对好记)
  • 线程池的优点及其原理
  • 线程池的优点(重点)
  • 为什么不推荐通过Executors直接创建线程池
  • 不怕难之BlockingQueue及其实现
  • 深入理解ReentrantLock与Condition
  • Java多线程:线程间通信之Lock
  • Synchronized 关键字原理
  • ReentrantLock原理
  • HashMap中的Hash冲突解决和扩容机制
  • JVM常见面试题
  • JVM内存结构
  • 类加载机制/双亲委托

上面我列出来的这些都挺重要的,这些点在大佬整理的《Android面试题手册(中高级)》中都有收录,大家有需要的可以去看看。

Android基础

  • Activity知识点(必问)
  • Fragment知识点
  • Service知识点
  • Intent知识点

 UI控件篇

  • 屏幕适配
  • 主要控件优化
  • 事件分发与嵌套滚动
  • 动态化页面构建方案

网络通信篇

  • 网络协议

架构设计篇

  • MVP架构设计
  • 组件化架构

这些点在PDF资料中也有收录,因为内容较多,是以文章链接的形式收录在《Android面试题手册(中高级)》中

最后

代码改变世界,希望大家早日成为技术大牛。从现在开始,还不晚!

下面是我刷的一些其他的题目,一个是在大佬的公众号领的,一个是在网上找的,这份完整版的面试题PDF已经上传,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现在的00后,真是卷死了呀,辞职信已经写好了·····

都说00后躺平了,但是有一说一,该卷的还是卷。这不,三月份春招我们公司来了个00后,工作没两年,跳槽到我们公司起薪23K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…

【taro react】---- 解决开发环境微信小程序由于主包体积过大不能预览问题

1. 开发环境代码包大小 注意:可以看到此时主包加分包将近 5MB,上传预览将会超出限制!!! 2. 预览结果 报错:代码包大小超过限制,主包资源近3MB,限制最大2MB!!! 3. 解决办法 使用webpack的压缩插件,在开发环境编译的时候进行压缩;进行分包处理,同时依赖也进行分包处…

冲刺618:新品变爆品,品牌如何提炼差异化卖点?

纵观2023年品牌生态,大牌强势、新锐崛起。618大促将至,当前市场营销内容同质化严重,如何占领用户心智,成为品牌营销的“考题”之一。千瓜|谦果营销 结合小红书品牌推广实操经验,沉淀总结品牌差异化卖点提炼…

OpenText Exceed TurboX 桌面虚拟化解决方案整合数据中心、提供高端图形显示

突出特点 2D 和 3D 图形应用程序的卓越性能远程访问; 全球团队的强大协作; 高级安全和集中管理; 从 MicrosoftWindows、Mac、Linux 或 iPad 远程访问。 企业正在寻求整合数据中心,达到减少 IT 支出并提高中央可管理性的目的。 同…

决策反馈均衡器介绍

参考链接:https://www.163.com/dy/article/GK6BBSEB0531PW97.html https://zhuanlan.zhihu.com/p/477141677 DFE全称为Decision Feedback Equalizer,即决策反馈均衡器。它是一种电信通信系统中常用的均衡器,在接收信号端实现等化器、滤波器和…

Selenium入门必备:学会用代码控制浏览器,打开网页、找到元素和退出浏览器

目录 一、前期准备 1、概述 2、学习目标 3、安装 二、selenium的基本使用 1、加载网页: 2、定位和操作: 3、查看请求信息: 4、退出 小结 三、元素定位的方法 学习目标 1、selenium的定位操作 2、元素的操作 小结 四、seleniu…

ThingsBoard 场景联动需求

0、需求 1、概述 当初有个兄弟请我帮他实现一个需求,需求如上,很简单,实现完成后我怕他操作不来,又写了这份文档给他,今天把这个文档的场景发出来,大家也可以学习一下思路 2、登录账号 系统层: 账号:sysadmin@thingsboard.org 密码:sysadmin 3、创建租户 新建租户…

MS COCO数据集介绍

MS COCO数据集介绍 MS COCO全称是Microsoft Common Objects in Context,是由微软开发维护的大型图像数据集,包括不同检测任务: Object Detection([主要处理人、车、大象等]) DensePose(姿态密度检测&…

12个超好用的免费在线工具,大大提高生产力,建议收藏!

好的工具,能够帮助我们更高效地完成工作,节省时间和精力; 节省出更多的摸鱼时间! 本文将介绍12款绝佳的免费效率工具,这些工具可以让你事半功倍,提高工作效率。无论你是一名程序员、设计师、学生还是白领,…

超级秘密文件夹忘记密码的解决办法

超级秘密文件夹是一款非常特殊的文件夹加密软件,它来无影去无踪,在安装后不会留下任何痕迹,只能通过软件热键才能打开。那么如果在使用过程中忘记了密码,这时我们该怎么办呢?下面我们就来了解一下。 首先,我…

【历史上的今天】5 月 18 日:微软反垄断诉讼;携程旅行网上线;谷歌首次公布 TPU

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 5 月 18 日,在 1939 年的今天,彼得格伦伯格(Peter Grunberg)出生。格伦伯格是一名德国物理学家,是诺…

【jvm系列-12】jvm性能调优篇---GUI工具的基本使用

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…

五分钟学会Playwright录制脚本的方法以及语法难点

这篇文章系统地介绍了上手Playwright的方法,但是录制脚本部分讲解不够详尽,今天我在这里重点的介绍一下Playwright 录制脚本的方法来丰满我的Playwright系列技术文章。 Playwright可以使用codegen来录制脚本,使用方式非常简单,只…

Windows 安全基础

Windows 隐藏账号 命令行输入以下命令,可以进行简单的隐藏(命令行下不可见) net user test$ 123456 /add net localgroup administrators test$ /add 通过注册表隐藏用户(实现步骤如下): 要实现很好的…

文生图关键问题探索:个性化定制和效果评价

文生图(Text-to-Image Generation)是AIGC(AI Generated Content,人工智能生成内容)的一个主要方向。近年来,文生图模型的效果和质量得到飞速提升,投资界和研究界都在密切关注文生图模型的进展。…

二苯基环辛炔-生物素,DBCO-Biotin点击化学DBCO生物素;CAS:1418217-95-4

中文名称:二苯并环辛炔-生物素 英文名称:DBCO-Biotin CAS:1418217-95-4 分子式:C28H30N4O3S 分子量:502.63 性状:固体粉末 保存方法:-20℃避光避湿保存 点击化学DBCO发生在水中&#xff…

了解这3大特性,再也不担心传输线问题了!

电阻是一个实实在在的物理元器件,通过欧姆定律我们可以知道,电压、电流和电阻三者之间的关系,UI*R。 我们通过一个具体的电路来分析这三者之间的具体关系,请看下面的一张最简单的电路图。这个电路图只有一个电源一个电阻和一些导…

JVM如何安装IBM产品虚拟机openJ9和idea更换jvm

安装前提是卸载掉其他产品或版本的虚拟机防止冲突的发生 1.openJ9是IBM产品的虚拟机 1.1官网下载 1.2openJ9官网介绍 2.下载后的产品 3.点击安装–选择默认安装路径 默认路径–C:\Program Files\Semeru\ 3.1安装完成 4.配置jdk环境变量JAVA_HOME 5.配置Path–作用是在操作…

【游戏逆向】某某游戏邮件遍历分析

邮件常常用来远程交易,这样可以节省交易时间,并且降低数据的需求。邮件遍历的分析,一般是以邮件名字,邮件数量等为突破口。不过有些游戏的邮件名字并不存放在邮件对象中,或者在对象中也不会改变邮件的本地显示&#xf…

Canal搭建 idea设置及采集数据到kafka

Canal GitHub:https://github.com/alibaba/canal#readme 实时采集工具canal:利用mysql主从复制的原理,slave定期读取master的binarylog对binarylog进行解析。 canal工作原理 canal模拟MySQL slave的交互协议,伪装自己为MySQL slav…