Java学习笔记 知识点整理

来源:互联网 发布:网络教育第二学位 编辑:程序博客网 时间:2024/05/19 22:25

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