复习

构造方法的特点?

1.构造方法一定与类同名;

2.构造方法无返回值类型

3.构造方法可以没有,也可以有多个构造方法,他们之间构成了重载关系

4. 构造方法不被继承

5.创建对象

抽象类和抽象方法

  抽象类不能被实例化

抽象类可以有0~多个抽象方法

非抽象子类必须重写父类的所有抽象方法

方法重载和方法重写是什么?区别是什么?

构造方法的重载:方法名相同

                 参数数据类型或参数个数不同

                 与返回值、访问修饰符无关

方法重写方法名相同

参数列表相同

返回值类型相同或者是其子类

访问权限不能严于父类

使用继承有什么特点?
       1.只支持单继承,即一个子类只允许有一个父类。

       2. 子类可以拥有父类的属性和方法

       3. 子类可以拥有自己的属性和方法

       4. 子类可以重写覆盖父类的方法


 5. 可以声明父类,创建子类(又称父类装载子类)

继承的优点?

代码量减少;

有利于我们对代码的优化;

提高程序的可维护性。

多态的特点?优点?

优点:减少类中的代码量

      提高代码的可扩展性和可维护性

实现多态的两种形式

    1.使用父类作为方法形参实现多态

     2.使用父类作为方法返回值实现多态

如何编写接口?

编写接口类把class代替为interface,实现接口使用关键字implems,如果要实现多个接口则用逗号连接。

接口的作用

接口是一种约定

    体现在接口名称和注释上:有些接口只有名称      方法的实现方式要通过注释来约定

接口与抽象类的异同

都不能直接使用

1.抽象类中可以有属性.方法(抽象方法、普通方法)

接口中都是抽象方法   属性=静态常量

Public void int();

2使用

抽象类必须继承  extends

接口必须实现

类是单继承   接口是多实现

接口是特殊的抽象类

什么是异常

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

如何处理异常?异常的关键词是

  Java的异常处理是通过5个关键字来实现的:trycatchfinallythrowthrows

  try:执行可能产生异常的代码

  catch:捕获异常

  finally:无论是否发生异常,代码总能执行

  throws:声明方法可能要抛出的各种异常

  throw:手动抛出异常

 常见的异常种类:

Exception                  异常层次结构的父类

ArithmeticException          算术错误情形,如以零作除数

ArrayIndexOutOfBoundsException   数组下标越界

NullPointerException         尝试访问 null 对象成员

ClassNotFoundException       不能加载所需的类

IllegalArgumentException     方法接收到非法参数

ClassCastException         对象强制类型转换出错

NumberFormatException  数字格式转换异常,如把"abc"转换成数字

如何使用log4j日志?

1>下载log4jJAR

  2>复制当前项目录下

  3>点击右键:add as library

4>配置:新建一个文件夹:log4j.properties

a:日志的输出级别:fatal>error>warn>info>debug

b:控制台

c:文件:log4j,appender.loglife.File=aa.log

5.新建测试类

a:创建日志对象,放在静态对象中 private static Logger L=Logger.getLogger(Test)

b:调用  L.debug(e)

常见的集合有那些,他们有哪些方法

Collection                Map

          List                        Set   

ArrayList  LinkedList  HashSet  TreeSet  HashMap TreeMap

Listsetmap的异同

List 接口存储一组不唯一,有序(插入顺序)的对象

Set 接口存储一组唯一,无序的对象

Map接口存储一组键值对象,提供keyvalue的映射

和数组类型采用相同结构的是哪些集合

java.util.ArrayList和java.util.Vector.都是采用数组形式来实现的

什么是foreach循环

此循环用于遍历数组。对于循环中的每个计数器,都会分配一个数组元素,并将下一个计数器移动到下一个元素。

实现多线程有哪几种方法?

1、继承Thread类实现多线程

2、实现Runnable接口方式实现多线程

3、使用ExecutorService、Callable、Future实现有返回结果的多线程

线程的生命周期是什么?

创建状态、就绪状态、运行状态、阻塞状态、死亡状态

解释一下线程休眠、线程强制执行、线程礼让、以及他们的解释

线程休眠

让线程暂时睡眠指定时长,线程进入阻塞状态

睡眠时间过后线程会再进入可运行状态

调用sleep()方法需处理InterruptedException异常

线程的强制运行

  使当前线程暂停执行,等待其他线程结束后再继续执行本线程

需处理InterruptedException异常

线程的礼让

暂停当前线程,允许其他具有相同优先级的线程获得运行机会

该线程处于就绪状态,不转为阻塞状态

public static void yield()

只是提供一种可能,但是不能保证一定会实现礼让。

什么情况下需要线程同步

Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时,将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。

什么是流?常见的流的种类有哪些,使用流的过程注意哪些?

Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个数据流,这个数据源目的地也可以是文件、内存或网络等等

输入流、输出流、字节流、字符流

关于流的使用,得关闭,不然会溢出

原文地址:https://www.cnblogs.com/pan520/p/12923922.html