记录之前一次面试。
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站设计,高端网页制作,对成都VR全景等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站营销优化,H5建站,响应式网站。
先说一下面试问到的需要的点:tcp/udp.volatile关键字.多进程.hashmap.anr.activity.MVP.算法题.自定义view.OKHTTP.java相关.数据结构.性能优化.
为此我整理了一份983页的PDF,把自己平时收集的面试题,和平时工作中碰到的都融合进去了
(更多完整项目下载。未完待续。源码。图文知识后续上传github。)
可以点击关于我联系我获取完整PDF
(VX:mm14525201314)
问到的问题中,还是性能优化相关的对我的印象比较深刻,所以着重讲一下(答案仅供参考)
首先我们要清楚图片的三级缓存是如何的
如果内存足够时不回收。内存不够时就回收软引用对象
inTargetDensity /inDensity) x 高度像素 x(inTargetDensity / inDensity)x 一个像素所占的内存字节inTargetDensity表示目标屏幕的 dpi
一个加载网页的过程中,native、网络、后端处理、CPU 都会
参与,各自都有必要的工作和依赖关系;让他们相互并行处理
而不是相互阻塞才可以让网页加载更快:
参考回答: 避免 OOM 的问题就需要对大图片的加载进行管理,主要通
过缩放来减小图片的内存占用。
BitmapFactory 提供的加载图片的四类方法(decodeFile、decodeResource、decodeStream、decodeByteArray)BitmapFactory.Options 参数,通过 inSampleSize 参inSampleSize 的取值应该总是为 2 的指数,即BitmapFactory.Options 的inJustDecodeBounds 参数设为 true 并加载图片BitmapFactory.Options 中取出图片的原始宽高信inSampleSizeBitmapFactory.Options 的inJustDecodeBounds 参数设为 false,重新加载图片参考回答:
内存判定对象可回收有两种机制:
引用计数算法: 给对象中添加一个引用计数器,每当有
一个地方引用它时,计数器值就加 1;当引用失效时,
计数器值就减 1;任何时刻计数器为 0 的对象就是不可
能再被使用的。然而在主流的 Java 虚拟机里未选用引用
计数算法来管理内存,主要原因是它难以解决对象之间相互循环引用的问题,所以出现了另一种对象存活判定
算法。
GC 回收算法有以下四种:
AndroidProfiler 工具或 MAT另外,影响界面卡顿的两大因素,分别是界面绘制和数据处
理。
ConstraintLayout等)onCreate() 中不执行耗时操作 把页面显示的 View 细AsyncTask 里逐步显示,用 HandleronCreate() 和onReume() 的时间,使得用户能尽快看到页面,操作AdapterView 的效率。startActivity 中的 intent 的信息,然后在去创建进程,最后启Acitivy,即冷启动。而启动出现白黑屏的问题,就是在这段windowIsTranslucent和 windowNoTitle,将这两个android:windowBackground 属性为启动页背景图即不会立即释放对象占用的内存。 如果对象的引用被置为 null,
只是断开了当前线程栈帧中对该对象的引用关系,而 垃圾收集
器是运行在后台的线程,只有当用户线程运行到安全点(safe
point)或者安全区域才会扫描对象引用关系,扫描到对象没有被
引用则会标记对象,这时候仍然不会立即释放该对象内存,因
为有些对象是可恢复的(在 finalize 方法中恢复引用 )。只有
确定了对象无法恢复引用的时候才会清除对象内存。
动画区别:
RecyclerView 中,内置有许多动画 API,例如:notifyItemChanged(), notifyDataInserted(),notifyItemMoved()等等;如果需要自定义动画效果,RecyclerView.ItemAnimator 类)完成RecyclerView.setItemAnimator();ListView 并没有实现动画效果,但我们可以在刷新区别:
ListView 中通常刷新数据是用全局刷新notifyDataSetChanged(),这样一来就会非常消耗资onItemChanged()方法,在方法里面获取到这个 itemgetFirstVisiblePosition()),然getView()方法来刷新这个 item 的数据;RecyclerView 中可以实现局部刷新,例如:notifyItemChanged();缓存区别:
RecyclerView 比 ListView 多两级缓存,支持多个离ItemView缓存,支持开发者自定义缓存处理逻辑,支RecyclerView共用同一个RecyclerViewPool(缓存池)。ListView 和 RecyclerView 缓存机制基本一致,但缓存
BaseAdapter:抽象类,实际开发中我们会继承这个类并且重ArrayAdapter:支持泛型操作,最简单的一个适配器,只能展SimpleAdapter:同样具有良好扩展性的一个适配器,可以自SimpleCursorAdapter:用于显示简单文本类型的 listView,RelativeLayout 会让子 View 调用 2 次 onMeasure,LinearLayout 在有 weight 时,也会调用子 View 2 次onMeasureRelativeLayout 的子 View 如果高度和RelativeLayout 不同,LinearLayout 和FrameLayout 而不是 RelativeLayout。
请查看完整的PDF版
(更多完整项目下载。未完待续。源码。图文知识后续上传github。)
可以点击关于我联系我获取完整PDF
(VX:mm14525201314)

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。