04 2019 档案
摘要:【http协议】浅谈 一、 概述 http,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。 请求与响应: 客户端发送请求,服务器端响应数据 无状态的: 无状态是指协议对于事务处理没有记忆功能。缺少状态意味着,假如后面的处理需要前面的信息
阅读全文
摘要:概述 LruCache的核心原理就是对LinkedHashMap的有效利用,它的内部存在一个LinkedHashMap成员变量,值得注意的4个方法:构造方法、get、put、trimToSize LRU(Least Recently Used)缓存算法便应运而生,LRU是最近最少使用的算法,它的核心
阅读全文
摘要:在Android中,动画分类较多,最早的帧动画,补间动画,到Android3.0之后加入了属性动画。除此之外还有一些其他类型。 一、传统动画 1.帧动画 帧动画就是我们说的Frame动画,Frame动画是一系列图片按照一定顺序展示的过程。 Frame动画可以被定义在xml文件里,也可以完全编码实现。
阅读全文
摘要:一、MVC 设计图: 可能由于MVP、MVVM的兴起,MVC在android中的应用变得越来越少了,但MVC是基础,理解好MVC才能更好的理解MVP,MVVM。因为后两种都是基于MVC发展而来的。 1.MVC,全称Model-View-Controller,即模型-视图-控制器。 具体如下: Vie
阅读全文
摘要:1.概述 使用Thread相对来说比较简单,没有什么成本,但是通常来说,我们使用线程基本就是覆写run方法,然后调用线程对象的start函数启动线程。 对于面试人员来说,这些都不是面试官会问到的问题,而线程的wait、sleep、join、yied这几个函数可问的就比较多了。 当一个线程执行到wai
阅读全文
摘要:一、概述 View的绘制是从上往下一层层迭代下来的。DecorView-->ViewGroup( >ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。 我们来对上图做出简单解释:DecorView是一个应用窗口的根容器,它
阅读全文
摘要:一、概述 前面讲Service时提及IntentService,这里具体展开进行剖析; IntentService的介绍 IntentService是自己维护了一个线程,来执行耗时的操作,然后里面封装了HandlerThread,能够方便在子线程创建Handler。 IntentService是继承
阅读全文
摘要:参考: https://github.com/LRH1993/android_interview/blob/master/android/basis/HandlerThread.md 一、概述 HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于
阅读全文
摘要:一、消息机制概述 1.消息机制的简介 (1)Handler是什么 handler使Android给我们提供的用来更新UI的一套机制,也是一套消息处理机制;我们可以用它发送处理消息。 (2)Android为什么设计只能通过handler机制来更新ui? 最根本问题使解决多线程并发问题。假设一个acti
阅读全文
摘要:所谓死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 一、死锁产生的条件 一般来说,要出现死锁问题需要同时满足以下条件: 在JAVA编程中,有3种典型的死锁类型:静态的锁顺序死锁,动态的锁顺序死锁,协作对象之间发生的死锁。 二、静态
阅读全文
摘要:1.序列化的目的 (1)永久的保存对象数据(将对象数据保存在文件当中,或者是磁盘中 (2)通过序列化对象在网络中传递对象 (3)通过序列化对象在进程间传递 (4)在Intent之间,基本的数据类型直接进行相关传递即可,但是一旦数据类型比较复杂的时候,就需要进行序列化操作了 2.实现序列化的方式 (1
阅读全文
摘要:一、概述 Android开发中我们通常让主线程负责前台用户界面的绘制以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务。Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是对线程或线程池的封装。 AsyncTask是一
阅读全文
摘要:一、概述 1.线程池的优点 ①降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗; ②提高系统响应速度,当有任务到达时,无需等待新线程的创建便能立即执行; ③方便线程并发数的管控,线程若是无限制的创建,不仅会额外消耗大量系统资源,更是占用过多资源而阻塞系统或oom等状况,从而降低系
阅读全文
摘要:一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 (2)创建Thread子类的实例,即创建了线程对象。 (3)调用线程对象的start()方法来启动该线程。 二、通过Runnabl
阅读全文
摘要:本篇仍以问题为驱动 一、什么时Service? Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要
阅读全文
摘要:官方文档地说明 几个关键的信息:基于Map接口实现、允许null键/值、非同步、不保证有序(比如插入的顺序)、也不保证序不随时间变化。 一.概述 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 继承于AbstractMap,实现了Map、Cloneab
阅读全文
摘要:背景知识 Activity四种启动模式 标准模式 standard 栈顶复用模式 singleTop 栈内复用模式 singleTask 单例模式 singleInstance 任务栈 Activity的Flags Activity的Flags很多,这里介绍集中常用的,用于设定Activity的启动
阅读全文
摘要:简述: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于双链表的数据结构。 2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为A
阅读全文
摘要:题记: RecyclerView说是目前最重要的控件也不为过,ListView虽然被RecyclerView光芒掩盖,但也仍有着自己的d地位;这个问题不是很偏重原理或实践,而更多的是,针对面试中会问到的一些知识点来分析。答时谨惕大而空、应当小而细;少说比错说好,说的深入比泛泛而谈好的多,最好能结合项
阅读全文
摘要:概述:本文主要讲述二叉树的前序、中序、后序遍历的递归与非递归实现及广度优先遍历、深度优先遍历和之字形遍历。 正确的输出结果是: (1)先序遍历 以根左右的顺序进行遍历 递归方式 非递归方式 (2)中序遍历 以左根右的顺序进行遍历 递归方式 //<editor-fold desc="中序遍历-递归">
阅读全文
摘要:进程的概念: 线程的概念: 引入进程的目的,是为了更好地使多道程序并发执行,以提高资源利用率和系统吞吐量,增加并发程度;而引入线程,则是为了减少程序在并发执行时所付出的时空开销,提高系统地并发性能。 比较:
阅读全文
摘要:概述:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 关键点: (1)饿汉模式 饿汉式单例模式(在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快) (2)懒汉模式 懒汉模式声明一个静态对象,并且在用户第一次调用getInstance时进行初始化。 synchronize
阅读全文