• java面向对象总结


    1.构造方法的特点

    >方法名与类名相同

    >无返回值类型

    >可以指定参数

    >构造方法不被继承

    2.抽象类和抽象方法的特点

    >抽象类和抽象方法都通过abstract关键字来修饰

    >一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类

    >抽象类不能被实例化为对象,而只能作为其他类的超类,并且必须被继承

    >抽象类中可以没有,有一个或多个抽象方法,甚至全部方法都可以是抽象方法

    >抽象方法只有方法声明,不能有方法体

    3.方法重载和方法重写是什么,有什么区别

    方法的重载

         >必须在一个类中

         >方法名相同

         >参数列表不同

         >与方法返回值和方法修饰符没有任何关系

    方法的重写

        >方法名相同

        >参数列表相同

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

        >访问权限不能严于父类

    4.使用继承有什么特点?继承的优点是什么?

    特点

    >只支持单继承,即一个子类只允许有一个父类

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

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

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

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

    优点

    >代码量减少

    >有利于代码的优化

    >提高程序的可维护性

    5.多态的特点?有什么优点?

    特点

    >必须有继承关系

    >必须有方法覆盖

    >必须有父类引用指向子类对象

    优点

    >可替换性

    多态对已经存在的代码具有可替代性。图形类可以对应圆类,对其他任何圆形几何体,如圆环,也同样工作。

    >可扩充性

    多态对代码增加可扩充性。增加新的子类不影响已经存在类的多态性、继承性,以及其他特性的运行。

    >接口性

    多态是超类通过方法签名,向子类提供一个公共的接口,由子类来完善或者覆盖她而实现。

    >维护性

    有利于后期代码的维护。

    6.多态的实现方式是什么?

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

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

    7.如何编写接口?

    >修饰符

    可选,用于指定接口的访问权限,可选值为public。即使省略,也依然是public

    >接口名

    必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写

    >extends

    父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。父接口可以存在多个,用逗号隔开。

    >方法

    接口中的方法只有定义而没有被实现。

    8.接口的作用是什么?

    接口是设计层面的概念,往往由设计师设计,将定义与现实分离

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

    9.接口和抽象类有什么异同?

    都不能直接使用

    1.抽象类中可以有属性 方法(抽象方法 普通方法)
    接口都是抽象方法 实现=静态常量
    public void int();
    2.使用
    抽象类必须继承 extends
    接口 必须实现 implements
    类是单继承 接口是多实现

    10.什么是异常,你是如何理解的?

    代码可能在编译时没有错误,可是运行时会出现异常

    程序出现不正常情况后,程序将会跳出当前环境,并且抛出异常。

    11.如何处理异常,异常的关键字是什么?

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

                     catch  捕获异常

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

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

    抛出异常   throw  手动抛出异常

    关键字:try、catch、finally、throw、throws

    12.常见的异常种类有哪些?

    Exception          异常层次结构的父类

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

    ArrayIndexOutOfBoundsException       数组下标越界

    NullPointerException       尝试访问 null 对象成员

    ClassNotFoundException      不能加载所需的类

    IllegalArgumentException     方法接收到非法参数

    ClassCastException       对象强制类型转换出错   

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

    13.如何使用log4j记录日志?

    第一步:在项目中加入log4j所使用的jar文件

    第二步:创建log4j.properties文件

    第三步:编写log4j.properties文件,配置日志信息。 

    1>下载log4j的JAR包

    2>复制当前项目录下

    3>点击右键:add as library

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

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

    b:控制台

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

    5.新建测试类             

    14.常见的集合有哪些?

    Collection   List   Set    Map

    ArrayList  LinkedList  HashSet  TreeSet  HashMap TreeMap

    15.list,set,map各有什么异同?

    List接口储存一组不唯一,有序(插入顺序)的对象
    Set接口存储一组唯一,无序的对象
    Map接口存储一组键值对象,提供key到value的映射

    16.和数组类型采用相同结构的是哪个集合?

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

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

    18.线程与进程的区别?

    定义

    进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。

    线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。

    >一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。

    >线程是一种轻量级的进程,与进程相比,线程给操作系统带来侧创建、维护、和管理的负担要轻,意味着线程的代价或开销比较小。

    >线程没有地址空间,线程包含在进程的地址空间中

    19.实现线程有哪几种方法?

    实现Runnable接口,并实现该接口的run()方法

    继承Thread类,重写run()方法

    实现Callable接口,重写call()方法

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

    20.线程的生命周期是什么?

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

    21.简单解释一下线程休眠,线程强制执行,行程礼让。以及他们的实现方法

    >线程休眠

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

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

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

    >线程的强制运行

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

    需处理InterruptedException异常

    >线程的礼让

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

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

    public static void yield()

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

    22.什么情况下需要线程同步?

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

    23.什么是流?流的常见种类有哪些?使用流的过程中需要注意哪些问题?

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

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

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

     

  • 相关阅读:
    进程间通信之数据共享--共享内存
    进程间通信之分工协作-信号灯
    进程间通信之分工协作--锁
    进程间通信之事件通知--信号
    进程间通信之数据传输--Socket
    c++模板特化
    DAG模型:嵌套矩形
    数字三角形
    c柔性数组结构成员
    模板
  • 原文地址:https://www.cnblogs.com/yaoyao9/p/12926130.html
Copyright © 2020-2023  润新知