赞
踩
如下代码的输出结果是什么?()
A.0
B.1
C.2
D.编译失败
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);
}
}
正确答案:D
【分析】:静态方法只能在类主体中定义,不能在方法中定义,静态变量又称为类变量,只能定义在类里,不能定义在方法中,静态方法也不行。
当你编译和运行下面的代码时,会出现下面选项中的哪种情况?()
A.编译时错误
B.编译通过并输出结果false
C.编译通过并输出结果true
D.编译通过并输出结果null
public class Pvf{
static boolean Paddy;
public static void main(String args[]){
System.out.println(Paddy);
}
}
正确答案:B
【分析】:类中声明的变量有默认初始值,方法中声明的变量没有默认初始值,必须在定义时初始化,否则在访问该变量时会出错,Boolean类型的默认值为false
关于以下程序代码的说明正确的是()
A.程序通过编译,输出结果为:x=102
B.程序通过编译,输出结果为:x=103
C.10行不能通过编译.因为x星私有静态变量
D.5行不能通过编译.因为引用了私有静态变量
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 //先赋值x=100,再++,++后x变为101
HasStatic hs2 = new HasStatic();// 6
hs2.x++;// 7 //先赋值x=101,再++,++后x变为102
hsl = new HasStatic();// 8
hsl.x++;// 9 //先赋值x=102,再++,++后x变为103
HasStatic.x--;// 10 //先赋值x=103,再--,--后x变为102
System.out.println(" x=" + x);// 11 //此时输出x=102
}
}
正确答案:A
【分析】:该程序能够通过编译,程序中声明了2个对象hs1和hs2,而hs1初始化两次,虽然x被定义为私有的变量,但在本类中是可以调用的。所以输出结果为x=102(输出过程见代码注释)。
已知如下类说明:如下哪些使用是正确的()
A.t.a = 1.0
B.this.n
C.Test.m
D.Test.n
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();
}
}
正确答案:D
【分析】:
A:编译不成功,因为float浮点类型默认是double类型 所以float f=1.0f;(必须加上f 强调定义的是float)此处是精度由高(double)向低(float)转型所以会报错 但是若是float f=1;这里是默认类型是Int 类型 精度由低(int)向高转型(float)不丢失精度不会报错。
B:this不能在static的方法中使用,this是指向对象的的引用,而静态方法在类加载的时候创建加载,此时没有创建对象。this的使用时针对在方法内部使局部变量等值于实例变量而使用的一个关键字,此处的n是静态变量而非实例变量 所以this的调用会出错(static本来是全类中可以使用的,是全局的)
C:m是实例变量,实例变量是指需要new 一个对象出来才能使用,这里直接用类名调用,jvm不知道m是谁
D:类变量可以通过类直接调用
要求:给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面
代码:
import java.util.Arrays; public class test1 { public static void main(String[] args) { int[] arr={1,2,3,4,5,6}; System.out.println(Arrays.toString(transform(arr))); } public static int[] transform(int[] a){ int left=0; int right=a.length-1; while(left<right){ while(left<right&&a[left]%2==0){ //该循环结束,left指向一个奇数(从左边开始找一个奇数) left++; } while(left<right&&a[right]%2!=0){ //该循环结束,right指向一个偶数(从右边开始找一个偶数) right--; } /// 交换两个元素的位置 int temp=a[left]; a[left]=a[right]; a[right]=temp; } return a; } }
运行结果:
要求:给定两个整型数组, 交换两个数组的内容
代码:
import java.util.Arrays; public class test2 { public static void main(String[] args) { int[] a={1,3,5}; int[] b={2,4,6}; swap(a,b); } public static void swap(int[] a,int[] b){ for(int i=0;i<a.length;i++){ int temp=a[i]; a[i]=b[i]; b[i]=temp; } System.out.println("a:"+Arrays.toString(a)); System.out.println("b:"+Arrays.toString(b)); } }
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。