1、Java 基础
Java 的三大特性:封装、继承、多态
Java 语言的特点:平台无关性、面向对象、简单实用、多线程、安全可靠等
Java 的基本数据类型:
byte、short、int、double、float、long、boolean、char
==
与equals
的区别?- == 比较的是两个对象的内存地址是否相同
- equals 对于基本数据类型比较的是内存地址,对于复杂数据类型比较的是值。
Java 中的
Math.round(-1.5)
等于多少?- 答:
-1
。round()
是在原数值的基础上加 0.5 ;向下取整。
- 答:
String 属于基础的数据类型吗?
- 答: 不属于。 String 内部是
final
修饰的字符数组。
- 答: 不属于。 String 内部是
Java 中操作字符串都有那些类?有什么区别?
- 答:
String、StringBuffer、StringBuilder
;- 三者都是使用final修饰的类,不能被继承。
- String中的字符数组使用final修饰,线程安全;
StringBuffer
中的方法使用synchronized
修饰,线程安全;StringBuilder
线程不安全。
- 答:
普通类和抽象类有什么区别?
- 修饰符:抽象类使用abstract修饰
- 抽象方法:抽象类可以包含抽象方法,普通类不能有抽象方法。
- 实例化:抽象类不能直接实例化
什么是抽象方法?
- 抽象方法必须写在抽象类中,抽象方法的方法名使用
abstract
修饰,没有方法体。
- 抽象方法必须写在抽象类中,抽象方法的方法名使用
抽象类和接口对比?
- 类名修饰符:abstract、interface
- 是否实例化:都不可以实例化
- 继承性:(类)单继承,(接口)多实现
- 构造器和方法:抽象类可以有构造器、抽线和非抽象方法;接口只能有抽象方法。
抽象类可以用final修饰吗?
- 不可以
重写与重载
- 重写:发生在子类继承父类。重写父类的方法体。
- 重载:发生在同一类中。方法名相同,参数列表不同,与返回值无关。
String s=new String("ab");
创建了几个对象?- 创建了两个对象。常量池中创建“ab”,堆或栈中创建字符串对象“ab”。
深拷贝 和 浅拷贝
- 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。(Java方法的参数都是浅拷贝)
- 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。