摘要:
先上两张图,左边一个是concurrent包下的所有接口,右边是该包下的所有类,其实我们经常用到的接口和类都是少数的,接下来将具体介绍。 1. 常用的接口 Callable: 一个带有返回值的线程接口 Future:用来接收返回值的一个泛型的接口,提供了cancle终止线程的操作 Executor: 阅读全文
摘要:
单例模式(Singleton)是java中一个比较常见的设计模式,单例对象主要是为了保证在一个JVM中,该对象只有一个实例存在。主要优势: (1) 减少一些大型对象的开销,减少内存的占用 (2) 省去了new操作,较少了GC的压力 (3) 保证了一些核心类只被创建一次,比如一些核心的调度类,一些主要 阅读全文
摘要:
排序算法是一个最基本的算法,经常会被问到,有些公司的面试也可能会考到,这里特意将所有的排序算法做一个总结 1. 冒泡排序 最基本的一个排序算法,总是将最大的往右进行冒泡,总是比较两个相邻的元素。 平均时间复杂度O(n^2),最好时间O(n),最坏时间O(n^2),空间复杂度O(1),不需要另外开辟空 阅读全文
摘要:
1. 常见的工厂模式主要有四种,这里用图形绘制来做个例子 (1) 普通工厂模式 首先定义一个接口 然后定义一些具体的类,这些类都是继承了这个接口的,比如画一个三角形,或者画一个矩形。这里定义一个三角形的类,然后定义一个矩形的类 最后定义一个简单的工厂类,用来生产这些类 这就是一个普通的工厂类,普通的 阅读全文
摘要:
Activity和Service之间有个常用的通信方式,通过Binder来进行通信,这里举一个进度条更新的例子来解释一下 先看一下整体的图,整个的构造大概就是这样的,Activity启动一个service,后台进行service的更新,并将数据传递给前台,前台控制数据的下载和暂停 1. xml文件 阅读全文
摘要:
Handler是Android异步消息处理线程的相关概念 Looper负责的是一个MessageQueue,然后进入一个循环体不断从MessageQueue中读取消息,分发给对应的Handler来进行处理 下面有一个整体的图 (1) 主线程,也就是UI线程里面是不能执行耗时的操作的,因此需要新建线程 阅读全文
摘要:
回调机制是什么哪?先上一幅图来说明一下吧,这里用老师问问题,学生回答问题为例子,解释一下回调机制的使用 首先需要一个接口callback,以及一个继承了接口的类Teacher。Teahcer类中有另一个类Student的对象,在Teacher中执行函数,会调用student中的方法,student执 阅读全文
摘要:
BroadcastReceiver作为android的一个重要组件,主要是用来进行广播接收的。 android中的广播体现在各种方面,比如说开机,电量低,连接电源,解锁屏幕等等。这些action被广播出去后,app开发者只需要接收广播并进行处理即可 主要用到的一个类就是BroadcastReceiv 阅读全文
摘要:
进程通信和线程通信基本上是所有面试绕不过去的一道坎,之前一直关注的都是进程间的通信,没有怎么关注过线程之间的通信,突然有一天被问到两者的区别,感觉瞬间整个人都懵了,这里特意总结一下,本人主要专注于JAVA开发和Android开发方面的问题,所以这里也主要从这两方面分析。 首先说下进程和线程的差别 ( 阅读全文
摘要:
java的反射机制也是java中的一个重点,反射机制能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配,可以动态地获取某个对象的类信息以及调用该类的方法。 1. 反射机制的主要作用 通过反射机制访问java对象的属性,方法,构造方法等。通过反射机制,程序是可以访问和修改它本身状态或者行为的 阅读全文