Learning record

#一、javaSE复习
##(一)、抽象类(abstract)

  1. 出现父类方法不确定问题,定义为抽象方法,由子类实现
  2. 当一个类存在抽象方法时,需要将该类定义为抽象类
  3. 不存在方法体(无{})
  4. 抽象类不能实例化,抽象类可以没有抽象方法,但是有抽象方法,类一定要为抽象类
  5. abstract只用于修饰类和方法
  6. 继承了抽象类的类必须实现抽象类中的所有抽象方法,除非它自己也声明为抽象类
  7. abstract不能与 private,final,static 同用

##(二)、接口(interface)

  1. interface 接口名
  2. class 类名 implements 接口名
  3. 接口中的方法都是 public 的抽象方法,不需要用 abstract 修饰,若要定义有方法体的方法,需要用 default 或 static 修饰
  4. 接口不能实例化
  5. 一个类可以同时实现多个接口
  6. 接口中的属性只能是 final 的,而且是 public static final 的
  7. 接口可以继承接口
  8. 接口的修饰符和类一致(public 或 默认)
  9. 多态特性(与类相似)

##(三)、内部类

  1. 局部内部类
    (1). 定义在外部类的局部位置,通常在方法
    (2). 不能添加访问修饰符,可用 final 修饰
    (3). 作用域:仅在定义它的代码块或方法中
    (4). 内部访问外部:直接访问
    (5). 外部访问内部:创建对象
    (6). 访问重名成员时,遵循就近原则,访问外部(外部类名.this.成员)

  2. 匿名内部类(类、内部、无名、对象)
    (1). 适用有的类只使用一次的情况
    (2). 匿名内部类仅可使用一次,但返回的对象实例可重复使用
    (3). new 接口或类 {};
    (4). 直接用作方法传参参数

  3. 成员内部类
    (1). 区分局部内部类,不放在方法中
    (2). 定义在外部类的成员位置上
    (3). 可以添加任意修饰符

  4. 静态内部类(static)
    (1). static class
    (2). 只能访问静态的成员
    (3). 可任加修饰符
    (4). 作用域:整个类体

##(四)枚举(enum)

  1. 枚举属于一种特殊的类,里面包含一组有限的特定的对象
  2. 构造器私有化,去 set 方法, 创建固定的对象
  3. 无enum实现:public final static 类名 实例对象名 = new 类名(实参列表);
  4. 使用enum实现:
    (1). 使用关键字 enum 替代 class(继承Enum类)
    (2). 如何定义:实例对象名(实参列表);
    (3). 多个时:实例对象名(实参列表),实例对象名(实参列表),…;
    (4). 要求将定义写在最前面
    (5). 如果使用无参构造器创建对象,可以只写实例对象名
  5. Enum 类常用方法
  6. enum 类不能继承类 ,可以实现接口

##(五)注解

  1. Annotation
    (1). @interface:表示一个注解类
    (2). @Override:判断重写,作用于方法
    (3). @Deprecated:修饰某个元素,表示该元素已经过时
    (4). @SuppreWarnings:抑制警告信息,作用范围与放置位置相关(语句、方法、类前面)

  2. 元 Annotation (修饰注解的注解,称为元注解)
    (1). @Target:规定注解的修饰范围
    (2). @Retention:指定注解能保存多长时间
    (3). @Documented:被其修饰的注解将被javadoc工具提取成文档,即在生成文档时,可以看到该注解

##(六)异常(Exception)

  1. 快捷键(ctrl + alt + T)

  2. 运行时异常和编译时异常

  3. RuntimeException
    (1). NullPointerException
    (2). ClassCastException
    (3). ArithmeticException
    (4). ArrayIndexOutOfBoundsException
    (5). ClassCastException
    (6). NumberFormatException

  4. 异常处理
    (1). try-catch- finally
      try{可能出现异常的代码}
      catch(Exception e){捕获到的异常}
      finally{//不管try代码块是否发生异常,始终要执行finally}
      系统将异常封装成 Exception 对象 e 传递给 catch ,没有发生异常,catch不执行。 异常发生后进入 catch 块,后面的代码不再执行
      可以存在多个 catch 语句捕获不同的异常,要求子类异常在前,父类在后,如果发生异常,只会匹配一个 catch。
    (2). throws
      不处理,向上抛出异常
      JVM最高
      运行时异常,默认采用 throws 处理
      子类重写父类方法,抛出异常应为父类抛出异常的子类或同类
    (3). 编译异常必须处理
      当调用的方法 throws 编译异常时,必须用两种方法的一种处理。因为运行异常有默认处理机制,可以不用处理。

  5. 自定义异常
    (1). 一般继承 RuntimeException ,拥有默认处理机制

##(七)常用类

  1. 包装类(Wrapper)
    (1). 装箱:基本类型 -> 包装类型;反之为拆箱
    (2). 自动装箱底层采用 valueof() 方法

  2. 包装类 -> String
    (1). 包装类 + “”
    (2). 包装类.toString()
    (3). String.valueOf(包装类)

  3. String -> 包装类
    (1). 包装类.parse包装类(String)
    (2). new 包装类(String)

  4. String
    (1). 采用 Unicode 编码
    (2). 属性 private final char value[] 用于存放字符串内容,地址不可修改,地址内容可以修改
    (3). String name = “…” 直接指向常量池
       String name = new String() 指向堆中的对象,对象中的 value[] 指向常量池
    (4). 复用率高
    (5). 需要大量修改时,不适用

  5. StringBuffer
    (1). 有属性 char[] value ,但不是 final,存放在堆中
    (2). 常用方法
    (3). 线程安全

  6. StringBuilder
    (1). 存在线程安全问题
    (2). 最高效

#二、数据库
##(一)、数据库安全复习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值