文章目录
    
- 
     下面哪些是合法的变量名?(BCDE)
 
 A. 2variable
 
 B. variable2
 
 C. _whatavariable
 
 D. _3_
 
 E. $anothervar
 
 F. #myvar
 
 G. $_¥
A. 不能以数字开头
F. 不能以#开头
G. 不能以中文¥命名
标识符的规范:26个字母,数字,_,$,数字不要开头
- 
     
 有一段java应用程序,类名是A1,那么保存它的源文件名可以是(AD)
 
 A) A1.java
 
 B) a1.class
 
 C) a1
 
 D) D.java
 
 E) 都对
 
- 如果一个类中的类名字前面没有public的情况下,类名和文件名没有任何约束
- 一个java文件中可以有多个类
- 如果一个类前面有public来修饰,那么找个类必须和文件名字一致
- 一个类中只能有一个public类,其余的类都不能有public
- 
     java基本数据类型中,表数范围最大的是(D)
 
 A) short
 
 B) long
 
 C) int
 
 D) float
八种数据基本类型:
byte 1字节
short 2字节
int 4字节
long 8字节
float 4字节
double 8字节
上述的数据类型的表数范围:从上到下递增的。
注意:float表示范围比long范围大
- 
     以下选项中循环结构合法的是(C)
 
 A.
 
 while (int i <7){ i++; System.out.println("i is "+i);}
 
 
 B.
 
 int j = 3; while(j){System.out.println(" j is "+j)};
 
 
 C.
 
 int j = 0; for(int k = 0 ; j + k != 10; j++,k++){System.out.println(" j is "+h+"k is"+ k);}
 
 
 D.
 
 int j = 0 ; do {System.out.println("j is "+j++); if(j==3){continue loop;}while (j < 10);
 
A. 循环条件要以表达式的方式来体现,计算结果是boolean类型,不能在条件里定义变量
B. 循环条件必须是boolean类型,不能转int类型
D. 应在do前面加 loop:,是用来标识循环的
- 编译运行以下程序后,关于输出结果的说明正确的是(C)
public class Conditional {
	public static void main(String[] args) {
		int x = 4;
		System.out.println("value is "+ (x>4) ? 99.9:9);
	}
}
    A. 输出结果为:value is 99.9
    
    B. 输出结果为: value is 9
    
    C. 输出结果为: vlue is 9.0
    
    D. 编译错误
   
double 类型和int类型在运算的时候结果会向double来转换
- 下面的程序输出什么(D)
public class Conditional{
	public static void main(String[] agrs){
		int c ;
		System.out.println(c);
		System.out.println(c++);
		System.out.println(c);
	}
}
    A. 0 1 1
    
    B. 0 0 1
    
    C. 0 0 0
    
    D. 编译不通过
   
局部变量在使用之前一定要初始化
- 
     执行语句int i= 1,j = ++i ; 后i与j的值分别为(D);
 
 A. 1与1
 
 B. 2与1
 
 C. 1与2
 
 D. 2与2
如果多个变量定义在同一行,用逗号分隔
- 
     
 main方法是Java应用程序执行的入口点,关于main方法的方法头,以下哪项是合法的?(AD)
 
 A. public static void main(String[] args)
 
 B. public static int main(String[] arg)
 
 C. public void main(String arg[] )
 
 D. public sattci void main(String args[])
 
- 
     在不考虑极值的情况下,下面那个一个循环会导致死循环?(C)
 
 A. for(int k = 0 ; k < 0 ; k++)
 
 B. for(int k = 10; k > 0; k–)
 
 C. for(int k = 0; k < 10; k–)
 
 D. for(int k = 0 ; k > 0 ; k++)
A. 不循环
B. 循环十次退出
D. 不循环
- 
     Sysem.out.println(‘5’+2);的输出结果应该是(D);
 
 A. 52
 
 B. 7
 
 C. 2
 
 D. 55
char ‘5’ == int 53
char 转成int
- 
     
 指出正确的表达式( BCD)
 
 A. byte a = 128;
 
 B. Boolean b = null;
 
 C. long l = 0xfffL;
 
 D. Double d = 0.9239d;
 
A. byte 范围 -128~ 127
B. Boolean 是包装类,可以为null
- 
     
 下面语句在编译时不会出现错误或警告的是(A)
 
 A. float f = 3L;
 
 B. char c = “c”;
 
 C. boolean b = null;
 
 D. int i = 10.0;
 
byte,short, int , long ,float ,double 依次增大
小的可以自动转换为大的
小孩可以穿大人衣服,大人穿不了小的衣服
A. long可以转换为float
B. 基本数据类型不可以为null
D. double转int需要强转
- 
     
 下面的方法,当输入i为2的时候返回值是多少?(B)
 
public static void getVlue(int i) {
	long result = 0;
	switch(i){
		case 1:
			result = result + i;
		case 2:
			result = result + i * 2;
		case 3:
			result = result + i * 3;
	}
	return result;
}
    A)0
    
    B)编译错误
    
    C)4
    
    D)10
   
