当前位置:   article > 正文

在大裁员背景下,一个年薪百万的offer有多容易_dfs裁员

dfs裁员

不要裸辞,不要创业,不要买房,不要投资”。这是大部分人在2022未经商议而达成的共识。

最近,19家大厂裁员的消息在微博蔓延,更为这一共识增添了有力的注脚。
在这里插入图片描述

网友纷纷调侃,你知道当下互联网的三大浪潮是什么吗?

刘畊宏健身潮

王心凌回忆潮

互联网大厂裁员潮

不仅如此,大厂裁员还净整花活,今年叫“毕业”,再早一点叫“结构性优化”,再早一点叫“向社会输送人才”…

低情商:你被裁了

高情商:毕业快乐

不过虽然网友们把大厂们的裁员花活当成做段子尽情调侃,但也依然难以掩盖众人的焦虑。

从疫情开始至今,“大厂裁员”每上一次热搜,对每一个打工而言都是草木皆比的煎熬。

据网信中国统计,2021年7月至2022年3月中旬,百度、腾讯、阿里巴巴、字节跳动等12家企业总离职人数为21.68万人。

5月17日,发改委提供的数据显示,青年失业率高达18.2%,创了历史新高。

在如此的大裁员背景下,找工作已经可以说是特别困难了,但其实也不尽然,我自身是普通本科毕业,一直是在上海的一家小公司工作了两年,年薪也就30+W左右,感觉公司的薪资已经远远不能满足我了,羡慕那些在大厂工作年包百万的程序员,所以我决定跳槽,顺便看看自己的水平到底到了什么层次。

面试经历

其实一开始决定跳槽大厂,心里面是很没底的,一直觉得自己挺菜的,还需要沉淀,只是想面试试试,我去了阿里和网易,结果不出所料,被虐的体无完肤,直接在一面挂了,自身技术点太广,深度不够,果然还是得需要沉淀系统学习下。

之后也是继续待在公司,在网上报了安卓的进阶课程,边学习边工作,直到今年的三月份,我再次出战面试大厂,这次依旧选择了阿里和网易,俗话说在哪里跌倒就要在哪里站起,同时还去面试了腾讯和字节。

面试准备

面试之前最重要的还是自身的技术点掌握程度以及和面试公司所需技术的契合度,当然面试简历也必不可少,重点放在专业技能和项目经验两块。

  • 1.你的简历就是你给面试官提供的考点,简历上的东西必须自己Hold住,万一自己写的东西被问住了,会很尴尬,给面试官留下的印象也不好,所以就是会啥写啥。

  • 2.技术栈最好不要写精通,你敢写面试官就敢问,被问倒了很尴尬的,写熟悉,了解就行。

至于面试简历内容,我都是找我们大厂课程老师给我进行细致的指导,他们也会提供优秀的简历模板,辅助我进行简历的修改。然后是会有进行面试过程的一对一指导,使自己简历写出的东西,能够顺畅的、有逻辑的表达出来。这也是我在这环境下面试成功的一个重要因素。

而我目前也是在大家还在为裁员而烦恼的同时,成功拿到的三家年薪百万的offer,都说现在跳槽难?好像也就这样把?这是不是可以算是人生赢家:

  • 阿里(过)
  • 字节(过)
  • 腾讯(过)
  • 网易二面挂了

下面我会将在这几家公司面试题分享给大家,希望能帮助大家在面试中更加的顺心顺利!

答案可在文末卡片查看

基础面试

类加载

  • java类加载双亲委派机制,android中加载类的方法有哪些,什么区别 百度
  • ClassLoader讲一下,odex了解吗?解释型和编译型有什么区别? 快手
  • classLoder 流程 滴滴
  • 类加载的双亲委派机制 字节
  • ClassNotFound的有可能的原因是什么 阿里

JVM

  • java内存模型,垃圾回收 百度 字节
  • 说下JVM的了解,内存模型,垃圾回收算法,可达性分析,引用计数法,四种引用 腾讯
  • GC的时候STW是啥原理,为什么stop呢?Android 是如何垃圾回收的? GCroot有哪些 快手
  • 四种引用方式,他们之间的区别,什么时候用到弱引用 快手 shopee
  • GC分代回收介绍?Eden和survivor为什么是8:1?老年代存活下来的会进入永久代么? 盒马
  • 如何修改JVM内存分配?(AS中在vmoptions修改,gradle.properties) 盒马
  • 如new一个对象的过程发生了什么,垃圾回收机制 shopee

  • java锁机制 volatile syncronized reentrantLock问原理问的很细 百度 shopee
  • 说下对锁的理解:sync、lock、cas、volatile、JMM、读写锁 腾讯
  • 手写单例模式,volatile作用 ,为什么要双重判空,作用是什么,一句话概括 网易
  • 锁(死锁的场景和解决方案) 腾讯
  • CurrentHashMap 读写锁是如何实现的? 网易
  • 多线程加锁的几种方法 字节

