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
 
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<Integer> alist = new ArrayList<Integer>();
                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不指向任何对象 ,并不会对原先指向的对象数据进行修改 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



posted @ 2021-03-16 13:45  萧嘉  阅读(51)  评论(0编辑  收藏  举报