我个人觉得以下两个观点可以说是比较营养滋补的心灵鸡汤 :
- 工作后的努力,往往回报率会很高。
可以这么说 : 初中升高中,高中升大学。也就是在我们的学生时代,努力的回报率可能不尽人意。高考想考个名牌大学,大多都是天资聪颖或是毅力顽强。
但是,读了大学之后考研,考进名牌大学的难度会比高考时期小蛮多的(考上研的同学分享的心得)。
最后说到工作,工作的努力往往带着很大的目的性,通过自身的不断学习积累,回报率会比考研还高。
也就是 高考<考研<工作飞升。
- 好环境能让人跑的更快。
PS : 在绿皮车上跑步,很难追上在快车或者动车走路的人。
面试分享
====
Android
-
四大组件是什么与它们的生命周期(及Fragment)。
-
Acitivty的四种启动模式与特点。
-
Activity状态保存与恢复。
-
Service的生命周期,启动方法,有什么区别。
-
service和activity怎么进行数据交互。
-
怎么保证service不被杀死。
-
广播使用的方式和场景以及广播的几种分类。
-
Intent的使用方法,可以传递哪些数据类型。
-
ContentProvider使用方法。
-
ContentProvider、ContentResolver、ContentObserver 之间的关系。
-
Thread、AsycTask、IntentService的使用场景与特点。
-
FrameLayout 、 LinearLayout 、 RelativeLayout 各自特点及绘制效率对比。
-
Android的数据存储形式。
-
Android两种序列化的区别和作用。
-
Sqlite的基本操作。
-
Android中的MVC、MVP模式。
-
Merge、ViewStub的作用。
-
动画有哪几类,各有什么特点?
-
Handler、Loop消息队列模型,各部分的作用。
-
Android的消息机制,子线程更新UI的方法和原理。
-
Android怎么加速启动Activity。
-
App的启动过程。
-
Android优化方法。
-
如何防止内存泄漏?
-
Android中弱引用与软引用的应用场景。
-
Bitmap的四种属性,如何加载大图(inJustDecodeBounds)。
-
View与View Group分类。自定义View过程:onMeasure()、onLayout()、onDraw()。
-
View刷新机制和绘制流程。
-
Activity、Window、View的联系和理解。
-
invalidate和requestLayout的区别及使用。
-
Touch事件分发机制和冲突处理。
-
Android IPC:Binder原理。
-
Android5.0(UI库)、6.0(权限)、7.0特性。
Android 这块比较注重项目经验和平时学习的积累。 《Android开发艺术探索》《深入理解ANDROID 卷3》这两本书可以对Android有比较全面的认识和理解。
JVM
-
Java运行时数据区域,导致内存溢出的原因。
-
对象创建、内存布局,访问定位等。
-
GC的判定方法。
-
垃圾收集算法和运作原理。
-
内存分配与回收策略(Eden,survival from to,老年代)。
-
Class文件结构(常量池)。
-
类加载过程。
-
类加载器(双亲委派模型)。
-
运行时栈帧结构(主要是局部变量表,理解栈堆)。
-
Java泛型,自动拆箱,条件编译等多种语法糖。
-
Java内存模型结构(主内存和工作内存)及操作,原子性可见性和有序性等。
-
Java线程安全涉及的概念和分类。
《深入理解Java虚拟机 第二版》基本涵盖目前市场主流的 jvm 面试问题。
Java 线程
-
volatile的内存语义和应用。
-
Java重排序和顺序一致性。(as-if-serial和happens-before)
-
线程的状态和优先级。
-
启动线程和安全的终止线程。(interrupt)
-
ThreadLocal的使用
-
Java中的锁(偏向锁,轻量锁,重量级锁)
-
Java重入锁ReentrantLock和Condition。
-
Synchronized和锁的等级(方法锁、对象锁、类锁)。
-
Synchronized的wait(sleep的区别)和notify运行过程。
-
CAS介绍。(compare and swap)
-
Java中的并发工具(CountDownLatch,CyclicBarrier等)
-
Java线程池的使用和原理(模型)。
-
Java生产者和消费者模型。
关于线程和并发这块方面的知识,我个人还是推荐先阅读《Java并发编程的艺术》,这本书比较好上手。 再通过《Java高并发程序设计》和《Java并发编程实战》深入理解。
Java 集合
-
List、Set、Map的区别
-
ArrayList、LinkedList、Vector的区别。
-
CopyOnWriteArrayList的了解。
-
HashMap和HashTable的区别。
-
HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
-
TreeMap、HashMap、LindedHashMap的区别。
-
Collection包结构,与Collections的区别。
结尾
最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
[外链图片转存中…(img-aEEsLMd2-1715230348963)]
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
[外链图片转存中…(img-mAklNlsZ-1715230348963)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!