09 2017 档案
摘要:上周基本上都在参加面试了,自己的校招也基本结束了。后期会真正根据自己的学习偶尔写点博客了,当作自己的学习笔记吧 1. OSI模型 OSI(Open System Interconnect),开放式系统互联,是ISO(国际标准化组织)在1985年研究的网络互连模型。 (1) 应用层(Applicati
阅读全文
摘要:Android中的所有线程一般只被分为两种类型,一种是Main Thread,另一种是Worker Thread,UI的更新必须在Main Thread中进行,因此有好多其他的复杂操作,比如文件的读写以及网络的链接下载需要在Worker Thread中进行。创建新的线程执行其他的操作基本上有两种方案
阅读全文
摘要:1. 什么是内存泄漏和内存溢出 内存泄漏:可以简单地理解为内存丢了,也就是说new之后忘记释放掉了,导致内存一直在被占用,程序无法再使用这个内存单元,直到程序结束才能使用。这就是内存泄漏了。 内存溢出:溢出就是装不下,漫了出来,比如为一个变量开辟了一个int类型的空间,却要把一个long型或floa
阅读全文
摘要:先上两张图,左边一个是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对象的属性,方法,构造方法等。通过反射机制,程序是可以访问和修改它本身状态或者行为的
阅读全文
摘要:今天面试的时候突然被问到hashMap的具体实现,一脸懵逼的感觉,平时经常用的也不过是直接new一个hashMap,然后进行put(key,value),get(key)和remove(key)操作,突然问道原理,所以还是需要恶补一下的。 1. 首先说一下一些常用的数据结构 (1) 数组:数组的话一
阅读全文
摘要:每一个Android的APP都会有一个重要的文件,那就是下面截图中的Manifest文件,这个文件有很多作用,是整个应用的入口,接下来将详细讲解一下 整体介绍:作为整个Android应用的入口,Manifest.xml 描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置
阅读全文
摘要:1. Activity共有四种启动方式(android:launchMode) (1) standard:默认方式,不用再次配置 standart模式就是一个栈的模式,默认每次跳转到一个新的Activity都会新建一个实例,不管这个实例是否存在。每次跳转就新建,压栈,每次返回就pop弹栈。 (2)
阅读全文

浙公网安备 33010602011771号