多线程

  • 线程池 百度 shopee
  • 线程池线程是如何保持线程不被回收的?在for循环里一直循环,循环体内会有take方法阻塞? 网易
  • pthread 了解吗?new 一个线程占用多少内存? 快手
  • volatile作用,怎样做到可见性和有序性 快手 阿里
  • sychronized 和lock介绍下。什么是可重入?多个线程同时访问加锁的方法,哪个线程先执行,顺序怎么控制的? 快手
  • 线程可以多次调用start吗? 会出现什么问题? 为什么不能多次调用start? 网易
  • 如何中断一个线程?AsyncTask如何中断?(加标记位中断) 盒马
  • 如何分析主线程中的消息队列耗时情况 盒马
  • 如何实现线程排队 金山
  • AsyncTask 的缺陷和问题,说说他的原理? 字节

APK加固

  • apk加固原理,加壳脱壳 腾讯

网络

  • tcp三次握手、四次挥手,HTTP与HTTPS区别,HTTP1.0与2.0区别,get与post区别 腾讯
  • Https加密机制 金山
  • Https如何保证安全的,如何防止中间人攻击,可以伪造证书吗 金山
  • Http & tcp的区别
  • 连接数太多 服务器关闭socket接口怎么解决 美图
  • http get &post 的区别 美图
  • Https单向认证,对称加密和非对称加密,在浏览器输入url发生了什么 shopee
  • .get和post的区别,浏览器中输入一个地址然后展示出页面这个过程中做了哪些操作 腾讯
  • 断点续传和下载的原理 腾讯
  • 子主题 10

动态代理

  • 动态代理应用 腾讯
  • 动态代理实现 滴滴
  • 动态代理原理 腾讯

注解

  • 注解类型,区别,元注解 腾讯
  • 注解 处理方式三种 滴滴

反射

  • 反射为什么慢 滴滴

泛型

  • 泛型的理解,类型擦除 腾讯
  • 为什么要泛型擦除,写一个泛型方法和一个泛型类

序列化

  • 序列parcelable,serializable差别 阿里
  • Bunder 传递对象为什么需要序列化?Serialzable 和 Parcelable 的区别? 字节

CPU

  • 谈下CPU如何调度的 vivo
  • 如何才能既耗电低,同时CPU负载高 vivo
  • kswapd 这个进程占用cpu高为啥就代表系统资源紧张,原理是什么?cpu负载高和cpu使用率高有啥区别? 快手
  • vss pss 了解吗?new一个byte数组并分配50M内存,磁盘占用多少?cpu cache有了解吗? 快手
  • 线程IO密集型和CPU密集型区别及线程数的设置 网易
  • cpu使用率优化 网易

APT技术原理 盒马

kotlin

  • 协程原理 美图
  • 拓展h函数 美图

其他

  • static引用外部类变量 阿里
  • 大文件在传输过程中要考虑哪些问题,如何保证大文件的一致性 网易

UI 面试

事件分发

  • view事件分发onTouchEvent onTouch onClick调用顺序 百度
  • 说下事件分发机制,两个并列的view,点下去移到另一个,都调用哪些方法
  • CoordinatorLayout滑动机制?两个CoordinatorLayout嵌套如何通过事件分发传递处理滑动?
  • 父View中嵌套子View,快速滑动fling状态,如何处理在父View到顶部停止滑动,子View继续滑动? 盒马
  • 事件分发机制 shopee
  • 怎么解决滑动冲突 shopee

View

  • view绘制流程,view构造方法,测量时对于padding和margin的处理 百度
  • 说个自定义view,绘制过程 腾讯
  • Viewstub实现原理,自己设计一个类似的 金山
  • 子线程更新UI原理,为什么不行,怎样才能更新 美图
  • 自定义view的绘制 shopee
  • recyclerview和listview对比 shopee
  • surfaceView和view 腾讯
  • view的创建过程 哈罗
  • 如何设计一个类似于微信朋友圈的首页的功能,UI 数据等方面 网易
  • 如何设计一个无限数据的气泡显示聊天内容 网易

