A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2017-12-22 15:22 编辑

[石家庄校区] 就业班day01-day06 总结 JavaEE就业06期

静态
  • 静态static:

    • 含义
      • 静态
      • 是一个关键字
    • 作用
      • 修饰成员变量, 成员方法, 使其被该类的所有对象共享
      • 修饰类
    • 如何调用static修饰的变量和方法
      • `类名.静态成员属性
      • `类名.静态成员方法();
    • 静态的特点
      • 静态成员被所有对象共享
      • 静态成员可以直接使用类名调用
      • 静态成员的加载优先于对象
        • 静态资源在创建类时加载并初始化(在方法区中)
        • 非静态资源在创建对象时才加载并初始化(在堆内存中)
      • 静态成员生命周期
        • 随着类的加载而创建, 直到程序结束

    • 静态成员在内存中的位置
      • 方法区中的类的字节码区域中的静态区域中
    • 静态成员的加载时机
      • 随着所在类的加载而加载
    • 静态成员和非静态成员的区别

      • 生命周期不同
      • 内存中的定义位置不同
      • 初始化时机不同

    • 静态方法中不能用this

      • 因为this引用当前类的对象, 而静态方法在类加载时已经加载, 此时没有对象可以引用
    • 如何避免一个类创建对象?

      • 将构造方法使用private修饰, 让外界无法访问
    • 代码块概述

      • 代码块:
        • 使用{}括起来的代码被称为代码块
      • 4种代码块分类:
        • 静态代码块
        • 构造代码块
        • 局部代码块
        • 同步代码块
继承
  • 面向对象三大特征:
    • 封装
    • 继承
    • 多态
  • 继承,是面向对象三大特征之一

    • 概念
      • 从已有类派生出新的类
      • 已有类称为父类(基类), 新类称为子类(派生类)
      • 子类对于父类的关系就是继承
    • Java中类的继承的特点

      • 只支持单继承
      • 不支持多继承
      • 支持多层继承
      • Java中所有类都直接或间接的继承自Object类

  • 继承的优缺点

    • 开发中的原则是: 高内聚, 低耦合
    • 优点:

      • 提高代码复用性
      • 提高代码可维护性
    • 缺点:
      • 类的耦合性增加了


匿名对象
  • 匿名对象:
    • 匿名, 没有名字, 没有变量引用的对象
  • 使用匿名对象的格式:
    • 调用属性: new 类名().属性;
    • 调用方法: new 类名().方法();
    • 作为参数: person.pick(new Fruit("Apple"));
  • 匿名对象应用场景:
    • 当方法或属性只调用一次时, 使用匿名对象

final
  • final关键字:
    • 是一个修饰符, 可以修饰类, 方法, 变量, 表示其无法改变
    • 作用:
      • 修饰类: 不能被继承
      • 修饰方法: 不能被子类重写
      • 修饰变量: 自定义常量
        • 基本数据类型: 其值永不改变的常量
        • 引用数据类型: 引用一经初始化便不能修改, 且必须在使用前对其初始化


  • 常量分类:
    • 字面值常量
    • 自定义常量: final修饰的
      • 常量名命名规则: 字母全都大写, 不同单词用下划线分隔


抽象类
  • 什么是抽象?
    • 无法具体描述的, 但能够表示出共性
  • abstract关键字:
    • 表示抽象
    • 修饰方法和类

  • 接口
    • 接口是完全抽象的类, 接口中所有方法都是抽象方法
  • 接口的作用:
    • 为实现类扩展出接口具有的功能
    • 弥补Java只能单继承的局限性, 抽象类只能单继承, 而接口可以多实现
  • 接口的成员特点

    • 接口的成员变量
      • 必须都是常量(自定义常量)
      • 默认是public static final修饰的, 即使你不写或少写某个修饰符
    • 接口的构造方法
      • 不能定义构造方法, 也不能创建对象
    • 接口的成员方法
      • 必须都是抽象方法
      • 不能是static的
      • 默认是public abstract修饰, 即使你不写或少些某个修饰符

  • 接口的优点
    • 通过多实现打破了单一继承的局限性
    • 接口可以为实现类提供规则
    • 降低程序耦合性(多人分别按照接口开发各自的功能)