没有break,就会依次往下执行
return 的时候result 返回int类型需要强转,所以会报错
- 
     
 下面的代码中,执行之后 i 和 j 的值是什么?(B)
 
 int i = 1;int j;
 
 j = i++ * 2 + 3 * –i;
 
 A. 1,2
 
 B. 1,5
 
 C. 2,1
 
 D. 2,2
 
j = 1 * 2 + 3 * 1
- 
     
 下面程序运行的结果正确的是(C)
 
public class Demo1 {
	public static void main(String[] args) {
		int num = 0;
		for(int i = 0 ; i< 100; i ++) {
			num = num++;
		}
		System.out.println("num="+num);
	}
}
    A. 100
    
    B. 99
    
    C. 0
    
    D. 1
   
- 下面程序运行的结果正确的是(D)
public class Demo1 {
	public static void main(String[] args) {
		int n = 100;
		int m = 20;
		if( m++ <= 20|| n == n++) //没有括号体,if体就是下面这个if下面的第一行
			System.out.println(n); 
			System.out.println(m);
	}
}
    A.什么也不输出
    
    B.21
    
    C.101 21
    
    D.100 21
   
短路|| 只要前面为true,后面就不执行,n = n++不会执行
没有括号体,if体就是下面这个if下面的第一行
- 下面程序运行结果i是多少(B)
public class Demo {
	public static void main(String[] args) {
		int i = 10;
		mrthod(i);
		System.out.println(i);
	}
	public static void method(int i) {
		i = i + 10;
	}
}
    A. 20
    
    B. 10
    
    C. 0
    
    D. 报错
   
B java的值传递
- 给定如下java代码,编译运行之后,将会输出(B)
class Test {
	public static void main(String[] args) {
		int a = 5 ;
		System.out.println(a%2 == 1? a/2:(a+1)/2);
	}
}
    结果输出:(B)
    
    A. 1
    
    B. 2
    
    C. 2.5
    
    D. 3
   
- 给定如下java代码,编译运行时,结果是(A)
class Test{
	public staic void main(Sirng[] args) {
		for (int i = 0 ; i< 3 ; i ++) {
			System.out.println(i);
		}
		Systemout.print(i);
	}
}
    A)编译时报错
    
    B)正确运行,输出012
    
    C)正确运行,输出123
    
    D)正确运行,输出0123
   
- 
     以下哪些是逻辑短路运算符?(BD)
 
 A)&
 
 B)&&
 
 C)|
 
 D)||
- 
     
 以下哪些语句编译不会报错?(ABCD)
 
 A)boolean b = true;
 
 B)int a = (int)1.23
 
 C)double x = 1.1f
 
 D)char c = 10;
 
byte short int long float double
整数的常量并不是默认int
- 给出以下代码,请问该程序的运行结果是什么?(A)
class Example {
	public static void main(String[] args) {
		boolean flag = false;
		if(flag = true) {
			System.out.println("true");
		}else{
			System.out.println("false");
		}
	}
}
    请选择一个正确答案
    
    A)代码编译失败,if语句错误
    
    B)代码编译成功,但在运行期时if语句处抛出异常
    
    C)打印输出true
    
    D)打印输出false
   
- 
     
 下面方法编译错误的是
 
 (AD)
public class Demo {
	float func1() {
		int i = 1;
		return;
	}
	float func2() {
		short i = 2;
		return i;
	}
	float func3() {
		long i = 3;
		return i;
	}
	float func4() {
		double i = 3;
		return i;
	}
}
    A)func1
    
    B)func2
    
    C)func3
    
    D)func4
   
如果一个方法有返回值,那么必须要有一个return 值来执行
return 在 void 方法中为一个 第一个含义就是终止找个方法的调用
- 
     下面关于java语言中方法的说法错误的是(CD)
 
 A)所有的具体类中方法必须有方法体
 
 B)参数传递时值传递的方式
 
 C)如果方法没有返回值必须声明返回值void
 
 D)如果方法定义返回void,则方法中不能出现return语句
A. 方法体指的就是{ },与之对应的抽象类可以没有方法体
C. 构造器可以没有void ,public 类名(){ }
D. return 在 void 方法中为一个 第一个含义就是终止找个方法的调用
- 
     
 Java表达式”4&5″的结果是什么?(C)
 
 
 A. 0
 
 B. 5
 
 C. 4
 
 D. 1
