Java面试题(一)

                                  图片来自pixiv.net/i/23811878

1、面向对象的特征有哪些方面?
  封装
  最常见的是把属性私有化封装在一个类里面,只能通过方法去访问
  继承
  子类继承父类,从而继承了父类的方法和属性
  抽象
  比如一个英雄类,抽象出了name,hp这些属性,使得开发过程中更加易于理解
  多态
  多态分操作符的多态和类的多态。 类的多态指父类引用指向子类对象,并且有继承,有重写。

  2、String是最基本的数据类型吗?
  String是类类型,不是基本类型。 
  基本类型 有八种
  这八种基本类型分别是:
  整型 (4种)
  字符型 (1种)
  浮点型 (2种)
  布尔型(1种) 

  3、int 和 Integer 有什么区别?
  int 是基本类型32位长度的整数
  Integer 是类类型,是int的封装类
  int和Integer之间可以通过自动装箱 自动拆箱 互相转换 

  4、String 和StringBuffer的区别?
  String是immutable的,其内容一旦创建好之后,就不可以发生改变。
  StringBuffer 是可以变长的,内容也可以发生改变
  改变的原理是StringBuffer内部采用了字符数组存放数据,在需要增加长度的时候,创建新的数组,并且把原来的数据复制到新的数组这样的办法来实现。 


 
 5、运行时异常与一般异常有何异同?

  运行时异常 又叫做非可查异常,在编译过程中,不要求必须进行显示捕捉
  一般异常又叫做可查异常,在编译过程中,必须进行处理,要么捕捉,要么通过throws(声明)抛出去. 

  6、说出ArrayList,Vector, LinkedList的存储性能和特性。
  先说ArrayList和Vector
  两者都继承了抽象类AbstractList,但是Vector是线程安全的,而ArrayList是非线程安全的
  再说ArrayList和LinkedList的区别
  ArrayList 是数组结构,所以定位很快,但是插入和删除很慢
  LinkedList 是双向链表结构,所以插入和删除很快,但是定位很慢 

  7、Collection 和 Collections的区别。
  首先不要说成了一个是单数,一个是复数。。。
  Collection是接口,是List和Set的父接口 
  Collections是工具类,提供了排序,混淆等等很多实用方法 

  8、&和&&的区别
  & 有两个作用,分别是 位与 和 逻辑与
  && 就是逻辑与
  作为逻辑与, & 和 && 分别表示长路与和短路与
  长路与 两侧,都会被运算
  短路与 只要第一个是false,第二个就不进行运算了 

  9、HashMap和Hashtable的区别
  HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
  区别1: 
  HashMap可以存放 null
  Hashtable不能存放null
  区别2:
  HashMap不是线程安全的类
  Hashtable是线程安全的类 

  10、final, finally, finalize的区别
  final
  final修饰类,方法,基本类型变量,引用的时候分别有不同的意思
  修饰类 表示该类不能被继承
  修饰方法 表示该方法不能被重写
  修饰基本类型变量 表示该变量只能被赋值一次
  修饰引用 表示该引用只有一次指向对象的机会
  finally
  finally 是用于异常处理的场面,无论是否有异常抛出,都会执行
  finalize
  finalize是Object的方法,所有类都继承了该方法。 当一个对象满足垃圾回收的条件,并且被回收的时候,其finalize()方法就会被调用 

这次先更新这么多,下次想到好的还会继续写下去的~

原文地址:https://www.cnblogs.com/SUN99bk/p/10691611.html