单点记录

HttpClient、DBUtils、Mybatis

"四大接口"
public interface Cloneable {}
public interface Serializable {}
public interface Comparable { public int compareTo(T o); }
public interface Runnable { public abstract void run(); }

Consumer     :消费型接口    void accept(T t);
Supplier     :供给型接口    T get();
Function   :函数型接口    R apply(T t);
Predicate    :断言型接口    boolean test(T t);
volatile 保证可见性,也就是可以保证线程在本地不会存有实例对象的副本,每次都是去主内存中读取。
volatile 其另一个特性:禁止指令重排序优化。
volatile 变量的赋值操作后面会有一个内存屏障(生成的汇编代码上),读操作不会被重排序到内存屏障之前。
"数组 Arrays"
在Java编程语言中,数组是对象,是动态创建的,可以分配给Object类型的变量。可以在数组上调用Object类的所有方法。
数组对象包含许多变量。变量的数量可以为零,在这种情况下,该数组被称为空。数组中包含的变量没有名称;相反,它们由使用非负整数索引值的访问表达式引用数组。这些变量称为数组的组件。如果一个数组有n个组件,我们说n是数组的长度;使用从0到n-1(包括0和n-1)的整数索引来引用数组的组件。
数组的所有组件都具有相同的类型,称为数组的组件类型。如果数组的组件类型是T,那么数组本身的类型写为T []。

float类型的数组组件的值始终是float值集的元素;类似地,double类型的数组组件的值始终是double值集的元素。不允许float类型的数组组件的值是float-extended-exponent值集的元素,它不是float值集的元素,也不是double类型的数组组件的值成为double-extended-exponent值集的元素,它不是double值集的元素。
数组的组件类型本身可以是数组类型。这种数组的组件可能包含对子数组的引用。如果从任何数组类型开始,考虑其组件类型,然后(如果它也是数组类型)该类型的组件类型,依此类推,最终必须达到不是数组类型的组件类型;这称为原始数组的元素类型,数据结构此级别的组件称为原始数组的元素。
在某些情况下,数组的元素可以是数组:如果元素类型是Object或Cloneable或java.io.Serializable,那么部分或全部元素可能是数组,因为任何数组对象都可以分配给这些类型的任何变量。
"数组类型 Array Types"
数组类型用于声明和强制转换表达式中 declarations and cast expressions
数组类型被写为元素类型的名称,后跟一些空方括号[]对。括号对的数量表示阵列嵌套的深度。
数组类型中的每个括号对可以通过类型注解来注解。注解适用于其后面的括号对(或省略号,在变量arity参数声明中)。
数组的元素类型可以是任何类型,无论是原始类型还是引用。
特别是:
允许使用接口类型作为元素类型的数组。
这样的数组的元素可以具有空引用或实现接口的任何类型的实例作为其值。
abstract允许 使用类类型作为元素类型的数组。
这样的数组的元素可以具有空引用的值或`abstract`该类本身不是其自身的子类的实例`abstract`。
数组的长度不是其类型的一部分。
int[]     ai;        // array of int
short[][] as;        // array of array of short
short     s,         // scalar short
          aas[][];   // array of array of short
Object[]  ao,        // array of Object
          otherAo;   // array of Object
Collection[] ca;  // array of Collection of unknown type

你可能感兴趣的:(单点记录)