【每日一题————选择题】-创新互联

一、 题目:   以下代码输出结果是什么

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、雅安服务器托管、营销软件、网站建设、盘锦网站维护、网站推广。
public class Test { 
    public int aMethod(){
        static int i = 0;
        i++; 
        return i;
    } 
public static void main(String args[]){
    Test test = new Test(); 
    test.aMethod(); 
    int j = test.aMethod();
    System.out.println(j);
    } 
}

A.0

B.1

C.2

D.编译失败

正确答案:     D

错因:

虽然我也选了D,但并未想到其所属类的性质,只沉浸在i的算法、方法的调用看有没有错,最终也未觉察出哪里有错。

解析:

变量i用static修饰,即为静态变量,属于类变量;但同时又在方法aMethod()内定义,即为局部变量;类变量与局部变量两者的性质是冲突的,因为类变量是随着类的加载而创建,而局部变量是方法被调用才会被创建;Java中不定义存在局部的静态变量。

考点:  变量的属性与性质


二、 题目:     编译和运行下列代码,会有何结果

public class Pvf{
    static boolean Paddy;
    public static void main(String args[]){
        System.out.println(Paddy);
    }
}

A.编译时错误

B.编译通过并输出结果false

C.编译通过并输出结果true

D.编译通过并输出结果null

答案:  B

错因:

我选的:A,因为我认为Paddy是静态成员变量,是类的属性,要访问要通过类来访问,无法直接访问,应该是 System.out.println(Pvf.Paddy);

解析:

成员变量未给初值即为默认值,基本类型(int是0,boolean是false)是对应的0值,引用类型(如String)是null

考点:成员变量的默认值、成员变量的使用。

三、题目:      哪些在main函数中使用是正确的

public class Test{

  private float f=1.0f;

  int m=12;

  static int n=1;

  public static void main(String args[]){

    Test t=new Test();

  }

}

A.t.f = 3.0

B.this.n

C.Test.m

D.Test.n

答案:  D

错因:

首先排除了B、C,在A、D之间犹豫看着都对,对基本数据类型模糊。

解析:

A选项f是float类型而3.0是double数据类型;B选项静态方法中不能使用this,而且n是静态的需要通过类名访问不能通过this访问,this代表当前对象的引用但是静态的成员变量不属于this;C是m属于非静态成员变量,需要通过对象调用,不可以通过类名访问;类成员变量和类成员方法是通过类名访问所以D正确;

考点:基本数据类型、this引用、成员变量。

四、 题目:     以下代码说明正确的是

public class HasStatic {// 1
	private static int x = 100;// 2
	public static void main(String args[]) {// 3
		HasStatic hsl = new HasStatic();// 4
		hsl.x++;// 5
		HasStatic hs2 = new HasStatic();// 6
		hs2.x++;// 7
		hsl = new HasStatic();// 8
		hsl.x++;// 9
		HasStatic.x--;// 10
		System.out.println(" x=" + x);// 11
	}
}

A.程序通过编译,输出结果为:x=102

B.程序通过编译,输出结果为:x=103

C.10行不能通过编译.因为x星私有静态变量

D.5行不能通过编译.因为引用了私有静态变量

正确答案:    A

错因:

虽然选择正确,但真实考点并没有思考正确

解析:

x属于静态成员变量,属于类变量,随着类的加载而创建,只有一份,所有对静态成员变量的操作针对的都是同一份;静态成员变量的正确访问方式是通过类名访问,虽然通过对象也能访问但并不推荐。

考点: 静态成员变量

五、题目:   cnt的值为:

public class Test{
    static int cnt = 6;
    static{
        cnt += 9;
    }
    public static void main(String[] args){
        System.out.println("cnt = " + cnt);
    }
    static{
        cnt /=3;
    };
}

A.cnt=5

B. cnt=2

C.cnt=3

D.cnt=6

正确答案:A

解析:

 1.成员变量   (若存在相同的多个,定义顺序决定执行顺序)

 2.静态代码块  (若存在相同的多个,定义顺序决定执行顺序)

 3.实例化代码块

 4.对应构造方法

考点:代码块儿的执行顺序。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:【每日一题————选择题】-创新互联
分享路径:http://ybzwz.com/article/ddggpd.html