六木Sir
六木Sir
快应用实践与资讯
- [ ] [九大厂商联合推出「快应用」,围攻微信?](https://juejin.im/entry/5ab24211518825557005e822?utm_source=gold_browser_extension)
> 目前算法还处于蓝海状态,算法和数据结构是需要日积月累慢慢修炼的内功心法,已经入手《算法 第4版》准备慢慢啃。 如果已经有算法基础的同学可以买《剑指offer》《编程之美》刷刷题。
## 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的启动过程。...
## 网络 TCP与UDP的区别。 TCP和UDP报文结构。 TCP的三次握手与四次挥手过程。 TCP可靠传输原理实现(滑动窗口)。 TCP拥塞控制。 TCP流量控制。 Http的报文结构。 Http的状态码。 Http的请求方法。 Http1.1和Http1.0及2.0的区别 Http长连接。 Cookie与Session的作用和原理。 Https加密原理。 》网络这方面关于tcp/udp的可以阅读《计算机网络 第七版》的第五章运输层部分。 Http推荐《图解 HTTP》
Java 面试题
一、Java基础 1. String类为什么是final的。 2. HashMap的源码,实现原理,底层结构。 3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。 4. 描述一下ArrayList和LinkedList各自实现和区别 5. Java中的队列都有哪些,有什么区别。 6. 反射中,Class.forName和classloader的区别 7. Java7、Java8的新特性(baidu问的,好BT) 8. Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高 9. Java内存泄露的问题调查定位:jmap,jstack的使用等等 10. string、stringbuilder、stringbuffer区别 11. hashtable和hashmap的区别 13 .异常的结构,运行时异常和非运行时异常,各举个例子 14. String a= “abc” String...
- [ ] Android 开发工程师进阶指南,推荐一些值得订阅的 Android 技术专栏 Android 的入门资料在互联网上可以用泛滥来形容。如果你有计算机基础,想快速学习 Android,做几个界面很轻易就能做到。然而移动创业热潮退去后,对 Android 开发者的能力要求也越来越高。当一个已经入门的开发者,想要成为一个更好的 Android 开发者的时候,就会发现互联网的资料太琐碎,而且资料的好坏也难辨。常常都会困惑我要如何提高自己,哪里有好的学习资料。 今天给大家推荐一些值得订阅的 Android 技术专栏,具体订阅方式查看文末。 - 1、《解读 Android 系统架构》小米系统工程师 Gityuan 的专栏,从源码角度,带领大家一睹Android系统架构;从App到framework,native,乃至Linux内核;从上至下地深度解读Android架构设计。 - 2、《Android 开源库的源码导读》 包含 Retrofit 、 Okio、OkHttp、RxJava...
[Android 多线程:这是一份详细的AsyncTask使用教程](https://mp.weixin.qq.com/s/_8pfG-2Lq4iIrzj2T9msyQ)
过去十年是移动互联网蓬勃发展的黄金期,相信每个人也都享受到了移动互联网红利,在此期间,移动互联网经历了曙光期、成长期、成熟期、现在来说已经进入饱和期。依然记得在 2010-2013 年期间,从事移动开发工作不知有多火,有工作 1-2 年经验的开发者薪资基本是上万,对招的人专业素质要求也不高,入门即可。从 2016 年底至今来看,局面而是另外一番景象,移动开发市场过度饱和,市场上充斥着太多初级开发者,网上一直流传着移动互联网的寒冬,很多开发者找工作都没以前好找,一些岗位常常面临着百里挑一景象,没有个三五年经验,现在 HR 都是刷刷的翻过。 那么不禁要反问一句,现在从事移动开发,无论是 Android 还是 IOS,未来还有发展空间吗?还有随着移动开发越来越向大前端靠拢,甚至原本一些属于原生开发者的岗位也被前端开发人员胜任,想想在本来拥挤的房间里,还要分割本来属于自己那么点空间给他人用,变得更拥挤了,那滋味肯定是不好受了,那么未来我们的容身之地又在哪里呢? 笔者是从 2013 年底开始从事移动开发,刚毕业那么还是从事服务端开发,写着.NET 技术栈代码,至今也有接近 5 年的经验了。我想说,如果仅仅停留在表面的框架上,仅仅停留在使用别人的轮子上,而对于里面实现机制和原理不求甚解的话,那是很容易被淘汰的。但是如果,在移动开发上有一门深度的技能,比如在 Android 中你对移动架构有一定独特的见解,在性能优化上有一定的造诣,对于Android 系统体系有着清晰的认知,并且在一个行业积累了丰富的行业经验,也是亮点所在,那基本就是属于吃香的类型了。所以简单来说,对于一个概念不能停留在使用层面,要深入研究里面构造如何,为何会有这么一个概念,如果没有这个概念,那又会是呈现什么样的局面呢?开发编程也是一样,要追寻的是编程的道,而不是编程的术,别看现在各种流行框架大行其道,要是深入研究下去,一层一层拨开,你也会惊讶里面的实现机制无外乎就那么几种,套来套去,只不过一些开源库作者或组织封装的好而已。 基于目前市场表现,我们都知道下一个风口是 AI,但是作为一个移动开发者如何在即将来临的 AI 时代吃口红利呢。我的回答是:致力于做一个终身学习者,追本溯源去探寻代码世界哪些不变的道,你又会说了,哪些是道呢,简单举例下,比如编程思想、常用的设计模式、设计原则、算法和数据结构、网络通信机制、操作系统、重构原则、架构思维等等。同时在目前发展情形下,也越来越趋向全栈工程师的路线,借用之前在网上看到一篇文章的图,想进阶全栈工程师之路看需要哪些技能,如下:  点击放大 从图中可以看到技能被分成基础软技能、技术软硬技能,不仅要熟悉移动端开发套路,还要对大前端技术栈也有一定要掌握,同时对于服务端开发流程也要了解,我们很多从事移动开发人员,基本一开始就是从移动端入手,对于服务端开发很多时候是没有概念,这些跟那种从服务端开发转型做移动开发相比起来就处于一定的劣势了,有些甚至不知道 Restful...