JavaSE综合测试题

1. 在JAVA中,下列哪些说法是正确的( AB  

Ajava源文件的扩展名为.java

B.写好的java源程序可以直接运行

C.编写的源程序必须先编译后才能运行

D.程序员可以读懂扩展名为.class的文件

2. 下列标识符哪个是合法的(BD)

Aclass 

B$abc

C1234

D_name

3. 下面哪些赋值语句是正确的?(A)

A. long test = 012;

B. int other = (int) true;

C. double d = 0x12345678;

D. byte b = 128;

4. Java中,下列语句不能通过编译的有( BD)

A. String s= “join”+ 3;                

B. int a= “join”+3;

C. int a= ‘a’+5;

D. float f=5+5.5;

 

5. 下列代码运行的结果是( C)

public static void main(String[] args) {

int x = 4;

int y = 5;

if(x++>4 & ++y>5) {   //X=5,Y=6

x++;

}

System.out.println("x=" + x + ",y=" + y);

}

A. x=4,y=5

B. x=4,y=6

C. x=5,y=6

D. x=6,y=6

 

6. 尝试运行下面的代码会发生什么?( B)

public class Test {

public static void main(String[] args) {

boolean m = true;

if (m = false) {

System.out.println("true");

} else {

System.out.println("false");

}

}

}

A. 输出字符串”true”

B. 输出字符串”false”

C. 编译时错误

D. 运行时错误

 

7. 编译并运行以下代码将发生什么?

public static void main(String args[]){

     char digit = 'a';

     for (int i = 0; i < 10; i++){

       switch (digit)

       {

         case 'x' :

         {

         int j = 0;

System.out.println(j);

         }

         default :

         {

         int j = 100;

System.out.println(j);

         }

       }

    }

int i = j;

    System.out.println(i);

}

A. 输出11100

B. 输出10100,然后抛出运行期异常

C. 编译错误,因为变量i不能在main() 方法中被声明2

D. 编译错误,因为变量j不能在main() 方法中被声明2

E. 以上都不对

 

8. class Demo        

{

public static int fun(int c)

{

return  c+=2;

}

public static void main(String[] args)

{

int temp = fun(2);

System.out.println(temp);B

}

}

A.  2

B.  4

C.  6

D.  8

9. 下面哪些函数是public void aMethod(){...}的重载函数?( BCD)

A. void aMethod( ){...}

B. public int aMethod(int a, float b){...}

C. public void aMethod (){...}

D. public float aMethod (int m){…}

10. 在java中,关于数组描述正确的是(B D)

A.数组中的索引下标从1开始

B.存储在数组当中的数据都属于同一数据类型

C.通过数组名.length()能获得数组的长度

D.数组的最大索引下标是数组的长度减1

11. 下面程序的输出结果是什么(D )

int[] arr = new int[10];

System.out.println(arr[0]);

A.编译不通过

B.运行时出错

C.输出null

D.输出0

 

12. 下面哪个语句正确地声明一个整型的二维数组( C)

A. int a[][] = new int[][];

B. int b[10][10] = new int[][];

C. int c[][] = new int[10][10];

 

13. 以下代码输出是(

class Demo {

public static void main(String[] args) {

int i = 0;

int sum = 0;

while (i <= 10) {

i++;

if (i % 2 != 0)

continue;

sum += i;

 

}

System.out.println(sum);

}

}

A.  55

B.  45

C.  35

D.  30

14. 和下面代码能完成相同的选项是(B

class Demo {

public static void main(String[] args) {

int i = 1;

int sum = 0;

while (i <= 100) {

if (i % 2 == 0) {

sum = sum + i;

}

i++;

}

System.out.println(sum);

}

}

A.  for (int x =1; x<=100;x++){ sum=sum+x;}

B.  for (int x =0; x<=100;x+=2){ sum=sum+x;}

C.  for (int x =1; x<=100;x+=2){ sum=sum+x;}

D.上述全对

15. 下列有关类、对象和实例的叙述,正确的是哪一项?(D)

A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别

B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称

C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称

D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称

16. 下面关于java中包的说法正确的是( A)

A. java中可以使用import语句导入包

B. java中可以使用package语句导入包

C. 位于同一个包中的类,不需要导包就可以直接访问

D. 不同的包中可以出现类名相同的类

17. 下列有关抽象类的叙述正确的是哪项?(C)

A.抽象类中一定含有抽象方法

B.抽象类既能被实例化也能被继承

C.抽象类的声明必须包含abstract关键字

D.抽象类中不能有构造方法

18. 下列有关接口的叙述错误的是哪项?(D)

A.接口中只能包含抽象方法和常量

B.一个类可以实现多个接口

C.类实现接口时必须实现其中的方法

D.接口不能被继承

 

19. 下列关于类的继承的描述,正确的有( CD 

A. 一个类可以同时继承多个父类

B. 一个类可以具有多个子类

C. 子类会自动拥有父类所有的方法

D. 一个类继承另一个类需要使用 extends 关键字

20. 下列选项中关于java中this关键字的说法错误的有( B )  

A. this关键字是一个对象的引用

B. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行

C. this可用于静态方法中

 

21. 下列关于构造函数的说法正确的是( B )

A. 方法名必须与类名相同

B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数

C. 我们在定义一个类时,必须要声明至少一个构造函数

D. 构造函数中不能使用return语句(这个是错的,可以rutrun;)

22. 编译并运行以下代码将发生什么?(D  )

class MyClass {

int x;

MyClass(int i) {

x = i;

}

public static void main(String args[]) {

MyClass m1 = new MyClass(100);

MyClass m2 = new MyClass(100);

if (m1.equals(m2)) {

System.out.println("Both are equal");

} else {

System.out.println("Both are not equal");

}

}

}

A. 代码编译时报出错误提示信息“equals() 方法未定义

B. 编译通过,抛出运行期异常.

C. 输出Both are equal.

D. 输出Both are not equal

 

23. 运行以下的main()方法,结果是?(  C)

1   public static void main(String[] args)

2   {

3      String myString;

4      int x = 100;

5     

6      if (x < 100) myString = "x is less than 100";

7      if (x > 100) myString = "x is greater than 100";

8      System.out.println(myString.length());

9   }

A. 编译时报出错误提示信息“变量myString没有被初始化

B. 编译通过

C. 编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度

D. 以上都不对

 

 

24. 关于继承, 以下说法正确的是: (C)

AJava中只支持单继承, 一个类只能继承一个类, 但是可以有多个子类

B.一个类如果没有自己写无参构造方法, 那么子类将无法继承

C.子类可以当父类用, 父类不可以当子类用

D. 子类重写父类方法时访问权限不能更低

 

 

25. 在Java中,如果要在字符串类型对象s="java"中,得到字符 'v' 出现的位置,可使用下面的那个方法?

A. s.matches('v');

B. s.charAt('v');

C. s.indexOf('v');

D. s.substring('v');

 

26. 下列关于ArrayListLinkedList集合的说法正确是有( ABC )

A. ArrayList集合底层是数组实现,该集合线程不安全

B. LinkedList集合底层是链表结构,适合做元素的增删操作

C. 这三个集合都是List接口的实现类

 

27. 下面程序的输出结果是什么( C )

Set set= new HashSet();

set.add("aaa");

set.add("bbb");

set.add("aaa");

System.out.println(set.size());

A. 编译不通过

B. 运行时出错

C. 输出3

D. 输出2

 

28. 下列哪些方法是ArrayListLinkedList集合中都定义的(  AC)

A. add(Object o)

B. removeFirst()

C. remove(Object o)

D. add(int index,Object o)

 

29. 下列哪些集合属于Collection体系的子类(  D)

A. TreeMap

B. ArrayList

C. Hashtable

D. HashSet

 

30. 下列关键字能和try语句一起使用的是(  CD)

A. final

B. finalize

C. finally

D. catch

 

31. 下面程序的运行结果是(   A )

  FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”);

  fos.write(“abc”);

  fos.close();

A.在C盘创建文件demo.txt,但文件是空的

B.在C盘创建文件demo.txt,并写入数据abc

C.将C盘已有的文件demo.txt中追加写入abc

D.编译失败

 

32. 下列关于Java中文件输入输出的说法正确的是(  BD)

A. 在Java中,文件的输入输出功能是通过流来实现的

B. 如果要把数据写入到一个文件中,需要创建一个输入流对象

C. 字符流在某些方面比如汉字的处理,比字节流更方便

D. 可以通过Reader r = new Reader("c:\\pet.txt")创建一个输入流对象

 

33. 请看如下代码:

BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));

BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt"));

String line = null;

while ((line = br.readLine()) != null) {

bw.write(line);

bw.newLine();

bw.flush();

}

bw.close();

br.close();

它表达的意思是?(  A)

A. c盘目录下的a.txt文件内容复制到d盘目录下的b.txt

B. d盘目录下的b.txt文件内容复制到c盘目录下的a.txt

C. 读取c盘目录下a.txt文件,输出在控制台

D. 把控制台的内容写入到d盘目录下的b.txt文件中

 

 

34. 下列哪个关键字可以用于实现同步?( C )

A. native

B. static

C. synchronized

D. abstract

 

35. 下列哪些方法可以让线程中断? (AD  )

A. sleep

B. start

C. notify

D. wait

 

36. 启动线程调用哪个方法? ( B )

A. run()

B. start()

C. play()

D. go()

 

 

37. 下面哪项不是TCP的特点? (  D)

A.面向连接

B.数据不可靠

C.传输速度慢

D.对数据大小无限制

 

38. TCP协议的服务器的Socket对象是下面哪一个类? (C  )

ASocket

BInputStream

CServerSocket

DOutputStream

 

39. 正则表达式中可以表示所有的单词字符信息的是下面哪个规则:(  C)

A\W

B\w

C[a-zA-Z]

D[a-zA-Z_0-9]

 

40. 获取Class类型的对象的三种方式是:(  ABD)

B. class静态属性

A. Object类的getClass()

D. Class类的forName()静态方法

C. 自己创建Class对象


1. 把c:\a.jpg复制到d:\b.jpg(任意一种方式实现即可)

package wbb;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class test1 {
    public static void main(String[] args) throws Exception {
        BufferedInputStream bi = new BufferedInputStream(new FileInputStream(
                "c:\\a.jpg"));
        BufferedOutputStream bo = new BufferedOutputStream(
                new FileOutputStream("d:\\b.jpg"));

        byte[] b = new byte[1024];
        int len = 0;
        while ((len = bi.read(b)) != -1) {
            bo.write(b, 0, len);
            bo.flush();
            bo.close();
        }
    }
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  1. HashMap的键是Integer,值是String,存储三对元素,并遍历。(根据键找值的方式遍历)
package wbb;

import java.util.HashMap;
import java.util.Set;
public class test2 {
    public static void main(String[] args) {
        HashMap<Integer, String> hm = new HashMap<Integer, String>();
        hm.put(1, "AWM");
        hm.put(2, "M24");
        hm.put(3, "毛瑟");

        Set<Integer> keySet = hm.keySet();
        for (Integer key : keySet) {
            System.out.println(key + "......." + hm.get(key));
        }

    }
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3.键盘录入5个数字,使用冒泡排序进行排序

package wbb;

import java.util.Scanner;
public class test3 {

    public static void main(String[] args) {
        System.out.println("输入五个数字:");
        int[] arr = new int[5];
        for (int i = 0; i < 5; i++) {
            Scanner sc = new Scanner(System.in);
            arr[i] = sc.nextInt();
        }
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        System.out.println("排序后为:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

4.请在main方法里面实现统计一个字符串的英文大写字符,英文小写字符及数字字符分别有多少个的程序代码,并输出统计结果

package wbb;
public class Prac04 {
    public static void main(String[] args) {
        String s = "awMCKN232";
        char[] c = s.toCharArray();
        int x = 0;//
        int y = 0;
        int z = 0;
        for (int i = 0; i < c.length; i++) {
            if (Character.isLowerCase(c[i])) {
                x++;
            }
            if (Character.isUpperCase(c[i])) {
                y++;
            }
            if (Character.isDigit(c[i])) {
                z++;
            }
        }
        System.out.println("小写字母有:" + x + "个");
        System.out.println("大写字母有:" + y + "个");
        System.out.println("数字有:" + z + "个");
    }
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值