JAVASE基础补漏



java的 demo实例 (开发工具)
        https://www.runoob.com/java/java-examples.html     一:基本语法 1,基本数据类型转换顺序                                   2,synchronized修饰的方法同一时间只能被一个线程访问。volatile修饰的变量被访问时会被强制从共享内存中重新读取值,并在发生改变时强制回写到内存中。   3,格式化输出:System.out.printf("aString的值为%s", aString);   4,Stringbuilder和Stringbuffer的对象被多次修改不会产生新对象。       Stringbuider速度快,Stringbuffer线程安全。       jdk1.5后字符串加号拼接隐性是转换为Stringbuider,现实一般用StringBuilder       https://www.runoob.com/java/java-stringbuffer.html    5,数组的两种声明和创建方式:固定数据类型和大小的集合                     double[ ] myArr1 = new double[10]; myArr1[0]=3.14;                     double[ ] myArr2 = {3.14,22,12.3,1.01};   6,日期和时间相关类:Date SimpleDateFormat Calender   7,正则表达式:Pattern类 Matcher类(需详细学习)                            8,方法的重载:相同的方法名,不同的参数列表,不能通过修饰符和返回类型来重载方法。       构造方法没有返回值。   9,Java流和文件:FileInputStream , FileOutputStream,File         File localPathFile = new File("C:/");         File[] fileArr = localPathFile.listFiles()         for (File file : fileArr) {     FileReader fr = new FileReader(file);     BufferedReader in = new BufferedReader(fr)     String line = in.readLine();         }         该实例为VBbank项目,采用字符流         FileReader字符流是从字节流FileInputStream继承而来。         Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。使用InputStream字节流,I/O效率高,但不方便阅读。而使用Reader, 可以用reader()!=-1循环读取,也可以使用BufferdReader的reardLine()一行一行读取文件,使用Reader读取文本文件非常方便。     https://www.runoob.com/java/java-files-io.html 笔记8中有详细介绍Scanner和BufferdReader读取区别。   10,异常的三种类型:检查性异常,运行时异常 和 错误。     二,Java面向对象   1,super关键字引用当前对象的父类,访问父类成员。       this关键字指向自己的引用。   2,重写:             对父类允许访问的方法的实现进行重新编写。       重载              一个类中有多个方法名相同,参数列表不同的方法。       可以通过六个维度的约束重写和重载:方法名,参数列表,返回值,方法的访问修饰符,构造方法,方法内异常抛出 。                   3,多态:同一个接口,使用不同的实例执行不同的操作的行为。       父类 a = new 子类();         a.do();       编译阶段编译器会检查父类有没有do()方法,没有报错,运行阶段JVM实际调用的是子类的do()方法。   4,接口中的变量隐性的修饰符为public static final,方法为public abstract, 其它修饰则编译报错,没有构造方法。   5,设置classpath变量 https://www.runoob.com/java/java-package.html 最后     三,Java高级教程 1,可变数组集合ArrayList,可以通过Collections.sort(alist);工具类排序。   2,链表LinkList,单向链表每个节点储存节点值和指向下个节点的链接。 相比ArrayList,增加和删除效率更快,查找和修改效率低。   3,HashSet和HashMap
  HashSet HashMap
实现接口 Collection Map
允许有null 允许 允许键中有null
线程安全 不安全 不支持线程同步
                  4,迭代器iterator,是一个接口,通过下面获取迭代器               ArrayList alist = new ArrayList();                 Iterator it = alist.iterator();                 if(it.hasNext()){                     it.next();                 }   5,泛型:所操作的数据类型被指定为一个参数。   6,序列化:对象可以通过JVM序列化机制序列化为字节序列,再写入.ser 文件。                    可以通过读取文件再反序列化获取到对象。                     ObjectInputStream类 ObjectOutputStream类 Serializable 接口 FileOutputStream FileInputStream   7,多线程:             线程的生命周期:新建状态,就绪状态,运行状态,死亡状态,额外还有个阻塞状态。             线程优先级:1-10,默认5             线程创建方式:实现Runnable接口,继承Thread类,和使用Callable+Future三种方式。             线程池:容纳多个线程的容器,可重复使用,省去多次创建的开销。   8,值传递和引用传递 https://c.runoob.com/quiz/5571         java 基本数据类型传递参数时是值传递 ;引用类型传递参数时是引用传递 。然而数组虽然是引用传递 ,但是将引用 z = null 只是将引用z不指向任何对象 ,并不会对原先指向的对象数据进行修改