蜂信物联FastBee平台https://gitee.com/beecue/fastbee
阿里资料开源项目https://gitee.com/vip204888
百度低代码前端框架https://gitee.com/baidu/amis
OpenHarmony开源项目https://gitcode.com/openharmony
仓颉编程语言开放项目https://gitcode.com/Cangjie
handle的原理,子线程为什么不能更新UI?
view的绘制过程
滑动冲突
接口和抽象类的区别
内部类和静态内部类的区别
string stringbuffer stringbuilder
hashmap的源码结构,arraylist,linkedlist
介绍jvm运行时内存结构
gc的三种方法复制算法怎么弄的,为什么新生代用复制,年老代用整理
常量池在哪
可重入锁,synchronized,volatile,对象锁类锁
对象头markdowm的偏向锁轻量级锁重量级锁
cardtable
四大引用
给一个数组把重复的数字踢出去,没让写代码,讲自己的思路,想的方法越多越好
字节二面:
二面面试官见到我特别和蔼,一直笑 ,这一面只有一半问技术,另一半问平时怎么学习的,之前的学习经历这种东西 :
自我介绍+项目介绍
mvp mvvm mvc
mvvm和mvp区别
viewmodel怎么实现的,原理
问我有没有了解什么异于常人的地方
说说ssl tls的发展历程,http的发展历程,tcp拥塞控制的几个算法,如何实现udp的可靠传输,quic协议,dns协议的过程。
之后又问我对安卓的哪些地方感觉设计的比较好
自己学了安卓,感觉哪些地方比较有意思
kotlin
内联函数,高阶函数,泛型,lambda表达式
算法题:
实现一个循环队列
字节3面 三十五分钟
=====================================================================
自我介绍
你觉得你在同年级人里面的水平状况
讲下你觉得最全面和难度最高的项目
做项目的动力
算法题每千位加个逗号
未来的学习计划
有什么问题
hr面 十五分钟左右(电话)
=========================================================================
大概问了下之前的面试体验,手上是否有其他offer,自我介绍等
感觉问得不偏基础,有些感觉必考基础题没问,第一感觉还是不难的,之后hr就直接谈到了薪资问题。说到这里就觉得这个offer是稳了。
字节面试题答案解析:
只有不断地努力,不停的学习,才能对你的工作和面试当中带来帮助,学习之路,犹如逆水行舟, 不进则退, 下面分享的正是我的学习方法:
准备:
这是最辛苦的阶段,你不仅要把日常的工作做好,还要开始着手准备刷题、基础知识准备以及高阶知识的准备,除此之外我还对英语进行了一些准备,本来英语就是半文盲,由于不管是想去外企、出国以及看英文的文档,英语都是必不可少的,英语在我们的日常生活中也越来越重要,我们要,整个阶段大概持续了4个多月。
其实每一次跳槽,都是对这几年工作的一个梳理和总结,虽然大家都明白“面试造火箭、进去拧螺丝”的道理,对于公司而言,这是筛选人才的一个方式,毕竟人是第一生产力,只要有优秀的人才,那么造出的火箭才可能“一飞冲天”。对于个人而言,如果公司里同事优秀的人,那么你肯定也不会差,我们肯定更希望和优秀的人一起共事。
(一)调整自己的心态,正确面对得失
面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
(二)提升技术,扩宽知识
对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?
以下是我个人的一些做法,希望可以给各位提供一些帮助:
准备简历
简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。
优质简历范本:
68天啃完546页的pdf文档(时间挤一挤,制定好计划)
一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。另外,制定好学习计划也是很有必要的,有逻辑有条理的复习,先查漏补缺,然后再系统复习,这样才能够做到事半功倍,效果才会立竿见影。
文中所有资料都可在我的GitHub上免费下载。
一、Android部分:
1.第五大组件FragmentAndroid知识体系总结之Android部分之Fragment篇
2.对话框 & 弹框 & 通知 & 悬浮窗之 WMS 源码篇
3.Android UI控件篇 高级自定义View, 主要是原理和手写实现
4.Android 系统架构篇
5.Android 通信篇
6.Android Framework 源码篇
7.Android 网络编程篇
8.原生音视频图片开发篇[非JNI]
9.Android 特殊知识点【不知道如何分类的知识点】
10.Android 必须掌握的轮子 原理篇
11.Android 架构篇
12.Android 优化篇
13.Android 职业方向篇(有正确的职业方向,才能不浪费自己的职业生涯)
14.Android 工作工具篇
15.Android 工作必备技能篇
16.Android 跨平台开发篇
二、Java部分:
1.JVM
2.static
3.final
4.String. StringBuffer. StringBuilder
5.异常处理
6.内部类
7.多态
8.抽象和接口
9.集合框架
10.反射
11.单例
12.多线程
13.volatile
14.synchronized
15.Lock
16.引用类型
17.动态代理
18.元注解
三、 Kotlin 部分
1.Kotlin Primer · 第一章 · 启程
2.Kotlin Primer · 第二章 · 基本语法
3.Kotlin Primer · 第三章 · Kotlin 与 Java 混编
四、计算机网络部分
1.计算机网络体系结构
2.HTTP相关
3.TCP相关
4.Socket
作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。
参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
NDK开发;
未来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
不出半年,你就能看出变化!
[外链图片转存中…(img-vSg1oiHB-1725116763891)]
NDK开发;
未来的方向,高薪必会。
[外链图片转存中…(img-DC0ECRiq-1725116763892)]
前沿技术;
组件化,热升级,热修复,框架设计
[外链图片转存中…(img-IjEszAaw-1725116763892)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
不出半年,你就能看出变化!