(最近看了一本讲java面试有关的书,分享给大家)
- 环境变量CLASSPATH的作用
答: 该环境变量保存的是一些目录和jar文件的地址,这些路径是为java程序在编译和运行的时候搜索类而用的。
.;c:jar\logj4.jar;d:\work\java
以上的CLASSPATH环境变量 指定了3个搜索类路径:当前目录、logj4.jar文件的路径和d:\work\java文件夹显得所有的类 - java 与c++程序在编译和运行上有什么区别
答:c++程序编译后,生成的是特定机器可直接运行的文件;
java程序编译后,生成的是字节码文件,需要在jvm中运行,而jvm是有多个平台版本的;
所以java具有跨平台性,c++没有。 - 什么是JVM及其工作原理
答:JVM java虚拟机(用软件模拟出来的计算机)用于执行java程序。java虚拟机有自己想象中的硬件,比如处理器、堆栈、寄存器等,还具有相应的指令系统,他运行java程序就好像一台计算机运行C或C++程序一样。 - jvm的垃圾回收机制
答:java 的堆内存数据的释放功能是由垃圾回收期自动进行的。
java根父类java.lang.Object中有个finalize方法,在销毁对象之前会调用此方法(覆写此方法,执行被销毁前的功能,例如关闭数据库连接)
java.lang.System 和java.lang.Runtime都有gc()方法。他们都可以显示调用,以请求开始垃圾回收线程,但垃圾回收线程是否立即开始是有JVM的算法决定的
System,gc();
Runtime.getRuntime().gc();
- 变量及其作用范围
答:静态变量:static修饰的变量,类的生命周期决定
成员变量:对象的生命周期决定
局部变量:作用范围用{ }来界定 - java中的装箱和拆箱
答:装箱和拆箱指的是基本数据类型和包装类型的自动相互转换,这个自动转换的过程是在编译阶段 - java中的equal和==的区别是什么
答:“==”基本类型比较的是值;引用类型比较的是是否指向同一个对象;“equal”比较的是内容,针对java.lang.String,它的equal方法用来比较字符串的字符序列是否完全相等
- 类和对象有什么区别
答:类是一种抽象,而对象是类的实现 - java中的继承 和 多态
答:单继承制,使用extend关键字;多实现,使用implements关键字 - java静态成员的特点
答:静态成员变量,静态方法,静态代码块。它们具有以下特点
在类加载的时候,进行创建和初始化或执行代码
它们对于一个类来说是共享的
类的所有实例都可以访问到它们
- 简述java派生类中的构造方法如何为父类传递参数
答:在java中使用super关键字加()的形式来为父类的构造方法提供参数,通过参数的数目和类型来决定调用哪一个构造方法。 - 单例模式
答:单例模式始终保持一个实例。java中实现单例模式要确保,私有的构造方法,私有的静态的类型引用,提供获取实例的方法。
单例模式的两种实现方法:
1.懒汉式
//基本方法
public class SingletonClass {
private static SingletonClass instance = null;
public static SingletonClass getInstance() {
if(instance == null) {
instance = new SingletonClass();
}
return instance;
}
private SingletonClass() {
}
//改进方法synchronized 和 volatile 是为了确保线程安全,并且代码不会被编译器优化
public class SingletonClass {
private volatile static SingletonClass instance = null;
public static SingletonClass getInstance() {
if (instance == null) {
synchronized (SingletonClass.class) {
if(instance == null) {
instance = new SingletonClass();
}
}
}
return instance;
}
private SingletonClass() {
}
2.饿汉式
private static XXXObject obj = new XXXObject();
public static XXXObject getInstance(){
return obj;
}
总结:
模式 | 优点 | 缺点 |
---|---|---|
懒汉式 | 用到才创建 | 线程不安全 |
恶汉式 | 实现简单 | 类加载就会创建,浪费资源 |