面试题主要问的有以下这些:
一面 (因为过程比较顺利,题目没有好好记下来,大概就是下面这些吧)
1.项目相关 2.hashmap 3.线程a 等b,b等c的实现 4.类的equals重写 5.线程安全是什么 如何保证多线程安全 6.public private protected 7.简单工厂 抽象工厂 是什么 8.判断一个数组是不是后序遍历(代码 )
二面
(二面一开始的时候我还是有些紧张的,但是我没想到居然挺简单,这也直接导致我三面轻敌了)
1.项目(10min) 2.算法题:判断一个字符串是否是一个IPV4 3.算法题:连续子数组的最大和(剑指Offer上的题) 4.Java异常体系(运行时与非运行时异常的区别) 5.HashCode与equals的区别 6.JVM内存区域划分(程序计数器,虚拟机栈,本地方法栈,堆,方法区,运行时常量池) 7.JVM内存回收方法(判断对象是否已死<1面那个问题>,新生代老年代的垃圾回收算法 8.哪些对象可以作为GC Roots 9.数据库中delete和drop的区别 10.数据库事务的使用场景 11.数据库三大范式 12.数据库索引的创建原则 13.数据库索引底层实现(B+树) 14.线程,进程,程序的区别 15.死锁的产生条件 16.继承与***模式的优劣势
想不到吧,居然就这些。就这?我开始飘了。
三面
1.项目 2.三次握手四次挥手 3.TCP核心机制(滑动窗口,快速重传机制,拥塞控制…可以参考我以前的博客) 4.HTTP和HTTPS及其区别 5.若建立连接时间比较长,HTTP是怎么优化的(注意是HTTP不是TCP) ( 网络怼到我哑口无言,问了三个问题都答不上来,这才换了一个方面,也是从这里我开始慌了) 6.接着问了我**【性能优化的相关问题】**(我答不上来,后面就又问了性能优化的方面的其他,我还是说不会) 7.性能优化完全答不上之后又问了音视频开发。大致就是为什么编码,常见的音视频格式,ffmpeg,opengl,egl,android怎么往ndk通信与调用的
大概就是这些吧,当时有些自乱阵脚,加上本身NDK 了解的就不多,总之,我的表现我自己都看不下去了。
后面……没有后面了。性能优化真的是难到我了。
结尾
最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
**本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](
)
收录**
最后自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
oid工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
|