面向对象

三大支柱

  • 继承

    • 私有方法
    • 子类访问权限
    • 字段
    • super②
    • 重写的两个限制
    • 存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为 C 么? 如 C = (C) B;
    • this() & super()在构造方法中的区别⑤
  • 多态
  • 封装

访问修饰符

抽象类

  • 如何实例化
  • 抽象类和最终类

接口

  • 什么是接口java8之前,java8+
  • 成员默认
  • 字段默认
  • 具体类是否需要实现所有接口,抽象类呢?
  • Java 中,Serializable 与 Externalizable 的区别?
  • 接口与抽象类④

内部类

  • 静态内部类与顶级类有什么区别?
  • 构造内部类和静态内部类④

数据类型

基本类型

  • 包装类型
  • new Integer(123) 与 Integer.valueOf(123) 的区别
  • 装箱时使用什么方法
  • float和double赋值时
  • Java 中应该使用什么数据类型来代表价格?
  • 怎么将 byte 转换为 String?
  • Java 中怎样将 bytes 转换为 long 类型?
  • 我们能将 int 强制转换为 byte 类型的变量吗? 如果该值大于 byte 类型的范围,将会出现什么现象?
  • 3*0.1 == 0.3 将会返回什么? true 还是 false?
  • int 和 Integer 哪个会占用更多的内存?

枚举类型

  • 枚举类

引用类型

字符串

String

  • String为什么 不可变?
  • 不可变的好处④
  • 三者比较:可变性,线程安全.
  • String.intern()

    • String Pool位置

可被修改的字符串

  • StringBuffer

    • 使用什么同步
  • StringBuilder

方法

流程控制

循环结构

分支结构

  • switch判断语句支持什么,不支持什么

顺序结构

方法

格式

[] [] 返回值 方法名(参数类型 参数)

方法调用

递归

Object通用方法

  • Object有哪些公用方法?

  • equals()

  • hasCode()

  • toString()

  • clone()

    • 深浅拷贝
  • clone() 的替代方案

基本语法

关键字

  • final

    • 数据

      • 对引用类型
      • 对基本类型
    • 方法 private
  • static

    • 静态变量
    • 静态方法

      • 不能使用什么关键字.
    • 静态语句块

      • 什么时候执行执行几次
    • 静态内部类

      • 怎样创建实例
      • 非静态内部类怎么创建实例.
    • 静态导包
    • 初始化顺序⑥
  • finally④

标识符

运算符

  • Java 中 ++ 操作符是线程安全的吗?
  • Java移位运算符③

字面量

分隔符

变量

  • 局部变量为什么要初始化④

类加载和反射

反射

  • 是什么?
  • 反射包中常用类
  • Class 类重要方法.
  • Constructor类及其用法(用什么调用,私有方法设置什么)
  • Field类及其用法(哪种带继承,赋值,获取,final修饰)
  • Method类及其用法(如何执行,返回值要干什么)

类加载

  • 过程

    • 加载③
    • 验证①
    • 准备③

      • 基本数据类型static变量,全局变量和局部变量
      • static+final修饰,只有final修饰
      • 引用数据类型默认赋值
      • 数组
      • ConstantValue
    • 解析
    • 初始化

      • 变量赋值②
      • 步骤③
  • 类加载器

    • 三种方式(区别)
  • JVM类加载机制④

class对象

  • class对象⑤
  • 类加载相当于

    • 类加载的方法①,返回值是什么
  • 获取class对象的方法③
  • 数组
  • 基本类型+
  • class标识的类
  • Class类只存

类字节码

  • 计算机运行java代码
  • class文件伪结构②
  • java字节码文件包含哪些类型的数据⑦
  • JVM什么时候动态链接

异常

  • 父类不声明异常,子类
  • 捕获什么异常,传递什么异常.
  • try-catch(符号)③
  • finally遇见如下情况不会执行④
  • try-with-resource
  • 优先捕获,不要捕获
  • 异常表
  • 异常表用在什么时候(加了finally之后呢)
  • 异常是否耗时?为什么会耗时?
  • Return 和finally的问题

Object

Throwable

Error

Exception

  • 受检查异常②
  • 运行时异常③

泛型/容器(集合框架)

泛型

  • Java中的泛型是什么 ? 使用泛型的好处是什么?②
  • Java的泛型是如何工作的 ? 什么是类型擦除 ?
  • 什么是泛型中的限定通配符和非限定通配符 ?(泛型的上下限),符号
  • 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?
  • 你可以把List传递给一个接受List
  • Array中可以用泛型吗?
  • 类型擦除原则④
  • 如何证明类型的擦除呢?通过反射添加其它类型元素
  • 如何理解类型擦除后保留的原始类型
  • 区分原始类型和泛型变量的类型
  • 调用泛型方法时,可以指定泛型,也可以不指定泛型
  • 如何理解泛型的编译期检查,这个类型检查是针对谁的呢
  • 如何理解泛型的多态?泛型的桥接方法
  • 如何理解基本类型不能作为泛型类型?③
  • 如何理解泛型类型不能实例化?需要实例化一个泛型,应该如何做呢?
  • 泛型数组:如何正确的初始化泛型数组实例?
  • 如何理解泛型类中的静态方法和静态变量?(泛型方法)
  • 如何异常中使用泛型③

