Java——面试题整体
平时记录一些面试题,以后面试的时候回答的也有条理一些。
一、Java基础
1、Java有哪几种基本数据类型
Java中基本数据类型共有八种,它们分别是属于哪种数据类型、分别用什么关键字来表示、内存的占用情况、各自的取值范围如下
数据类型 | 关键字 | 内存占用 | 取值范围 |
整数类型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int | 4 | -2147483648~ 2147483647 | |
Long | 8 | -9223372036854775808~9223372036854775807 | |
浮点类型 | float | 4 |
|
double | 8 |
|
|
字符类型 | char | 2 | 0-65535 |
布尔类型 | boolean | 1 | true、false |
2、Java中的引用数据类型有哪几种
类、接口、数组。
3、final关键字的用途
- 修饰类,类不能被继承
- 修饰方法,方法不能被重写
- 修饰变量,变量变为常量,初始化值后无法再修改该常量的值
4、== 和 equals的区别是什么
== 对于基本数据类型,它比较的是值是否相同,对于引用数据类型,它比较的是引用是否相同。
equals本质上就是==,只不过String、Integer等类重写了equals方法,把它变成了值比较。
面向对象特征
- 封装:把对象的属性和行为结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,外部只能用我们提供的功能实现需求,而不知道是如何实现的。增加安全性
- 继承:子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性
- 多态:允许不同的对象对同一消息做出响应,就是同一消息可以根据发送对象的不同而采用多种不同的行为方式,封装和继承都是为多态而准备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法
JVM调优
- 设置JVM最大可用内存为3550M
- 设置每个线程栈大小,JDK5.0以后每个线程栈大小为1M,以前每个线程栈大小为256K
- 设置老年代为2G。整个JVM内存大小=年轻代大小 + 老年代大小 + 持久代大小