bitmap

  • 一张图片加载到内存,如何计算图片占用内存的大小,ARGB8888与ARGB565有什么区别 腾讯
  • bitmap在内存中的大小计算 盒马 美图
  • 图片资源放在不同的文件夹中,加载出来的内存占用分别是多少,为什么会这样?

RecycleView

  • RecyclerView是怎么优化的 网易

动画

  • 如何实现旋转动画?(帧动画、属性动画、gif、Lottie动画框架) 网易

webview

  • JSbridge 是如何实现js和native联通的

其他

  • 如何做到单个信号源,多个页面响应 网易

Framework知识

handler

  • Handler原理 同步屏障 如何发送一个能最先被处理的Message 百度
  • handler设计模式、阻塞机制、同步屏障机制、线程切换、Looper、ThreadLocal 腾讯
  • 聊下Handler postDelay的底层原理 vivo
  • 如果灭屏前调用SystemClock.uptimeMillis然后灭屏,等10秒亮屏,在打印SystemClock.uptimeMillis这两个的时间差是10s吗,为什么 vivo
  • 讲一下handler,为啥没有卡主线程导致anr? 快手 金山
  • Handler内存泄漏与Looper 网易
  • Message为什么没有被回收 网易
  • 线程切换(handler机制) 金山 shopee
  • epoll机制是怎么样子的 金山
  • handlethread 阿里
  • looper什么时候进入循环的 阿里

Service

  • Service生命周期 IntentService原理 百度
  • intentservice 阿里

binder

  • 进程间通信binder,除binder以外,android源码还用到哪些进程间通信机制 百度
  • AIDL原理 调用方参数是如何传递的,有哪些关键参数 百度 金山
  • 四大组件之间怎么实现通信 腾讯
  • Binder底层原理,有看过Binder.cc文件吗 vivo
  • 跨进程文件写入,以及如何保证安全 阿里
  • 跨进程通讯方式 阿里
  • binder机制原理,缺点 阿里
  • 跨进程通信有什么方案 shopee 腾讯

AMS

  • AMS启动流程 Activity A中调用Activity B,生命周期方法的调用顺序 百度 shopee
  • 说下AMS startActivity流程 vivo 金山
  • 启动模式,异同,activity A 打开 B 生命周期调用 腾讯
  • 谈谈Android系统的内存管理 vivo
  • Activity 和 Fragment 生命周期有哪些? 字节 阿里
  • 横竖屏切换时候 Activity 的生命周期? 字节
  • Activity启动模式 阿里
  • Fragment生命周期 阿里

性能优化面试

内存优化

  • LeakCanary原理 百度 阿里 腾讯
  • 内存泄漏可能原因,如何避免 百度
  • 内存泄漏有哪些,handler内存泄漏原因,如何解决,工具 腾讯
  • 内存优化的方式 shopee 腾讯 阿里

app优化

  • 腾讯, 字节, 阿里
  • 如何评价一个app优化的好不好 阿里

启动优化

  • 设计app欢迎页(广告页) 百度
  • 绘制优化、APP启动优化,activity跳转启动速度优化?(网络请求可不可以放在setContentView之前?) 盒马
  • 启动优化过程 滴滴 美图
  • app的启动流程,activity是在哪里创建的,application是在哪里创建的?与AMS是如何交互的 哈罗

卡顿优化

  • 流畅性优化 阿里

网络优化

  • http 弱网优化 滴滴
  • http优化 腾讯

数据库优化

  • 数据库中如果有特别大的数据应该怎么优化 百度

APK瘦身

  • apk瘦身做了哪些,缩减了多少M 腾讯
  • 包大小优化 美图 腾讯
  • Shopee

ANR

  • 问了ANR产生的类型以及原因。问了耗时是不是一定产生anr,为什么 vivo
  • ANR怎么产生的,怎么分析anr 快手 阿里
  • ANR 线上问题如何监控(信号量3) 滴滴
  • ANR原因分析 阿里
  • 什么是 ANR 如何避免它? 字节

稳定性

  • 说说你是怎样做稳定性的 快手
  • 怎样让程序不要崩溃 快手

webview

  • H5的加载原理,如何知道调用到的是源码的方法 滴滴

架构面试