泛型类

  • 格式②

泛型接口

  • 接口格式
  • 实现类格式

泛型方法

  • 格式

泛型数组

  • 使用

Collection

java基础 - 图1

Collection

List

  • LinkedList

    • 基于什么实现,只能怎样,还可以用作

    • 同时实现了

    • 关于栈或队列,现在的首选是,次选

    • 图示,当链表为空的时候firstlast

    • 如果需要多个线程并发访问,可以先采用什么方法对其进行包装

    • 构造函数②

    • getFirst(), getLast()

    • LinkedList可存放

    • removeFirst(), removeLast(), remove(e), remove(index)

    • addAll()②

    • add()

    • node(int index)

    • clear()

    • index()

    • get(int index) ,set(int index, E element)

    • add(int index, E element)

    • indexOf(),lastIndexOf

    • remove()

    • Queue 方法

      • peek()
      • element()
      • poll()
      • remove()
      • offer(E e)
      • add(e)
    • Deque 方法 ```
  • offerFirst(E e)
  • offerLast(E e)
  • peekFirst()
  • peekLast()
  • pollFirst()
  • pollLast()
  • push(E e)
  • pop()
  • removeFirstOccurrence(Object o)
  • removeLastOccurrence(Object o) ```
  • Vector

    • 和什么类似,但
  • ArrayList

    • 基于什么实现,支持什么操作
    • 允许放入
    • 构造方法③
    • add(E e) 方法
    • add(int index, E element) 方法里用了什么方法
    • addAll()
    • get方法,类型
    • set方法返回值
    • contains方法,使用了什么函数,可以判空吗?
    • 根据索引remove方法,返回值,用什么方法移动元素,最后一个元素怎么操作
    • 根据对象remove
    • clear方法③
    • sublist方法
    • trimToSize方法,去除什么(包括),用什么方法
    • iterator方法,默认包含
    • Iterator 的 next方法,先检查
    • indexOf(), lastIndexOf()

Set

  • TreeSet

    • 基于什么实现,支持什么操作,HashSet 查找的时间复杂度,TreeSet呢
  • HashSet

    • 基于什么实现,支持什么操作
  • LinkedHashSet

    • 具有什么的查找效率,且内部使用什么维护元素的插入顺序

Queue

  • LinkedList

    • 用什么来实现
  • PriorityQueue

    • 基于什么实现,可以用它来实现
    • 大根堆还是小根堆
    • 不允许
    • 底层实现,逻辑结构
    • 父子节点联系
    • peek()和element
    • add(), offer(), 无参数的remove()以及poll()方法
  • Deque ```
  • 继承自
  • offerFirst(E e)
    • addFirst(e)
  • offerLast(E e)
    • addLast(e)
  • peekFirst()
    • getFirst()
  • peekLast()
    • getLast()
  • pollFirst()
    • removeFirst()
  • pollLast()
    • removeLast()
  • push()
  • pop()
  • removeLastOccurrence(Object o)
  • removeFirstOccurrence(Object o) ```
  • LinkedList
  • ArrayDeque

    • 底层通过什么实现
    • 线程安全吗
    • 不允许放入
    • 图示
    • addFirst()
    • doubleCapacity()
    • addLast()
    • pollFirst()
    • pollLast()
    • peekFirst()
    • peekLast()
      • Stack
  • push(e)

  • pop()

  • peek()

数据结构

Queue 方法

  • peek()

    • element()
  • poll()

    • remove()
  • offer(E e)

    • add(e)

Deque 方法

  • Stack

Map

  • TreeMap

    • 基于什么实现
    • 实现了什么接口③
    • 包装成同步的方法
    • get()
    • put()
    • remove()
  • HashMap

    • 基于什么实现
    • 允许放入
    • 同步
    • 冲突的处理方式
    • Java7 HashMap处理冲突采用的是
    • 两个参数可以影响HashMap的性能
    • get(Object key)
    • put(K key, V value)
    • remove(Object key)
    • 在 Java8 中,当链表中的元素达到了几个时,会将链表转换为红黑树
    • Entry 和Node中包含什么
    • put ()
    • resize() 每次扩容为原来的,并且
    • get()
  • HashTable

    • 和 什么类似,但它怎样,它是遗留类,使用什么来代替
  • LinkedHashMap

    • 使用什么来维护元素的顺序,顺序为
    • 允许放入
    • 直接子类
    • 图示
    • 两个参数可以影响LinkedHashMap的性能
    • 如何包装成同步的
    • get()
    • put()②
    • remove()
    • 经典用法
  • WeakHashMap

    • 特殊之处
    • 没有显示的添加或删除任何元素,也可能发生如下情况
    • 弱引用
    • GC判断某个对象是否可被回收的依据是(不包括)
    • 内部是通过什么来管理entry
    • 将任何 Map包装成一个Set的方法

容器遍历

工具类

遗留容器

  • Vector

    • stack
  • Dictionary
  • BitSet

注解

  • 什么是注解
  • 用处③
  • 原理
  • 元注解④
  • Retention使用什么记录注解
  • 注解与反射接口(父接口)
  • 注解支持继承吗

Java 中的构造器链是什么?

JDK版本

  • 说出 JDK 1.7 中的三个新特性?

序列化

  • 被什么修饰不能被序列化,反序列化需要