安卓应用开发心得体会 安卓应用开发软件( 二 )
<> args) { System.out.println("1.---------------------"); System.out.println(Son.TAG); Son<> sons = new Son<10>; System.out.println(sons); System.out.println("2.---------------------"); System.out.println(Son.instance); System.out.println("3.---------------------"); Son son = new Son(); Father father = son; father.method(); System.out.println(son); }}写出打印输出 。
加一个小插曲:上面的题是饿了吗面试问到的 。面试我的人自己说是17年北航毕业的研究生 。说自己非常注重基础,全程问了很多JAVA基础,包括上面的类加载的题,很自豪的说这个题是他自己出的 。还有Collections下面的子类都有哪些,都有什么不同 。但是Android相关的题目问的水平很一般,说这个没有嘲讽的意思 。想说的是有些面试从一开始就注定了你可能进不了这个公司 。面试有的时候也是要看眼缘的 。不要灰心,找出自己的不足,补齐它,继续前行 。还有就是上面那个题,的确很不错 。
4)线程安全当多个线程访问一个对象的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,我们就认为这个对象时线程安全的 。
线程安全就是一些多线程下载,同步,锁,死锁,线程池 。volatile关键字的特性,变量的原子性 。以及java.util.concurrent包下的类,也需要了解一下 。
一般会问的是手写单例,以及双重锁式单例的优点 。还有就是让你自己实现一个多线程下载,看你怎么设计 。
5)编程思想封装,继承,多态,抽象,反射,注解,设计模式,设计模式的原则 。
面试中一般会问下:
抽象和接口有什么不一样工作中常用的设计模式,一些源码中的设计模式具体给你一个设计模式让你说说你对他的了解,比如观察者,工厂 。以上这些东西主要考察你的代码设计能力 。
6)网络协议互联网的实现主要分为几层,http、ftp、tcp、ip分别位于哪一层 。http和https的区别为什么tcp要经过三次握手,四次挥手socket了解过吗一般http和https问的比较多,对称加密和非对称加密也会问 。tcp和socket偶尔遇见问的 。
二 JAVA部分总结我觉得JAVA部分大致上可以分为这几大块,细想一套代码,其实就是类和组合这些类,怎么组合其实就是设计模式 。而类里面包含的其实就是基本数据类型和一些数据机构来存放这些基本数据类型或者类,然后就是JVM去怎么加载这些类 。针对上面几个部分我推荐几本书吧:《JAVA编程思想》《深入理解JAVA虚拟机 第二版》《大话设计模式》《HeadFirst设计模式》《数据结构和算法》《图解HTTP》
数据结构和算法重点推荐:https://github.com/wangxp423/ExerciseJava 以及readme中提到的刘宇波(liuyubobobo)他开源的代码和文档 。他在慕课网录制了四套视频来讲解数据结构和算法 。文档通俗易懂 。很适合初学者,和想系统了解的人 。
三 Android相关Android部分我就不分几大块了 。直接列举,但是列举到的每一项都是面试经常会问到并且会延伸问的,所以需要深入的去研究 。
四大组件有哪些,说出你对他们在Android系统中的作用和理解 。Activity生命周期,A启动B两个页面生命周期怎么运行的,为什么会这样,生命周期为什么这么设计,你有了解过吗 。四种启动模式,内部堆栈是怎么回事,你工作中怎么使用的 。Activity的启动过程,这个我强烈建议每个Android开发人员都要清楚的知道,并且跟一下源码,几个核心类的作用 。你会对Android有一个更好的认识 。事件分发流程,怎么处理滑动冲突 。举例:长按ListView的一个Item它变灰了 。这个时候在滑动 。item恢复原来的样子,这个时候他们内部的事件传递是什么样子 。有很多种问法,所以你一定要搞清楚 。自定义View,View的绘制流程 。onMeasure,onLayout,onDraw都是什么作用 。ViewGroup是怎么分发绘制的 。onDraw里面怎么去做绘制,Canvas,Path,Paint你都需要了解 。并且配合ValueAnimtor或者Scroller去实现动画 。有时候面试的会突发奇想问你ViewGroup是树形结构,我想知道树的深度,你怎么计算,突然就变成了一个数据结构和算法的题 。Bitmap和DrawableAnimation和AnimatorLinearLayout、RelativeLayout、FrameLayout三种常用布局的特性,他在布局的时候是怎么计算的 。效率如何 。CoordinatorLayout配合AppbarLayout的使用,以及自定义Behavior 。ConstraintLayout的使用 。用来减少层级 。Handler消息机制,推荐看一下Looper的源码进程间通信,Binder机制AsyncTask源码看一下 。图片的压缩处理,三级缓存,Lru算法分辨率和屏幕密度,以及计算一个图片大小 。mdpi,hdpi的关系和比例 。优化,内存优化,布局优化,启动优化,性能优化 。内存泄露,内存溢出 。怎么优化,用了什么工具,具体怎么做的 。listView和RecycleView对比,以及缓存策略 。JNI(很少问)MVC,MVP,MVVM开源框架Okhttp,Glide,EventBus,Rxjava等,以及JetPack下的开源库,要会用,还说说出一些东西,推荐 Retrofit,Okhttp,Glide,EventBus这些看一下源码 。RecyclerView四大块,能实现什么效果,大致怎么实现的,心里要有数DecorView,Window,WindowManager,PhoneWindow关系,以及个子的职责 。加分项:Kotlin,Gradle,Flutter,组件化,插件化,热修复 。
- 手机录像怎么录
- 安全工作心得体会发言开头怎么写
- 安卓内存清理 6种内存清理方法
- 什么是安卓手机
- 华为p30是安卓系统吗
- 安卓微信8.0状态视频怎么设置
- 安卓高端机用两年卡吗
- 如何改战区王者荣耀安卓
- 安卓怎么用抖音做锁屏
- airpods可以连安卓吗
