Java
1.BigDecimal浮点数运算
2.String字符串对象,线程池
在单机多线程情况下,使用StringBuilder会有较好的效率,因为StringBuilder不处理同步的问题,StringBuffer则会处理同步问题,在多线程环境下建议改用StringBuffer,让对象自行管理同步问题。
String对象每次使用‘+’都会创建出一个新的String对象,因此在循环中尽量不要使用'+‘,可以用StringBuilder的append()等方法代替
3.重载:返回值不可作为方法重载依据
编译程在处理重载方法的顺序:
a.还没有装箱动作前可符合自变量个数与类型的方法
b.装箱动作后可符合自变量个数与类型的方法
c.尝试有不定长度自变量并可符合自变量类型的方法
d.找不到合适的方法,编译错误
4.this()调用只能出现在构造函数的第一行,在创建对象之后、调用构造函数之前(即类的最前部分),若有想执行的流程,可以使用{}定义
5.局部变量声明为final,表示设值之后不能再改变,若没有明确使用=指定值,那表示延迟对象成员值的指定,在构造函数执行流程中一定要有对该数据成员指定值的动作,否则编译错误
6.被声明为static的成员或方法,不会让个别对象拥有,而是属于类
被声明为static的成员或方法最好使用类名调用,而不是用类声明的对象调用,格式为:ClassName.method
static区块不能出现this关键字,也不能调用非static的方法或区块,可以使用static区块的数据成员和方法成员
7.不定长度自变量
8.继承、多态、重写、接口
9.自动尝试关闭资源。在try的括号中,越后面撰写的对象资源会越早被关闭。AutoCloseable接口。 异常继承架构
10.List,Set,Queue,Collection,Iterable与Iterator,Comparable和Comparator,Map
在Java规范中,与顺序有关的行为,通常要不对象本身是comparable,要不就是另行指定Comparator对象告知如何排序
Comparator.nullsFirst(); Comparator.reverseOrder();Collections.sort(); comparing();thenComparing()
11.串流继承架构
12.ClassName::methodName ------》 方法参考,参考了现有的static方法,目的是尽量运用现有的API
13.Lambda表达式中this的参考对象以及toString()的接收者,是来自Lambda的周围环境,也就是看Lambda表达式是在哪个名称范畴。
禁止在Lambda中修改局部变量的值,如果要在匿名内部类中存取局部变量,则该局部变量必须是final,否则会发生编译错误。
14,若C继承接口A,B,而接口A,B中有一个相同的方法,则必须在子类C中,用super明确指定父接口中的方法,如A.super.method().否则出现编译错误。
类中的定义优先于接口中的定义,如果有重新定义,就以重新定义的为主,必要时使用接口与super指定采用哪个默认方法。
15.使用Optional取代null;
orElse("代替值"); ----》 当Optional对象为空时,orElse()中的代替值可代替空对象
16.java.util.function------->Consumer: 接受 单一对象实例作为自变量,不返回实例
Function: 接受自变量计算之后返回结果
Predicate: 接受自变量返回布尔值
Supplier: 不接受自变量返回值
17.Stream管道操作,Stream只能迭代一次,重复对其迭代一次会引发异常
Collection都可以进行中间操作。Collection.stream() + filter()/map()/collect(toList())/forEach()
18.IO 操作:
http://blog.csdn.net/u012124438/article/details/77150991