介绍
JSON
JSON(JavaScript Object Notation)
:轻量级的数据交换格式,广泛用于服务器和客户端的交互中
Gson
Google
公司发布的一个开放源代码的 Java
库,主要用途为序列化 Java
对象为 JSON
字符串,或反序列化 JSON
字符串成 Java
对象。官方仓库。主要优势有:
- 允许已经存在的无法改变的对象转换成 Json,或者
Json
转换成已存在的对象,不需要注解就可以直接转换 - 对泛型提供完全的支持
ReactiveX
主要是响应式编程(Reactive Program
),它集合了观察者模式,迭代器模式,函数式编程的优点,是一种面向集合数据流和变化传播的编程范式,是基于异步数据流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一条流合并为一条新的流ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming
It is sometimes called “functional reactive programming” but this is a misnomer. ReactiveX may be functional, and it may be reactive, but “functional reactive programming” is a different animal. One main point of difference is that functional reactive programming operates on values that change continuously over time, while ReactiveX operates on discrete values that are emitted over time.
String
字符串常量,字符串内容和长度都是不可变的。定义如下:
1 | /** |
String
的操作都是在堆内存中重新申请一块内存区并赋值,最终返回该存储区首地址给引用变量。所以如果频繁修改 String
会产生堆内存垃圾,直到 java
触发内存管理机制才能释放。所以在形参传递时, String
类似值传递。
StringBuffer
字符串变量,同时也是线程安全的(Synchronized
)。
StringBuilder
字符串变量,但不是线程安全的。
String
:操作少量的数据 StringBuilder
:单线程操作大量数据 StringBuffer
:多线程操作大量数据 不要使用 String
类进行频繁的字符串拼接或插入删除,因为那样的性能较差,应该使用 StringBuffer
或 StringBuilder
类,这在 Java
的优化上是一条比较重要的原则。执行速度上:String < StringBuffer < Stringbuilder
。
Java
集合(也称为容器),是将多个元素组合成一个单元的对象。分为两大类: Collection
和 Map
,常用集合为 List
、Set
、Map
;本文源码分析基于 JDK 1.8
。