多态:
  • 多态
    • 一个事物可以具有多种表现形态
    • 是面向对象三大特征之一
      • 面向对象三大特征:
        • 封装
        • 继承
        • 多态


  • 多态的前提
    • 子父类存在继承关系
    • 子类有重写父类的方法
    • 父类引用指向子类对象
  • 动态绑定:
    • 对象调用的成员方法, 是根据程序运行时的具体的类型确定的
  • 多态的成员特点:除了成员方法运行时看右边, 其他无论编译还是运行都看左边
  • 多态转型:
    • 即转换类型
  • 向上转型: 作为参数类型, 简化代码
    • 子类型转换为父类型(自动转换).
  • 向下转型:调用子类对象特有的方法
    • 父类型转换为子类型(强制转换)
  • instanceof语句
    • 作用: 判断一个对象是否是某个类的对象, 如果是则返回true, 如果不是则返回false
    • 格式: 对象 instanceof 类名

  • 包:
    • package, 就是文件夹(目录)
    • 作用:
      • 分类管理Java文件, 避免重名类的冲突
    • 特点:
      • 可以有多级, 每层目录就是一级

  • 可以不使用包吗?

    • 可以

权限修饰符
  • 权限修饰符

    • private
    • default
    • protected
    • public

获取字节码对象的方式
  • 获取字节码对象的3种方式:
    • Object类的Class getClass()方法
      • 例如: Class clazz = student.getClass()
    • 类名.class属性
      • 例如: Class clazz = Student.class;
    • Class类的静态方法forName(String className)
      • 例如: Class clazz = Class.forName("com.itheima.Student");


Date类
  • Date类: 日期类, 表示特定的瞬间, 可以通过方法来设定所表示的时间, 可以表示任意的时间
SimpleDateFormat类
  • SimpleDateFormat类: 专门用于格式化和解析时间
    • 构造方法:
      • SimpleDateFormat SimpleDateFormat(String pattern): 创建对象同时指定格式


包装类
  • 什么是包装类?
    • 封装了基本数据类型的类, 提供了更多复杂的方法和变量
    • 同时将基本类型的使用转换为了类的面向对象方式

自动装箱和拆箱
  • 箱=包装
  • 什么是自动装箱?
    • 概念: 基本数据类型可以自动转换为包装类
  • 什么是自动拆箱?
    • 概念: 包装类可以自动转换为基本数据类型

正则表达式
  • 什么是正则表达式?
    • 是一种用于匹配字符串的规则
  • Pattern类:
    • 创建正则表达式模板, 内有正则表达式规则
  • 常用规则: 具体查看API文档的Pattern类
集合
  • 集合:
    • 是一个统称, 包含很多集合的实现类. 根据不同数据结构, 提供了不同的集合类
  • 数据结构:
    • 数据的组织和存储方式
  • 体系结构:
    • 将不同的集合实现类的共性向上抽取出父类, 从而形成一种体系

Collection接口
  • Collection接口
    • 是单列集合体系的顶层

迭代器
  • Iterator接口:

    • 迭代器
    • 作用:
      • 提供遍历集合的安全方式

  • 并发修改异常:

    • ConcurrentModificationException
  • List接口
    • 列表, 是Collection的子接口
    • 特点:
      • 元素存取有序, 元素可以重复, 有索引


泛型
  • 泛型
    • Generic type, 广泛的通用的类型, 具体什么类型由开发者定义
    • 好处:
      • 避免类型转换问题
      • 减少警告
      • 简化代码书写
    • 作用:
      • 用于明确数据类型
      • 将运行时才发生的类型转换问题, 提前到了编译时期


foreach(增强for循环)
  • foreach:
    • 增强for循环
    • 作用:
      • 遍历数组和集合

  • 增强for的优缺点:
    • 优点: 简单快捷的拿到每一个元素
    • 缺点:
      • 循环过程中不能修改集合
      • 不能像普通for循环那样使用索引


栈, 队列
  • 栈(stack)
    • 特点:
      • 先进后出(FILO, First In Last Out). 或后进先出(LIFO, Last In First Out)
    • 队列(queue)
      • 特点:
        • 先进先出(FIFO, First In First Out).



List
  • List的子类

    • ArrayList: 底层数组结构. 查询快, 增删慢
    • LinkedList: 底层链表结构. 查询慢, 增删快
  • 如何选择: 根据数据结构特点
    • 查询多, 增删少, 用ArrayList
    • 查询少, 增删多, 用LinkedList
    • 不知道, 用ArrayList

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马