• javase基础笔记4——异常/单例和类集框架


    继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public

    异常

    异常相当于人生病了。。

    错误error exception error一般不可拯救的错误,虚拟机崩溃等,不可挽救 exception 可拯救的异常 两种拯救方式: try catch 语句块  捕获异常 try  可能出现异常问题的代码 catch 解决异常问题的代码 finally 无论如何都会执行的代码

    throws 关键字 ,用于申明抛出异常 throw 生成异常对象的时候用到的。。因为这个关键字本身会产生异常,需要你抛出或者申明一下。。。

    申明抛出异常后有两种解决办法,一种是捕获异常,另外一种是再次申明捕获异常,在main函数中建议直接捕获,不要抛给jvm了 异常对象有三个常用方法,如 e.getMessage()  打印该异常的基本名字 e.printStackTrace()  打印至默认的输出流 e.printStackTrace(PrintStream s)   打印至指定的地方

    7.0 字面量 长字符表示 catch块并行写 泛型的简写 switch语句中可以接收String字符串 自动关流try

    8.0 lambda表达式,替换内部类)()->{} 接口中可以有方法体 1.static关键字修饰方法 2.default权限修饰符修饰的方法 多态:父类的引用接收一个子类的对象

    jdk升级一共三种原因 1,书写方便 字面量 _ 2,功能扩展  enum String 接口 3,提升效率 StringBuffer(低,线程安全) StringBuilder(高,线程不安全)、Vecter(线程安全的)/ArrayList(线程不安全的)

    多线程 sychronized代码快 用了的 线程安全 不用的 线程不安全

    多线程: 一个操作系统中有多个进程并发执行 一个进程中有多个线程兵法执行

    实现多线程的两种方法 1、继承Thread类,重写run方法 2、实现Runnable接口,实现里边的run方法 java是单继承 线程调度: 分时调度 抢占式调度(默认)

    单(实)例设计模式

    class Demo {
        
    //懒汉式的单例
    //    private Demo() {
    //    }
    //
    //    private final static Demo d = null;
    //
    //    static Demo getInstance() {
    //
    //        if (d == null)
    //            return new Demo();
    //        return d;
    //    }
    
    // 恶汉式的单例
    //    private Demo() {}
    //
    //    private final static Demo d = new Demo();
    //    
    //    tatic Demo getInstance() {
    //
    //        return d;
    //    }
    
    }

    StringBuffer 可变长的容器 可以一直往里边添加字符串

    package com.llhc;
    
    public class Demo {
        public static void main(String[] args) {
            
    //        String s = new String("baixuelong");
    //        String sss = new String("dhbhdjhd");
    //        String ss = "djdbjdbj";
    //        
    //        System.out.println(s.charAt(0));
    //        System.out.println(s.endsWith("sd"));
    //        System.out.println(s.equals("dhbhdjhd"));//比较内容
    //        System.out.println(s==sss);//比较地址
    //        System.out.println(s.contains("hb"));//比较地址
    //        System.out.println(s.toUpperCase());//比较地址
    //        System.out.println(s.replace("dh", "bxl"));//比较地址
    //        System.out.println(s.substring(3,6));//包前不包括尾
            
            
    //        StringBuffer sb = new StringBuffer();
    //        sb.append(9);
    //        sb.append(8);
    //        sb.append(7);
    //        sb.append(6);
    //        System.out.println(sb.reverse());
            
            System.out.println(Math.abs(-3));
            
            //接收double 返回double
            System.out.println(Math.ceil(3.4));//接收double类型,取接近这个数的最大整数 4        System.out.println(Math.floor(3.4));//接收double类型,取接近这个数的最小整数 3
            
        }
    }

    util(集合/类集框架)

    单列集合(Collection) list ArrayList(线性结构)、 Vector()     enumration 、LinkedList(双向循环列表) set HashTable(哈希表)、HashSet(哈希表) TreeSet(二叉树)

    双列集合(Map)<key:value> 一个身份证对应一个人  key不能重复,值可以重复  140202 白雪龙   140303 白雪龙 HashMap TreeMap

    枚举的写法 

    while (en.hasMoreElements()) {
                String name = (String) en.nextElement();
                System.out.println(name+"==="+properties.getProperty(name));
                
            }

    hasMoreElements()、en.nextElement

    Runtime和System类 gc()、exit() exec()必须是系统环境里预设的。接收字符串类型的

    泛型 

    包装类 自动拆箱:包装类拆成基本数据类型 自动装箱:原始数据类型包装成对象 char Character int Integer

    double Doble float Float

    数组是能存放“对象”和“基本数据类型”的,但是他一开始就限定长度而且里边只能存放一种数据类型——集合 集合只能存放对象 泛型的特点 1.安全性提高 2.将运行时期异常转换到编译时 3.消除强制类型转换 增强for循环 for(变量类型 变量名  :需要循环的容器名 ) 实现collection接口的类都能用,还有底层是数组结构的也能用

  • 相关阅读:
    C# 停止或开启服务
    微软企业库 缓存
    C# 获取图片一部分
    [转载]MVC3在win 2003虚拟主机上的调试
    mongodb查询的语法
    Mongodb亿级数据量的性能测试比较完整收藏一下
    正则验证数字
    收到了Gmail的Beta测试邀请
    C#新手经验点滴
    Windows消息机制
  • 原文地址:https://www.cnblogs.com/54td/p/4453104.html
Copyright © 2020-2023  润新知