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

原文地址:https://www.cnblogs.com/yunyouhua/p/8429984.html