java基础面试题
1.面向对象的特征
封装,继承,多态,抽象
封装:是将对象的属性和数据结合在一起,成为一个独立的整体,把可以展现别人的展现出来,不可以展现给别人的进行隐藏,别人不知道你是怎么实现的,从而提高了代码的安全性!
继承:是出现在父子类中,孩子继承了爸爸的属性和行为,还可以根据自身的需求来扩展自己的业务,从而提高了代码的复用性!
多态:是多个对象对同一的消息做出的响应。换句话说就是同一消息可以根据发送的对象不同而采用不同的行为方式!封装和继承就是为多态而准备的。
抽象:用abstract关键字修饰的类,不可被实例化!此类叫抽象类!就是用关键字abstract来修饰
2.JDK,JRE,JVM区别
JDK:整个java运行的核心内容,是java的开发工具包,包含了java的运行环境JRE,Java运行工具,java的基础类库
JRE:是java运行时所需要的环境的集合,其中包含了虚拟机和java程序的一些基础类库
JVM:是虚拟机的缩写,是整个java实现跨平台的重要部分,能够运行java语言写作的软件程序。
3.重写和重载的区别
重写:发生在父子类中,方法名和参数列表必须相同,抛出的异常小于等于父类,返回值小于等于父类,访问修饰符大于等于父类,如果父类中的方法修饰符为private,则子类不能重写该方法。
重载:发生在同一个类中,方法名不同,参数列表不同,参数类型不同,个数不同,顺序不同,方法返回值和访问修饰符不同,发生在编译时。
4.java中==和equals的区别
==基本类型比较的是具体内容,引用类型比较的是地址值
equals引用类型默认情况下比较的是地址值,除一些特定的String,Integer等在类库中equals被重写,比较的是具体内容!
面试常问,在字符串比较中,==和equals()的区别是什么
在字符