Java基础中常用面试题

1、抽象类和接口有什么区别?

相同点

代表系统的抽象层

都能包含抽象方法

用于描述系统提供的服务,不必提供具体实现

不同点:在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法

抽象类便于复用,接口便于代码维护

 

 

2、重写和重载的区别?

他们之间没有任何关联

重写:方法名相同参数列表相同,返回值相同或者是其子类,访问修饰符不能严于父类,抛出的异常不能大于父类

重载:是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同和返回值无关。

 

3、Java面向对象的三大特性是什么?

继承:就是从已有的类继承信息创建新类的过程,被继承的类称为父类,继承的类叫做子类。子类可以全盘接受父类的所有属性和方法(甚至是private修饰的,也可以继承,但是不能在父类之外访问,提供共有的访问方法(比如封装set()get())就可以用)。

封装:就是将属性私有化,提高安全性。

  封装的步骤:

  1. 将属性私有化 private      如:private  String sex;
  2.  编写setter方法,可以针对用户输入的值进行判断
  3.  编写getter方法,来获取值

多态:同样的一种物质,在不同条件下,所呈现出来的状态是不同的。

语法:父类名 父类引用 = new 子类类名()

 

4、equals()   和  ==   的区别?
     ==           比较的是地址值
   equals()    比较的是内容

 

5、ArrayList和LinkedList的有什么区别?

ArrayList:实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。

LinkedList:采用链表存储方式。插入、删除元素时效率比较高。

6、写出异常的语法(throw和try)?
语法
try{
//将可能出现异常的代码都放入try中
}catch(){
//在一段程序中catch可以有多个,来捕获异常类型,当出现了某种异常就会中断 异常代码后面的内容继而执行对应的catch中的内容
//需要注意的是  异常的范围需要从小到大写   范围小的异常放在上面,范围大的异常放在下面
}finally{
//在程序中一定会被执行的内容,除非是遇到了exit()方法
当程序中有return的时候,是会先执行finally中的内容,然后执行return。
}
throws Exception: 声明异常
方法名后声明, 将异常交给调用者去处理了,如果调用者不处理依然会出现异常,除非是使用 try catch
throw new Exception();抛出异常
自定义异常
声明一个类继承RuntimeException
重写有参无惨够造方法,最后调用

 

 

原文地址:https://www.cnblogs.com/jiyaoyu/p/12944465.html