Java基础刷题

  • Post author:
  • Post category:java


文章目录

  1. 下面哪些是合法的变量名?(BCDE)

    A. 2variable

    B. variable2

    C. _whatavariable

    D. _3_

    E. $anothervar

    F. #myvar

    G. $_¥

A. 不能以数字开头

F. 不能以#开头

G. 不能以中文¥命名

标识符的规范:26个字母,数字,_,$,数字不要开头


  1. 有一段java应用程序,类名是A1,那么保存它的源文件名可以是(AD)

    A) A1.java

    B) a1.class

    C) a1

    D) D.java

    E) 都对
  1. 如果一个类中的类名字前面没有public的情况下,类名和文件名没有任何约束
  2. 一个java文件中可以有多个类
  3. 如果一个类前面有public来修饰,那么找个类必须和文件名字一致
  4. 一个类中只能有一个public类,其余的类都不能有public
  1. java基本数据类型中,表数范围最大的是(D)

    A) short

    B) long

    C) int

    D) float

八种数据基本类型:

byte 1字节

short 2字节

int 4字节

long 8字节

float 4字节

double 8字节

上述的数据类型的表数范围:从上到下递增的。

注意:float表示范围比long范围大

  1. 以下选项中循环结构合法的是(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:,是用来标识循环的

  1. 编译运行以下程序后,关于输出结果的说明正确的是(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来转换

  1. 下面的程序输出什么(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. 编译不通过

局部变量在使用之前一定要初始化

  1. 执行语句int i= 1,j = ++i ; 后i与j的值分别为(D);

    A. 1与1

    B. 2与1

    C. 1与2

    D. 2与2

如果多个变量定义在同一行,用逗号分隔


  1. 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[])
  2. 在不考虑极值的情况下,下面那个一个循环会导致死循环?(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. 不循环

  1. Sysem.out.println(‘5’+2);的输出结果应该是(D);

    A. 52

    B. 7

    C. 2

    D. 55

char ‘5’ == int 53

char 转成int


  1. 指出正确的表达式( 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


  1. 下面语句在编译时不会出现错误或警告的是(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需要强转


  1. 下面的方法,当输入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类型需要强转,所以会报错


  1. 下面的代码中,执行之后 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


  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

  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下面的第一行

  1. 下面程序运行结果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的值传递

  1. 给定如下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

  1. 给定如下java代码,编译运行时,结果是(A)
class Test{
	public staic void main(Sirng[] args) {
		forint i = 0 ; i< 3 ; i ++) {
			System.out.println(i);
		}
		Systemout.print(i);
	}
}

A)编译时报错

B)正确运行,输出012

C)正确运行,输出123

D)正确运行,输出0123

  1. 以下哪些是逻辑短路运算符?(BD)

    A)&

    B)&&

    C)|

    D)||

  2. 以下哪些语句编译不会报错?(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

  1. 给出以下代码,请问该程序的运行结果是什么?(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


  1. 下面方法编译错误的是

    (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 方法中为一个 第一个含义就是终止找个方法的调用

  1. 下面关于java语言中方法的说法错误的是(CD)

    A)所有的具体类中方法必须有方法体

    B)参数传递时值传递的方式

    C)如果方法没有返回值必须声明返回值void

    D)如果方法定义返回void,则方法中不能出现return语句

A. 方法体指的就是{ },与之对应的抽象类可以没有方法体

C. 构造器可以没有void ,public 类名(){ }

D. return 在 void 方法中为一个 第一个含义就是终止找个方法的调用


  1. Java表达式”4&5″的结果是什么?(C)


    A. 0

    B. 5

    C. 4

    D. 1

& 第一个用途逻辑位运算,可以做未运算,做二进制的数的位运算

  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”

  1. 下面数组定义错误的是(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};

  2. 在Java中,下列关于方法重载的说法中错误的是(CD)


    A. 方法重载要求方法名称必须相同

    B. 重载方法的参数列表必须不一致

    C. 重载方法的返回类型必须一致

    D. 一个方法在所属的类中只能被重载一次

  3. 给定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){ }


  1. 下面关于构造方法的说法正确的是(AB)


    A. 构造方法不能被继承

    B. 构造方法不能被重写

    C. 构造方法不能被重载

    D. 构造方法不能声明为private
  2. 下面关于类的说法,不正确的是(D )

    A. 类是同种属性和方法抽象

    B. 类属于Java语言中的引用数据类型

    C. 对象是类的实例

    D. 类就是对象