& 第一个用途逻辑位运算,可以做未运算,做二进制的数的位运算
- 当编译并运行下面程序时会出现什么结果(B)
public class MyArr {
	public static void main(String[] args) {
		int [] i = new int [5];
		System.out.println(i[5]);	
	}	
}
    A)编译出错
    
    B)运行出错
    
    C)输出0
    
    D)输出“null”
   
- 
     下面数组定义错误的是(D)
 
 A. int [] arr = new int [3];
 
 B. int [] arr = {1,2,3};
 
 C. int [] arr = new int [] {1,2,3};
 
 D. int [] arr = new int [3] {1,2,3};
- 
     
 在Java中,下列关于方法重载的说法中错误的是(CD)
 
 
 A. 方法重载要求方法名称必须相同
 
 B. 重载方法的参数列表必须不一致
 
 C. 重载方法的返回类型必须一致
 
 D. 一个方法在所属的类中只能被重载一次
- 
     
 给定Java代码如下所示,在横线处新增下列(AC)方法,是对cal方法的重载
 
public class Test {
	public void cal(int x ,int y ,int z ){ }
	___________________________
}
    A. public int cal(int x,int y ,float z){reurn 0;}
    
    B. public int cal(int x,int y ,int z){return 0;}
    
    C. public void cal(int x,int z){ }
    
    D. public void cal(int z,int y,int x){ }
   
- 
     
 下面关于构造方法的说法正确的是(AB)
 
 
 A. 构造方法不能被继承
 
 B. 构造方法不能被重写
 
 C. 构造方法不能被重载
 
 D. 构造方法不能声明为private
- 
     下面关于类的说法,不正确的是(D )
 
 A. 类是同种属性和方法抽象
 
 B. 类属于Java语言中的引用数据类型
 
 C. 对象是类的实例
 
 D. 类就是对象
八种基本数据类型
三种引用数据类型:类,接口,数组
- 
     Java语言中哪个包是被自动导入的(B)
 
 A)java.util
 
 B)java.lang
 
 C)java.default
 
 D)java.io
- 
     
 有一个类MyClass,它的构造方法声明正确的是(BC)
 
 
 A)void MyClss(int x){…}
 
 B)MyClass(int x){…}
 
 C)public MyClass(int x){…}
 
 D)public void MyClass(int x){…}
- 
     在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用(B)关键字来声明父类的这些方法
 
 A)final
 
 B)abstract
 
 C)static
 
 D)void
- 
     
 下面关于接口说法不正确的是(ACD)
 
 
 A)接口的所有方法都是抽象的
 
 B)接口所有的方法一定都是public的
 
 C)用于定义接口的关键字是implements
 
 D)接口中可以定义属性
A. defaukt sratic
C. interface
D. 接口中定义的都是常量
- 
     
 不能用在类(非内部类)上的修饰符是
 
 (DE)
 
 A. final
 
 B. public
 
 C. abstract
 
 D. protected
 
 E. private
A. final表示不能被继承
- 
     已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是(C)
 
 A. interface A extends B,C
 
 B. interface A implements B,C
 
 C. class A implements B,C
 
 D. class A implemens B,implements C
- 
     下面关于继承的叙述正确的是(CD)
 
 A. 在JAVA里只允许单一继承
 
 B. 在JAVA里一个类只能实现一个接口
 
 C. JAVA可以多继承
 
 D. JAVA的类单一继承避免了菱形继承的危险
类单一继承,可以多继承接口
- 研究下面的JAVA代码,输出结果将是(C)
public class Test {
	String s  = "nba";
	public void test(String s) {
		Sysstem.out.println("s:"+s);
		Sysstem.out.println("this.s:"+this.s);
		this.s= s;
		Sysstem.out.println("s"+s);
		Sysstem.out.println("this.s:"+this.s);
	}
	public static void main(String[] args) {
		new Test().test("cba");
	}
}
    A)s:cba this.s:nba s:cba this.s:nba
    
    B)s:nba this.s:nba s:nba this.s:nba
    
    C)s:cba this.s:nba s:cba this.s:cba
    
    D)s:nba this.s:cba s:cba this.s:cba
   
- 给定JAVA代码如下,关于super的用法,以下描述正确的是(C)
class C extes B{
	public C() {
		super();
	}
}
    A)用来调用类B中定义的super()方法
    
    B)用来调用类C中定义的super()方法
    
    C)用来调用类B中的无参构造方法
    
    D)用来调用类B中第一个出现的构造方法
   
super是调用父类构造器的,必须出现子类构造器的第一行
- 
     对于任意一个类,用户所能定义的构造方法的个数至多为(D)
 
 A)0个
 
 B)1个
 
 C)2个
 
 D)任意个
