您的位置:首页 > 职场人生

Java面试知识点整理(一)

2016-08-10 19:33 246 查看

1、Java特点

(1)纯面向对象的语言

除基本数据类型外,所有代码(包括函数、变量等)必须在类中实现,不存在全局变量或全局函数

(2)跨平台特性

为解释型语言,程序源代码首先经过java编译器编译成字节码,然后由某个平台上对应的JVM解释执行,具有很好的可移植性

(3)垃圾回收器

不像C++,没有析构函数来释放资源,提供了垃圾回收器来实现垃圾的自动回收,不需显式管理内存的分配。

(4)大量内置的类库

(5)不支持多重继承,可以通过实现多个接口来实现与C++中多重继承类似的目的。

(6)不支持自动强制类型转换,以及其垃圾回收器、异常处理和安全检查机制使得Java拥有很好的健壮性。

2、Java程序的入口方法

即前面讲述的

public static void main(String[] args)


通过将main方法定义为public与static,就不需要通过实例化对象的方式来调用这个方法了,在程序运行时,第一个直接执行main方法。

注意,上述入口方法中,也可以做适当修改,如调换public与static顺序,void前再加final,void前再加synchronized,但,切忌不能加abstract关键字。

当然,每个类中都可以定义main方法,但只有与文件名相同的用public修饰的类中的main方法才能作为整个程序的入口方法。

3、static关键字

前面提到,将台方是将代码存储在静态存储区中,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问。

类似的,可以将某段代码块声明为静态的,因此被加载时就会被调用,可以实现在main方法之前被执行,如

public class Test{
static{
System.out.println("Hello");
}
public static void main(String args[]){
System.out.println("World");
}
}


实际上由于静态块无论顺序如何,都会在main方法之前执行,因此上述代码中可以挑中static{}与main方法顺序。

4、程序初始化的顺序

Java程序的初始化一般遵循三个原则:(1)静态对象(变量)优先于静态的,(2)父类优先于子类,(3)成员变量们按定义的顺序依次进行初始化。

此外,在实例化对象时,对象所在类的所有成员变量首先初始化,然后才调用对象所在类的构造函数来创建对象。

总结起来,初始化的整体顺序为:

父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数。

5、Java中的作用域

JAVA语言中变量的类型主要有三种:成员变量、静态变量和局部变量。

局部变量的作用域与可见性为他所在的花括号内。

static修饰的成员变量称为静态变量或者全局变量。不依赖于特定的实例,被所有实例共享,即只要一个类被加载,JVM就会给类的静态变量分配存储空间。

成员变量的作用范围与类的实例化对象作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个被实例化对象的生命周期结束时,成员变量的生命周期相应结束。

进一步,成员变量可以细分为四类,分别搭配public,private,protected和default四种关键字。

public型对当前类、同一package、子类和其他package均可见;

private型对当前类可见,对同一package、子类和其他package均不可见;

protected型对当前类、同一package、子类均可见,对其他package不可见;

default型对当前类、同一package可见,对子类和其他package均不可见。

6、javac指令编译.java文件

此时会对此Java文件中的每一个类生成一个对应的.class文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面试