Java面试复习
1、面向对象和面向过程的区别
面向过程:性能高,消耗的资源少,一般用于嵌入式开发(单片机)
面向过程: 易扩展、维护、服用,有继承、封装、多态性质,可以降低系统的耦合,性能比面向过程低
2、Java语言的特点
面向对象、与平台无关,安全可靠,支持多线程和网络编程,编译与解释并行
3、什么是JVM, JDK, JRE?
JVM是Java虚拟机,运行Java字节码的,JVM对不同系统开发不同的虚拟机,目的使用相同的字节码,JVM再将字节码转换成二进制的机器码
字节码就是后缀为.class的文件,因为字节码运行在虚拟机上,无关处理器和操作系统,所以一次编译可以在不同操作系统上运行
JDK是Java Development Kit,简单理解就是开发者用的,包含了JRE,还有编译器,能够创建和编译程序
JRE是Java Run environmen Java运行时环境,包含JVM和Java类库,和一些其它基础组件,但不能开发Java程序
4、Oracle JDK 与 Open JDK的区别
Oracle JDK每三年发布一次,而Open JDK每三个月发布一次
Oracle JDK并不完全开源,而Open JDK完全开源
Oracle JDK比Open JDK更加稳定,性能更好,商业软件还是选择稳定的比较好
5、 Java和C++的区别
Java不可以用指针访问内存程序更安全
Java类只能单继承,而C++类可以多继承,但Java可以通过接口实现多继承
Java有垃圾处理机制,不需要手动释放内存
6、什么是 Java 程序的主类 应用程序和小程序的主类有何不同?
主类是指包含main()方法的类,一个程序只能有一个主类,继承自系统的JApplet或Applet的子类
小程序的主类一定要是public修饰的,而应用程序的主类没有指定
7、 字符型常量和字符串常量的区别?
字符型常量是单引号括起来的单个字符,字符串常量是双引号括起来的一串字符
字符型常量至少占两个字节,字符串常量至少占一个字节,(结束符)
8、构造器 (Constructor)是否能被重写
构造方法不能被继承,所以不能被重写,只能重载(一个类中有多个构造方法)
9、重载和重写的区别
重载: 在同一个类中,方法名相同,参数类型、 顺序、 个数、 方法修饰符、修饰符可以不同
重写: 在父子类中,方法名和参数列表必须相同,返回参数要小于等于父类的范围,抛出异常范围要小于等于父类,不能重写父类的私有方法
10、面向对象的三大特征(封装、继承、多态)
1)封装: 对象属性私有化,对外只提供访问属性的方法
2}继承: 在已定义类的基础上,创建新的类,可以添加一些新的属性,和方法,也可以用父类的功能,达到代码复用的效果
子类可以对父类进行扩展
子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有
3)多态: 调用方法时,在编译期并不确定调用的是哪个方法,只能在程序运行期间确定
实现多态方式: 继承(多个子类对同一方法的重写)和接口实现接口并覆盖接口中同一方法)
11、String为什么是不可变的?String StringBuffer 和 StringBuilder 的区别是什么?
String类是用final修饰的类,用来保存字符串,private final char value[ ]
StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,AbstractStringBuilder 中也是使用字符数组保存字符串char[]value,没有final修饰
StingBuffer加了同步锁,线程安全的,StringBuild是非线程安全的,性能略高于StringBuffer
12、自动装箱与拆箱
装箱:将基本类型用它们对应的引用类型包装起来
拆箱:将包装类型转换为基本数据类型
13、 在一个静态方法内调用一个非静态成员为什么是非法的?
静态方法可以不通过对象进行调用,因此不能调用其他非静态变量,也不可以访问非静态变量成员。
14、import (java 和 javax) 有什么区别?
Java是API所需要的包,Javax是扩展API的包
15、接口和抽象类的区别是什么?
接口的方法是public,所有方法在接口中不能有实现,而抽象类可以有非抽象方法
接口中只能有static和final修饰的变量,而抽线类中不一定
一个类可以实现多个接口,但只能实现一个抽象类
16、成员变量与局部变量的区别有那些?
成员变量属于类的,局部变量是在方法中定义的
成员变量可以被public等修饰符修饰
被static修饰的成员变量是属于类的,否则属于实例
17、什么是方法的返回值?返回值在类的方法里的作用是什么?
获取到的某个方法体中的代码执行后产生的结果,用于其它操作
还在整理中,如有错误,望指正。。。