- 
     关于实例方法和类方法,以下描述正确的是(D)
 
 A)实例方法只能访问实例变量
 
 B)类方法既可以访问类变量,也可以访问实例变量
 
 C)类方法只能通过类名来调用
 
 D)实例方法只能通过对象来调用
实例变量 String s ;
类变量 static int pcount;
实例方法public void learn( ){ }
类变量public static void print ( ) { }
A. 也可以访问类变量
B. 类方法只能访问类变量
C. 类方法也可以通过对象来调用
创建对象的时候,会在堆内存开辟一些空间,然后在栈中引用堆内存的地址
静态的也就是类方法类变量出现的早,对象出现的晚
- 
     关于接口的定义和实现,以下描述正确的是(D)
 
 A)接口定义中的方法都只有定义没有实现
 
 B)接口定义中的变量都必须写明final和staic
 
 C)如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码
 
 D)如果类实现一个接口,则必须实现该接口中的所有抽象方法,接口方法未必声明为public
A. JDK1.8以前这句话是对的,但是之后就是错的
public static final可以不写,是默认存在的
- 
下列关于抽象类的说法四个是正确的?(C) 
 
 A)某个抽象类的父类是抽象类,则这个子类必须重写父类的所有抽象方法
 
 B)接口和抽象类是同一回事
 
 C)绝对不能用抽象类去创建对象
 
 D)抽象类中不可以有ab非抽象方法
- 
以下描述不正确的是?(C) 
 
 A)final class 不能被继承
 
 B)final 变量不能被修改
 
 C)final 成员变量不可以在构造方法中赋值
 
 D)final方法不能被覆盖(override)
- 
 以下描述不正确的是(AD )
 
 
 A)abstract class 一定有abstract method(s)
 
 B)abstract class 可以没有abstract method(s)
 
 C)定义abstract class 的目的是为了被继承
 
 D)interface 中定义的方法全是abstract methods
 
 E)inerface 中定义的变量全部是final static 变量
- 
 在Java接口中,使用以下(ABCD)声明语句来定义共有的int型常量MAX。
 
 
 A. public int MAX = 100;
 
 B. final int MAX = 100;
 
 C. public static int MAX = 100;
 
 D. public static final int MAX =100;
- 
在Java中,下面对于构造函数的描述正确的是(D) 
 
 A)类必须显式定义构造函数
 
 B)构造函数的返回类型是void
 
 C)构造函数和类有相同的名称,并且不能带任何参数
 
 D)一个类可以定义多个构造函数
- 
下面Java代码的运行结果是(C); 
class Penguin {
	private String name = null;
	private int health = 0;
	private String sex = null;
	public void Penguin() {
		health = 10;
		sex = "雄";
		System.out.println("执行构造方法");
	}
	public void print() {
		System.out.printlb("企鹅的名字是" + name +",健康值是" + health +",性别是" +sex);
	}
	public static void main(String[] agrs) {
		Penguin pgn = new Penguin();
		pgn.print();
	}
}
    A)企鹅的名字是null,健康值是10,性别是雄
    
    B)执行构造方法,企鹅的名字是null,健康值是0,性别是null
    
    C)企鹅的名字是null,健康值是0,性别是null
    
    D)执行构造方法。企鹅的名字是null,健康值是10,性别是雄
   
- 在Java中,以下程序编译运行后的输出结果为(D)
public class Test {
	int x,yl
	Test(int x ,int y ) {
		this.x = x;
		this.y = y;
	}
	public static void main(String[] args) {
		Test pt1,pt2;
		pt1 = new Test(3,3);
		pt2 = new Test(4,4);
		System.out.println(pt1.x + pt2.x);
	}
}
    A)6
    
    B)3 4
    
    C)8
    
    D)7
   
- 给定一个Java程序Test.java的代码如下所示,编译时,会出现以下(D)情况
class Parent {
	private int i ;
	public int count() {
		return 0;
	]
}
public class Test extends Parent {
	public int count() {
		return i % 9;
	]
}
    A)编译通过
    
    B)在第一行引发编译错误
    
    C)在第二行引发编译错误
    
    D)在第三行引发编译错误
   
- 给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是(B)
class Parent1 {
	Parent (String s) {
 		Sysem.out.println(s);
	}
}
class Parent2 extends Parent1 {
	Parent2() {
		System.out.println("Parent2");
	}
}
public class Child extends Parent2 {
	public static void main (String[] args) {
		Child child = new Child();
	}
}
    A)编译错误:没有找到构造器Child()
    
    B)编译错误:没有找到构造器Parent1()
    
    C)正确运行,没有输出值
    
    D)正确运行,输出结果为:Parent2
   
 
