您的位置:首页 > 职场人生

JAVA面试基础复习01

2018-04-03 13:23 435 查看

1:Java为什么可以跨平台

  我们常用的c语言编译之后是机器指令后缀名问.obj,而java取个巧,编译之后是Class字节码文件,由JVM解析成机器指令,这样就实现了跨平台

2:面向对象的特征

    继承,封装,多态,抽象
   继承,子类继承父类非私有属性和方法,达到代码的复用
   封装:类把自己方法和属性进行保护,让可信到和对象进行操作,对不可信的对其隐藏
   多态:同一方法在不同类的表现形式,多态的实现通过重载和覆盖来实现的
   抽象:把具有相同属性特征的事务抽象成成一个类

3:重载和重写的区别

 两个都是实现多态的手段,
3.1:重载是发生在同一个类中,发生重载的条件我们是根据参数来匹配的(参数的个数,类型,顺序)
3.2:覆盖是发生在两个类中的,这个玩意必须什么都带一样,参数,函数名,返回值,抛出的异常尽然还必须一致...

4:有了基本数据类型,为什么还需要包装类

  java是一个面向对象的语言,万物皆对象,但基本类型不具有对象的特征,java为了弥补这个问题,提供了包装类,提供一些操作数据的方法,包装类和基本数据类型我们通过拆箱和装箱来实现
举个例子:
 Interger i=1(默认会装箱 调用Integer.valueOf())
Integer i=1;
int j=i;(默认拆箱 int j=intvalue(i))

5:java中String 和StringBuilder和StringBuffer的区别和联系

    这三个是java操作字符串的三个类,
  5.1: String是内容不可变的字符数组,我们查看它的源码可以发现它是用final来修饰的
   private final char value[];
  5.2:StringBuilder和StringBuffer是内容可变的字符串,我们在源码中可以发现没有被final修饰
  private char value[],
5.3:StringBuilder是线程不安全的,效率极高,StringBuilder是线程安全的,效率比较低
6: Java中集合的分类

7:hashMap和hashtable的区别

  1:hashMap可以存储空键值对(但只能为一个),hashTable不能
  2:hashMap是线程不安全的,效率比较低,相反Hashtable线程安全,效率比较高

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: