java程序员面试笔试宝典
4.1.2题目:
下面说法中,错误的有( )
A. Java面向对象语言容许单独的过程与函数存在;
B. Java面向对象语言容许单独的方法存在;
C. Java语言中的方法属于类中的成员(member);
D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同。
答案:
ABC
解释:
方法与函数:这两个概念不严格区分,就是一个东西,通过对象调用的,就是方法,直接调用,就是函数;
在java中,everything is object 所以,方法,函数,必须隶属于某一个类或对象, java中没有过程。(类中的代码块不知道算不算,就算代码块是过程,也是必须在类中才有的)
对于C选项,方法分为静态方法和非静态方法,静态方法属于类成员,非静态方法属于实例成员。
4.1.3 public static void main(String[] args)
sychronized final √
abstract×
4.1.4静态块在类被加载时就会被调用,在main()方法执行前输出“Hello World”
并且无论静态块放在哪
1 static {
2 System.out.println("Hello, World");
3 }
4.1.5Java程序初始化的顺序是怎样的
实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,
才会调用对象所在类的构造函数创建对象。
①静态对象(变量)优于非静态对象(变量)初始化,
静态对象(变量)初始化一次,非静态对象(变量)可能会初始化多次
②父类优先于子类进行初始化
③按照成员变量的定义顺序进行初始化
成员变量和局部变量
根据定义变量位置的不同,可以将变量分为成员变量和局部变量
成员变量是在类范围内定义的变量
局部变量是在一个方法内定义的变量
成员变量可以分为:
实例属性 (不用static修饰)
随着实例属性的存在而存在
类属性 (static修饰)
随着类的存在而存在
成员变量无需显式初始化,系统会自动对其进行默认初始化
父类静态变量》父类静态代码块》
子类静态变量》子类静态代码块》
父类非静态变量》父类非静态代码块》父类构造函数》
子类非静态变量》子类非静态代码块》子类构造函数
先父后子,先静态 后非静态,先变量后代码块最后构造函数。
4.1.6java中的作用域
变量类型:成员变量(对象),静态变量/全局变量(类),局部变量({})
只有public protect修饰的才能被子类访问
只有public,abstract,final能用来修饰类。
4.1.7一个java文件中可以定义多各类。
最多只有一个public类,且与文件名相同
4.1.8构造函数
构造函数用new调用
构造函数不能被继承,即不能被覆盖,但是能被重载
4.1.9为什么java中有些接口没有任何方法:标识接口(cloneable,serializable)
接口:抽象方法定义的集合(也可定义一些常量值)。是特殊的抽象类
接口中成员修饰:public 常量默认:public static final
默认构造器的修饰符只跟当前类的修饰符有关。 当前类public 构造函数public