扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、 题目: 以下代码输出结果是什么
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、雅安服务器托管、营销软件、网站建设、盘锦网站维护、网站推广。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元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流