最近在准备面试,总结了几个java中面向对象的几个问题,问题本事还不够全面,要想知道仍是要本身去找,可是在面试上应该是没多大问题了

  Overload(重载)与Override(重写)的区别java

  重载:发生在一个类中,方法名称相同,参数列表不一样,方法体不一样(看对象类型)安全

  重写:发生在父类中,方法名称相同,参数列表相同,方法体不一样(看引用类型)多线程

  

  abstract class(抽象类)和interface(接口)的区别ide

  1.抽象类有构造方法,接口没有线程

  2.抽象类中能够有普通成员变量,接口没有对象

  3.抽象类中能够包含非抽象的普通方法,接口中全部的方法都是抽象的继承

  4.抽象类中能够包含静态方法,接口中不能包含接口

  5.抽象类中的抽象方法的访问类型能够是public,protected,接口中的只能是public字符串

  6.一个类能够实现多个接口只能继承一个抽象类同步

  

  String和StringBuff的区别

  String提供了数值不可改变的字符串,StringBuff提供字符进行修改,String实现了equals方法,StringBuff没有

 

  final、finally、finalize的区别

  final:属于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承

  finally:是异常处理语句结构的一个方法,表示老是执行

  finalize:是Object类的一个方法,在GC(垃圾回收器)执行的时候会调用被回收对象的此方法

  

  sleep()和wait()有什么区别

  sleep就是正在执行的线程主动让出CPU,CPU去执行其余线程,若是当前线程进入了同步锁,sleep方法并不会释放锁

  wait就是指一个已经进入同步锁的线程内,让本身暂时让出同步锁,以便其余正在等待此锁线程能够获得同步锁并运行

 

  多线程有几种实现方法?同步有几种实现方法?

  多线程有两种实现,分别是继承Thread类与实现Runnable接口(还有一个链接池,不太肯定)

  同步的实现方法有:synchronized、wait、notify

  wait():是一个线程处于等待状态,而且释放所持有的对象的lock

  sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法

  notify():唤醒一个等待状态的线程

 

  ArrayList和Vector的区别

  1.同步性

    Vector是同步的,是线程安全的,ArrayList是不一样步的,是线程不安全的

  2.数据增加

    两个都有一个初始的容量大小,当超狗容量时,就会增长存储空间

    ArrayList增加为原来的1.5倍,Vector增加为原来的2倍

 

  HashMap与Hashtable的区别

  1.Hashtable是老旧的,HashMap是java 1.2引进的Map接口的一个实现

  2.Hashtable是线程安全的,同步的   HashMap是线程不安全的,不是同步的

  3.只有HashMap能够让你将空值做为一个表格的条目的key或value

 

  List和Map区别

  List存储单列数据的集合,Map是存储键和值这样双列数据的聚合

  List存储的数据是由顺序的,而且容许重复,Map是没有顺序的,键是不能重复的,值能够重复

  

  第一次发,但愿能收获点好评i

相关文章
相关标签/搜索