kotlin视频教程2020,成长路线图,谈谈Android-Binder机制及AIDL使用

反思

昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当.

比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识.
毕业后开始做android, 说得好听点叫做项目, 实际上就是搬代码, 真正记到脑子里的有多少呢? 从百度Google搬到自己的代码里, 同一个问题要遇到好几次才能记住, 很多问题搬完了还不知道为什么这么做. ReactNative都做完一个项目了, 生命周期都记不清楚, 这样的工作有什么意义呢?

进步太慢, 毕业后的前两年自学android, 现在想来基本都是在爬, 两年之后自认为很厉害, 什么业务都做得了了, 其实只是井底之蛙, 甚至连hybird都不知道. 面试官问一句"都是原生开发吧", 支支吾吾回答了一句"就是在Eclipse里写java和xml…“, 真是可笑至极! 一如昨天回答"intent如何突破传参大小限制”: “不太清楚可以突破…”. 我可以找借口说平时做的项目不大, 不需要这些操作, 其实用到intent的时候也应该深入看一下, 不是吗? 自认为工作这五年, 理论知识还不如BAT招的应届生, 也许在其内部工作了一年的新手掌握的基础知识都比我扎实吧?

一 Java相关

1.重载函数的签名(区别是否是重载函数)
答:方法名+参数类型+参数顺序(返回值不是)
2.finalize的工作原理
答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。
3.一个对象的创建过程
答:例如有一个Dog类:
1.即使没有static,构造器其实也是静态方法,所以当首次创建Dog时或者Dog的静态域或者静态方法被访问的时候,Dog的class对象会被加载。
2.在加载Dog的class的时候可能会发现其有基类,此时先暂停Dog的加载,转而去加载其基类。所以基类的static域比子类先初始化。
3.载入class文件之后,会创建一个该该类的class对象,所有关于静态初始化的动作会被执行,所以静态初始化只在Class对象首次加载时进行一次。
4.当使用new的时候,首先为Dog对象在堆上分配足够内存空间。这块内存控件会被清零,所有实例都被初始化成了默认值,包括基类。
5.执行所有字段定义处的初始化,从基类开始。
6.执行构造器。(在第一行会执行基类的构造器)
4.对象的销毁是按照创建的逆序来进行的。
5.final的方法和类都不允许覆盖和继承。private默认实现了final。
6.简述内部类的特点
7.形式参数可被视为local variable,也就是说形式参数相当于在方法中定义了一个局部变量a,当传入c时,只是将c指向的对象给a
8.finally 语句块是在 try 或者 catch 中的 return 语句之前执行的
9.简述jvm中默认的classLoader与功能
10.switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持
11.重写的特性
12.!=和==,当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同,比较内存地址
13.null可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法
14.如何终止一个线程
15.静态属性和静态方法是否可以被继承
16.列出各种List,Set,Map,Queue并说出他们的同与不同。
17.列出几种线程池
18.解释一下java内存模型
19.解释一下java代码的原子性
20.解释一下volatile字段
21.解释一下synchronized字段
22.Lock的使用
23.wait()和sleep()区别
24.死锁产生的条件
Java相关
0)

二 Android相关

Android部分我就不分几大块了。直接列举,但是列举到的每一项都是面试经常会问到并且会延伸问的,所以需要深入的去研究。
1.Android事件分发机制,请详细说下整个流程
2.Android view绘制机制和加载过程,请详细说下整个流程
3.Activty的加载过程 请详细介绍下
4.Activity的启动模式:
5.Activity缓存方法:
6.Service的生命周期,两种启动方法,有什么区别:
7.怎么保证service不被杀死
8.广播的两种注册方法,有什么区别。
9.Intent可以传递哪些数据类型
10.Json有什么优劣势
11.动画有哪几类,各有什么特点:
12.Handler、Loop消息队列模型,各部分的作用。
13. 怎样退出终止App:自己设置一个Activity的栈,然后一个个finish()。
14. Android IPC:Binder原理
15.android的优化
16.一个singleton如何实现线程的同步问题
17.android重要术语解释
18.理解Window和WindowManager
19.Bitmap的处理:
20.综合技术:
21.如何实现一个网络框架(参考Volley)
22.ClassLoader的基础知识:
23.插件化框架描述:dynamicLoadApk为例子
24.热修复:Andfix为例子
Android相关

三 Android相关总结

上面的列的相关内容,看似很短一句话,但是每一项都需要你深入的去研究,要了解原理,最好去看一下源码实现。当然还有一些是我没写到的,可能是我写的时候没有想起来,并不代表他们不重要,你也需要重视,再来一波推荐:
《Android开发艺术探索》强烈推荐,建议细细的读,如果粗心大意建议读两到三遍,针对性的读。
《Android进阶之光》
《高级Android开发强化实战》
《Android组件化架构》
《Android热修复技术原理》
《Android插件化开发指南》

五 面试心得

1.准备要充分,知识面要尽量的广,同时深度也要够。
2.面试安排上,如果不着急,尽量给自己留多时间,两天一家,及时做总结和补充。
3.心态要放平,当做一次技术交流,面试要看一部分的运气,也要看一些眼缘,有的面试官一张嘴你就能感觉到你这次面试完了。想去的公司没有面试好,不要气馁,继续加油准备。
4.简历投递方面,拉勾上投了很多经常不匹配,可能是我学历问题(自考本),有一些打击自信心,如果有同样感受的,不妨换BOSS或者其他平台。避免打击自信心。
5.写简历一定要体现自己的优势,最好能体现类似于,用到了什么技术,解决了什么问题。简历上写到的一定要胸有成竹。
6.类似于你的优势是什么,你觉得你项目中做的比较好的地方有哪些,你能给公司带来什么,这种问题心里要先想一些,免得临场发挥容易紧张说不好。
7.我所经历的面试,一般技术面最少是两轮。如果一轮后让你走了,而你还自我感觉良好,那我觉得你有必要回顾一下面试内容,并一条一条找找该问题的相关内容,大部分问题就在于你没有答到点子上,可能是深度不够,也可能是扩展不够。继续加油。
简历模板

条找找该问题的相关内容,大部分问题就在于你没有答到点子上,可能是深度不够,也可能是扩展不够。继续加油。
[外链图片转存中…(img-Wn6pnUBS-1716581212951)]

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值