Java 中单例的实现与线程安全

单例模式事一种常用的设计模式,其目的是为了该类只拥有一个实例,避免具有相同功能的多个对象消耗过多的资源,创建一个单例需要注意以下问题:

  1. 单例功能:基本功能
  2. 延迟加载:避免不必要的资源消耗
  3. 线程安全:多个线程同时创建对象时为同一个对象
  4. 没有性能问题:创建函数不能影响效率
  5. 防止序列化产生新对象:安全
  6. 防止反射攻击:安全
阅读全文 »

进程之间的通信——AIDL(Android Interface Definition Language)

AIDL 是 Android 提供的一种进程间通信 (IPC—— Inter-Process Communication) 机制。
在 Android 上,一个进程通常无法访问另一个进程的内存。 每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自己的操作,都在自己的那片狭小的空间里过完自己的一生。每个进程之间都你不知我,我不知你。尽管如此,进程需要将其对象分解成操作系统能够识别的原语,并将对象编组成跨越边界的对象。
AIDL 就是 Android 为我们提供的一种跨进程的通讯方式。通过这种机制,我们只需要写好 aidl 接口文件,编译时系统会帮我们生成 Binder 接口。

阅读全文 »

Context 是Android 开发处处可见的一个对象,这些对象是怎么来的,有什么关系,怎么使用,这里学习记录一下。

阅读全文 »

【北京】出闲置[坚果Pro2][一加3T][PS4][小米电视][紫米无线充电器][机械键盘]等,收二手[MIX 2S]

以下东西北京均可面交,外地走闲鱼(电视除外)。

电视就只北京吧,外地不考虑了,弄个货拉拉给你送过去了。

阅读全文 »

OMAndroid

概述

OMAndroid 是一个整合了如下主流开源项目的 Android 快速开发框架,其中包括:

  • Dagger
  • Retrofit + OkHttp
  • RxJava
  • ButterKnife
  • SqlBrite
  • EventBus
阅读全文 »

时间复杂度 空间复杂度 稳定性
插入排序 O(n2) O(1) 稳定
选择排序 O(n2) O(1) 不稳定
冒泡排序 O(n2) O(1) 稳定
归并排序 O(nLog2n) O(1) 稳定
快速排序 O(nLog2n) O(nLog2n) 不稳定
堆排序 O(nLog2n) (1) 不稳定
希尔排序 O(n1.5) O(1) 不稳定
桶排序 O(n) O(n) 不稳定
阅读全文 »

树形结构的基本概念:

  • 根节点
  • :结点拥有的直接子节点数称为结点的度
  • 叶子:度为0的结点称为叶子
  • 树的度:所有结点的度中的最大值
  • 孩子:一个结点的直接子结点称为它的孩子
  • 双亲:一个节点的父节点就是他的双亲节点
  • 深度:树中最大的结点层
阅读全文 »
0%