八种基本数据类型

三种引用数据类型:类,接口,数组

  1. Java语言中哪个包是被自动导入的(B)

    A)java.util

    B)java.lang

    C)java.default

    D)java.io

  2. 有一个类MyClass,它的构造方法声明正确的是(BC)


    A)void MyClss(int x){…}

    B)MyClass(int x){…}

    C)public MyClass(int x){…}

    D)public void MyClass(int x){…}
  3. 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用(B)关键字来声明父类的这些方法

    A)final

    B)abstract

    C)static

    D)void

  4. 下面关于接口说法不正确的是(ACD)


    A)接口的所有方法都是抽象的

    B)接口所有的方法一定都是public的

    C)用于定义接口的关键字是implements

    D)接口中可以定义属性

A. defaukt sratic

C. interface

D. 接口中定义的都是常量


  1. 不能用在类(非内部类)上的修饰符是

    (DE)

    A. final

    B. public

    C. abstract

    D. protected

    E. private

A. final表示不能被继承

  1. 已定义两个接口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
  2. 下面关于继承的叙述正确的是(CD)

    A. 在JAVA里只允许单一继承

    B. 在JAVA里一个类只能实现一个接口

    C. JAVA可以多继承

    D. JAVA的类单一继承避免了菱形继承的危险

类单一继承,可以多继承接口

  1. 研究下面的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

  1. 给定JAVA代码如下,关于super的用法,以下描述正确的是(C)
class C extes B{
	public C() {
		super();
	}
}

A)用来调用类B中定义的super()方法

B)用来调用类C中定义的super()方法

C)用来调用类B中的无参构造方法

D)用来调用类B中第一个出现的构造方法

super是调用父类构造器的,必须出现子类构造器的第一行

  1. 对于任意一个类,用户所能定义的构造方法的个数至多为(D)

    A)0个

    B)1个

    C)2个

    D)任意个
  2. 关于实例方法和类方法,以下描述正确的是(D)

    A)实例方法只能访问实例变量

    B)类方法既可以访问类变量,也可以访问实例变量

    C)类方法只能通过类名来调用

    D)实例方法只能通过对象来调用

实例变量 String s ;

类变量 static int pcount;

实例方法public void learn( ){ }

类变量public static void print ( ) { }

A. 也可以访问类变量

B. 类方法只能访问类变量

C. 类方法也可以通过对象来调用

创建对象的时候,会在堆内存开辟一些空间,然后在栈中引用堆内存的地址

静态的也就是类方法类变量出现的早,对象出现的晚

  1. 关于接口的定义和实现,以下描述正确的是(D)

    A)接口定义中的方法都只有定义没有实现

    B)接口定义中的变量都必须写明final和staic

    C)如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码

    D)如果类实现一个接口,则必须实现该接口中的所有抽象方法,接口方法未必声明为public

A. JDK1.8以前这句话是对的,但是之后就是错的

public static final可以不写,是默认存在的

  1. 下列关于抽象类的说法四个是正确的?(C)

    A)某个抽象类的父类是抽象类,则这个子类必须重写父类的所有抽象方法

    B)接口和抽象类是同一回事

    C)绝对不能用抽象类去创建对象

    D)抽象类中不可以有ab非抽象方法

  2. 以下描述不正确的是?(C)

    A)final class 不能被继承

    B)final 变量不能被修改

    C)final 成员变量不可以在构造方法中赋值

    D)final方法不能被覆盖(override)


  3. 以下描述不正确的是(AD )


    A)abstract class 一定有abstract method(s)

    B)abstract class 可以没有abstract method(s)

    C)定义abstract class 的目的是为了被继承

    D)interface 中定义的方法全是abstract methods

    E)inerface 中定义的变量全部是final static 变量


  4. 在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;

  5. 在Java中,下面对于构造函数的描述正确的是(D)

    A)类必须显式定义构造函数

    B)构造函数的返回类型是void

    C)构造函数和类有相同的名称,并且不能带任何参数

    D)一个类可以定义多个构造函数

  6. 下面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,性别是雄

  1. 在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

  1. 给定一个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)在第三行引发编译错误

  1. 给定如下一个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



版权声明:本文为PPDY93原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。