被鄙视了,好伤心的。。
以下语句的执行顺序和输出结果是什么
public class test{
/*1*/private static test obj=new test();
/*2*/public static int counter1;
/*3*/public static int counter2=0;
/*4*/private test(){
counter1++;
counter2++;
}
/*5*/public static test getInstance(){
return obj;
}
public static void main(String [] args){
test obj=test.getInstance();
System.out.println("obj.counter1=="+obj.counter1);
System.out.println("obj.counter2=="+obj.counter2);
}
}
个人认为顺序应该是:14235
编译时确定变量的类型和存储位置,给予默认值0,赋值在声明完成后进行,所以在test()中,虽然counter1,counter2都变成了1,但后来又将counter2赋值为了0
输出
obj.counter1==1
obj.counter2==0
其他
运算符优先级问题
画出大小端存储ox12345678的方式
多态类中的虚函数表是Compile-Time还是Run-Time时建立的
定义一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(C)
A.int (*a)[10](int) B.(int (*a)(int))[10] C.int (*a[10])(int) D.int *a[10](int)
数组定义“int a[4]”,错误的是(D)
A.*a B.a[0] C.a D.a++
不用库函数和新的变量实现求字符串长度的函数int strlen1(const char*p)
int strlen1(const char *p)
{
if(p[0]=='\0')
return 0;
return 1+strlen1(p+1);
}判断回文数int IsMemm(long n)
int IsMemm(long n)
{
long b=0,m=n;
while(m)
{
b=b*10+m%10;
m/=10;
}
return b==n;
}
本文详细解析了一个Java程序的静态初始化过程及执行顺序,包括静态变量的初始化、构造函数的调用等,并给出了具体的执行结果。同时,还探讨了一些计算机科学的基础概念,如大小端存储方式、多态中的虚函数表建立时机等。

5804

被折叠的 条评论
为什么被折叠?