Okhttp原理

  • OKhttp 处理回调回来监控成功率 滴滴
  • okhttp源码设计原理 shopee
  • 缓存拦截器原理 shopee
  • okhttp多路复用 腾讯

Retrofit原理

  • Retrofit的实现原理(动态代理+注解) 腾讯

EventBus原理

Rxjava原理

  • rxjava如何实现线程切换、背压、版本区别 腾讯

Glide

  • Glide三级缓存,大图加载,活动缓存设计的必要,与Picasso有什么区别 腾讯
  • 大图加载的原理 美图
  • Glide 三级缓存原理 美图
  • glide框架原理 阿里
  • glide缓存原理,lru算法 腾讯

热修复

  • 热修复框架底层的原理,Tinker,美团的 网易
  • 热更新 多种实现 滴滴
  • 热修复资源id冲突怎么解决 金山

插件化

组件化

  • 组件化原理与插件化不同点, 腾讯
  • 组件化用了什么技术?实现原理是什么? 盒马
  • ARouter 原理 滴滴

架构设计

  • 设计图片库,上传下载功能网络选型,如何存储 百度
  • 设计Crash事件上报功能 百度
  • 系统级的全局异常如何捕获打印堆栈? 盒马
  • 开发插件,自动化打包 百度
  • 说下MVP,以登录为栗子,与MVC对比有什么好处 腾讯
  • MVP是如何实现的,他们之间的关系和职责 网易
  • MVVM是如何实现的? ViewModel的底层原理 网易 美图
  • 就是简单说说了自己写的项目,项目搭建过程 滴滴
  • 设计一个线上日志收集系统 金山
  • 有没有做过插件化,做到什么程度,讲讲原理 shopee
  • 一些jetpack组件相关的源码,和mvvm跟mvp的对比 shopee
  • mvp mvvm区别 mvvm中的databinding如何刷新view的 腾讯

数据结构算法

容器

  • HashMap,SparseArrary原理,SparseArrary相比HashMap的优点、ConcurrentHashMap如何实现线程安全 百度 美图
  • HashMap原理,存取过程,为什么用红黑树,红黑树与完全二叉树对比,HashTab、concurrentHashMap,concurrent包里有啥 腾讯
  • hashmap put()底层原理,发生冲突时,如何去添加(顺着链表去遍历,挨个比较key值是否一致,如果一致,就覆盖替换,不一致遍历结束后,插入该位置) 网易
  • ArrayList 如何保证线程安全,除了加关键字的方式 美图
  • List加锁要如何加? 网易
  • HashMapy原理 阿里 shopee
  • arraylist hashmap linkedhashmap 腾讯
  • HashMap实现原理,扩容的条件,链表转红黑树的条件是什么? 字节
  • HashMap扩容原理,为什么要2的指数幂容量,如果输入17会是多少容量? 网易

  • 二叉树遍历
  • 采用递归和非递归对二叉树进行前序遍历 快手

链表

  • 123 -> 321 超出Integer最大值范围,正负数怎么处理 网易

字符串匹配

二维数组旋转

排序

位运算

  • 对称非对称加密、md5原理 百度
  • RSA加密算法(公钥解密 私钥秘文) 阿里
  • 北京市2个月摇一次号,摇中的概率是3000分之一,请问需要摇多久,概率能达到百分之50? 网易
  • 抛一枚硬币,正反面的概率各占50%,请问,连续两次反面的概率是多少? 正正,正反,反正,反反 ,出现的概率各占四分之一 网易
  • DFS+回溯算法的 shopee
  • 两个字符串 比较最大的公共字符串 腾讯
  • 硬币兑换问题 腾讯
  • 车的通过问题,一条路上,30分钟内看到有车通过的概率是90%,那么5分钟之内概率是多少 腾讯
  • 全球货币转换功能的代码 腾讯
  • 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度 腾讯
  • 5个G数据,如何在500M内存的情况下实现排序 网易

Flutter

  • Flutter热重载原理 盒马

NDK

  • JNI 两种注册方式,为什么要用JNI 百度
  • c++中,构造函数的调用顺序,析构函数是否需要virtual 字节
  • JNI的注册方法有哪些 字节
  • 函数指针如何写? 字节

其他

  • gradle task耗时分析 阿里
  • method耗时分析 阿里

欢迎大家一键三连支持,若需要文中面试题答案,直接点击文末CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/411096
推荐阅读
相关标签
  

闽ICP备14008679号