String.toCharArray()字符串转换为字符数组,再用字符数组创建新的字符串转换为字符串new String(char[])。
Integer.parseInt(),字符串转为数值
System.arraycopy(源数组,起始索引,目标数组,起始索引,个数)
操作数组的工具类Arrays.toString .copyOf .binarySearch .sort .equals
二分查找防止溢出int mid = left + (right - left) / 2;直接left+right可能超出int范围
静态方法只能访问静态变量和静态方法,没有this(不能用this)。非静态方法都可以访问。静态随类存在,而不随实例对象存在,用类名直接调用。
多态调用成员变量:编译看左边,运行看左边。调用方法:编译看左边,运行看右边。
抽象类不能实例化,但可以有构造方法(子类会用到)
接口中可以有public static final 变量和抽象方法。JDK8接口中可以有静态方法(有方法体)。
lambda表达式只能简化函数式接口(只有一个抽象方法的接口)
集合的遍历获取迭代器对象,使用迭代器对象
Queue实现类LinkedList Stack自己是一个类
重写hashcode根据属性值确定hashcode,虽然哈希值不同,但存在hashset的位置仍可能相同,就要重写equals比较两个对象是不是相同。
获取stream使用stream
对函数式接口方法引用
一个try-catch只会捕捉第一个异常。 throwable.printstacktrace打印异常信息。自定义异常类再throw。
FileOutput\InputStream、FileReader\Writer、BufferedInput\OutputStream、BufferedReader\Writer、InputStreamReader\OutputStreamWriter、ObjectInput\OutputStream、PrintStream\PrintWriter、ZipInput\OutputStream
FileOutputStream 文件不存在会新建,但所在的文件夹路径必须存在。append参数控制是否清空文件内容。string.getbytes()获取字符串的ASCII码数组来写文件。
序列化流关键点:Serializable接口,serialVersionUID,transient关键字