Java 程序设计题库 🔍登录 / 注册

一、选择题

#1 CHOICE
编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展句为( )。
参考答案:
D
点击评论后加载...
#2 CHOICE
设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
参考答案:
B (解析: ++x=2, z--先取3, 3/2=1, y=2+1=3)
点击评论后加载...
#3 CHOICE
表达式-3%-5的结果是( )。
参考答案:
B (解析: 取模结果符号取决于被除数)
点击评论后加载...
#4 CHOICE
为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
参考答案:
A (解析: 类名直接调用需static)
点击评论后加载...
#5 CHOICE
如下哪个是合法的Java中的标识符( )。
参考答案:
B
点击评论后加载...
#6 CHOICE
下列哪一个import命令可以使我们在程序中创建输入/输出流对象( )。
参考答案:
C
点击评论后加载...
#7 CHOICE
下列选项中不是面向对象程序设计方法的特点的是?( )
参考答案:
A
点击评论后加载...
#8 CHOICE
下列有关父类属性和方法继承规则的描述错误的是( )。
参考答案:
D (解析: Default权限仅同包可见,D表述不严谨)
点击评论后加载...
#9 CHOICE
Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )
参考答案:
B
点击评论后加载...
#10 CHOICE
以下哪个不是Java的原始数据类型?( )
参考答案:
B (Boolean是包装类)
点击评论后加载...
#11 CHOICE
表达式 5 + 3 + "Hello" 的结果是什么?( )
参考答案:
C
点击评论后加载...
#12 CHOICE
以下代码片段的输出是什么? int i = 10; System.out.println(i++); System.out.println(++i);
参考答案:
B
点击评论后加载...
#13 CHOICE
下面哪一项不是加载驱动程序的方法? ( )
参考答案:
A
点击评论后加载...
#14 CHOICE
关于构造方法,以下描述错误的是?( )
参考答案:
B
点击评论后加载...
#15 CHOICE
封装性的主要目的是?( )
参考答案:
B
点击评论后加载...
#16 CHOICE
在Java中,所有类的根父类是( )。
参考答案:
C
点击评论后加载...
#17 CHOICE
一个类可以实现( )个接口。
参考答案:
D
点击评论后加载...
#18 CHOICE
为按钮JButton添加点击事件监听器,通常使用( )方法。
参考答案:
A
点击评论后加载...
#19 CHOICE
在try-catch中,如果try块和finally块中都有return语句,那么( )。
参考答案:
C
点击评论后加载...
#20 CHOICE
进程和线程的一个根本区别是( )。
参考答案:
C
点击评论后加载...
#21 CHOICE
以下哪一个变量命名方式是合法的?( )
参考答案:
D
点击评论后加载...
#22 CHOICE
Java程序的跨平台特性是由什么实现的? ( )
参考答案:
A
点击评论后加载...
#23 CHOICE
Staterment类提供 3 种执行方法,用来执行更新操作的是( )。
参考答案:
B
点击评论后加载...
#24 CHOICE
在Swing中,用于创建按钮的组件是?( )
参考答案:
D
点击评论后加载...
#25 CHOICE
使用JDBC连接数据库时,用于执行SQL语句并返回结果的对象是?( )
参考答案:
B
点击评论后加载...
#26 CHOICE
关于final关键字,以下描述错误的是?( )
参考答案:
C
点击评论后加载...
#27 CHOICE
在继承中,关于super关键字,以下说法不正确的是?( )
参考答案:
C
点击评论后加载...
#28 CHOICE
以下哪个异常是受检异常。( )
参考答案:
C
点击评论后加载...
#29 CHOICE
以下哪个是Java应用程序的入口方法?( )
参考答案:
D
点击评论后加载...
#30 CHOICE
在Java程序运行中,( )负责字节码的解释和执行。
参考答案:
B
点击评论后加载...
#31 CHOICE
声明并创建一个按钮对象b,应该使用的语句是?( )
参考答案:
A
点击评论后加载...
#32 CHOICE
下列哪项不是Java语言中所规定的注释样式?( )
参考答案:
D
点击评论后加载...
#33 CHOICE
下列哪项是不能改变线程状态的方法?( )
参考答案:
C
点击评论后加载...
#34 CHOICE
有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( )。
参考答案:
A
点击评论后加载...
#35 CHOICE
下面程序段执行后b的值是? Integer integ = new Integer(9); boolean b = integ instanceof Object;
参考答案:
B
点击评论后加载...
#36 CHOICE
关于 for循环和 while循环的说法哪个正确?( )
参考答案:
B
点击评论后加载...
#37 CHOICE
Java中void关键字的含义是( )。
参考答案:
A
点击评论后加载...
#38 CHOICE
关于继承的说法正确的是( )。
参考答案:
B
点击评论后加载...
#39 CHOICE
异常包含下列哪些内容?( )
参考答案:
A
点击评论后加载...
#40 CHOICE
JDBC连接数据库所需的参数有( )。
参考答案:
D
点击评论后加载...
#41 CHOICE
对于已经被定义过可能抛出异常的语句,在编程时( )。
参考答案:
A
点击评论后加载...
#42 CHOICE
下列哪个关键字用于创建类的实例? ( )
参考答案:
C
点击评论后加载...
#43 CHOICE
实现多态性的主要方式是什么?( )
参考答案:
D
点击评论后加载...
#44 CHOICE
关于switch语句,以下说法正确的是?( )
参考答案:
C
点击评论后加载...
#45 CHOICE
在Java中,以下哪个不是合法的标识符?( )
参考答案:
C
点击评论后加载...
#46 CHOICE
以下代码体现了面向对象的什么特性? Animal myAnimal = new Dog(); myAnimal.sound();\\输出“woof!”
参考答案:
C
点击评论后加载...
#47 CHOICE
关于JDBC的事务管理,以下说法正确的是?( )
参考答案:
D
点击评论后加载...
#48 CHOICE
使用JDBC时,哪个接口代表与数据库的连接?( )
参考答案:
C
点击评论后加载...
#49 CHOICE
关于ResultSet,以下说法错误的是?( )
参考答案:
D
点击评论后加载...
#50 CHOICE
关于接口的默认方法(Default Method),以下说法正确的是?( )
参考答案:
B
点击评论后加载...
#51 CHOICE
关于线程的状态,以下说法错误的是?( )
参考答案:
B
点击评论后加载...
#52 CHOICE
若要完成数据库操作,可以在程序中引入( )包。
参考答案:
B
点击评论后加载...
#53 CHOICE
以下关键字中,( )不是类及类成员的访问控制符。
参考答案:
C
点击评论后加载...
#54 CHOICE
关于静态代码块,以下说法正确的是?( )
参考答案:
C
点击评论后加载...
#55 CHOICE
以下代码片段执行后count的值为( )。 class Counter { static int count = 0; Counter() { count++; } } public class Main{ public static void main(String[] args){ new Counter(); new Counter(); new Counter(); }
参考答案:
C
点击评论后加载...
#56 CHOICE
以下哪个运算符的优先级最高? ( )
参考答案:
C
点击评论后加载...
#57 CHOICE
在Java中,如何设置线程的优先级? ( )
参考答案:
A
点击评论后加载...
#58 CHOICE
关于for循环和while循环,以下说法正确的是?( )
参考答案:
C
点击评论后加载...
#59 CHOICE
关于接口,以下说法正确的是?( )
参考答案:
C
点击评论后加载...
#60 CHOICE
以下关于静态方法的描述,哪个是正确的?( )。
参考答案:
B
点击评论后加载...
#61 CHOICE
以下哪个异常不是受检异常。( )
参考答案:
A
点击评论后加载...
#62 CHOICE
以下代码的输出结果是?( ) class Test{ static int x = 10; int y = 20; } public class Main{ public static void main(String[]args){ Test t1 = new Test(); Test t2 = new Test(); t1.x=100; t1.y=200; System.out.println(t2.x + “,” + t2.y); }}
参考答案:
B
点击评论后加载...
#63 CHOICE
在Swing中,( )布局管理器将容器划分为等大小的网格?
参考答案:
C
点击评论后加载...
#64 CHOICE
以下方法中,( )方法可以使线程从运行状态进入阻塞状态。
参考答案:
D
点击评论后加载...
#65 CHOICE
下列哪一个import命令可以使我们在程序中创建输入/输出流对象( )。
参考答案:
C
点击评论后加载...
#66 CHOICE
关于synchronized关键字,以下说法错误的是?( )
参考答案:
D
点击评论后加载...
#67 CHOICE
( )命令用于编译Java源文件。
参考答案:
B
点击评论后加载...
#68 CHOICE
下面对数组的声明并初始化,正确的是( )。
参考答案:
D
点击评论后加载...
#69 CHOICE
关于网络编程,以下说法正确的是?( )
参考答案:
D
点击评论后加载...

二、填空题

#70 FILL
Java源程序文件的后缀名为______,编译后生成的字节码文件后缀名为______。
参考答案:
.java 和 .class
点击评论后加载...
#71 FILL
创建线程的两种方式分别为:继承______类和实现______接口。
参考答案:
Thread 和 Runnable
点击评论后加载...
#72 FILL
在ResultSet类中,用于获取下一行数据并判断的方法为______。
参考答案:
next()
点击评论后加载...
#73 FILL
使用______关键字可以手动抛出一个异常。
参考答案:
throw
点击评论后加载...
#74 FILL
Java的三个版本为______、______和JavaEE。
参考答案:
JavaSE 和 JavaME
点击评论后加载...
#75 FILL
使用JDBC连接数据库时,通常使用______类的______方法获取连接。
参考答案:
DriverManager和getConnection()
点击评论后加载...
#76 FILL
在JDBC连接数据库的程序中,我们常用______类的next()方法循环获取查询结果。
参考答案:
ResultSet
点击评论后加载...
#77 FILL
Java的四种访问控制级别有:public、______、______和默认(无关键字)四种。
参考答案:
private 和 protected
点击评论后加载...
#78 FILL
想要在Java图形界面实现按钮点击触发时间,需要为______组件添加监听器,添加监听器的方法为______。
参考答案:
JButton 和 addActionListener
点击评论后加载...
#79 FILL
为方法设置异常抛出的关键字有______和______。(可调换顺序)
参考答案:
throws 和 throw
点击评论后加载...
#80 FILL
在有多线程需求的Java程序中,可以使用______关键字为固定代码块设置互斥访问。
参考答案:
synchronized
点击评论后加载...
#81 FILL
Java中的基本字节输入流和输出流分别是:______类和______类。
参考答案:
InputStream 和 OutputStream
点击评论后加载...
#82 FILL
在Java程序中,通过类的定义只能实现____继承,但通过接口的定义可以实现____重继承关系。
参考答案:
单(Single) 和 多(Multiple)
点击评论后加载...
#83 FILL
设x = 2,则表达式 (x++)/3 的值是____。
参考答案:
0 (整除)
点击评论后加载...
#84 FILL
导入mypackage包中的所有类的命令是_______。
参考答案:
import mypackage.*;
点击评论后加载...
#85 FILL
定义类的关键字是______,定义接口的关键字是______。
参考答案:
class 和 interface
点击评论后加载...
#86 FILL
同一个类中多个方法具有相同的方法名,不同的参数列表称为方法的______。
参考答案:
重载 (Overload)
点击评论后加载...
#87 FILL
手动处理异常的代码块有三个关键字,分别是______、______和______。
参考答案:
try, catch, finally
点击评论后加载...
#88 FILL
定义一个整型一维数组arr的语句是_______。
参考答案:
int[] arr; 或 int arr[];
点击评论后加载...
#89 FILL
在类中,用于指向当前对象自身引用的关键字是______。
参考答案:
this
点击评论后加载...
#90 FILL
被static关键字修饰的成员变量属于______,而不是属于某个实例对象。
参考答案:
类 (Class)
点击评论后加载...
#91 FILL
在Swing中,最顶层的容器通常是______或JApplet。
参考答案:
JFrame
点击评论后加载...
#92 FILL
JDBC连接数据库的URL中,通常需要指定数据库的协议、子协议、主机、端口和_______。
参考答案:
数据库名 (Database Name)
点击评论后加载...
#93 FILL
多态的存在有三个前提:1. 要有继承关系;2. 要有方法重写;3._______。
参考答案:
父类引用指向子类对象
点击评论后加载...
#94 FILL
为了解决多线程并发访问共享资源可能导致的数据不一致问题,需要使用_______机制。
参考答案:
同步 (Synchronization)
点击评论后加载...

三、判断题

#95 JUDGE
Java是一种编译型语言,不是解释型语言。
参考答案:
错 (Java是半编译半解释)
点击评论后加载...
#96 JUDGE
接口中所有的方法都是抽象的。
参考答案:
错 (Java 8+支持default/static方法)
点击评论后加载...
#97 JUDGE
Error和Exception都是Throwable类的子类。
参考答案:
对
点击评论后加载...
#98 JUDGE
在Java Swing组件中,JPanel可以作为最外层的容器。
参考答案:
错 (应为JFrame等)
点击评论后加载...
#99 JUDGE
在一个Java源程序文件中,只能定义一个public类。
参考答案:
对
点击评论后加载...
#100 JUDGE
当声明一个类时,必须给出至少一个构造方法。
参考答案:
错 (编译器会提供默认无参构造)
点击评论后加载...
#101 JUDGE
当类在声明时没有给出访问控制修饰符,则它可以被同一个包下的其他类引用。
参考答案:
对
点击评论后加载...
#102 JUDGE
如果要实现类似“东西南北中”的布局,可以使用BorderLayout。
参考答案:
对
点击评论后加载...
#103 JUDGE
算术运算符的优先级高于关系运算符。
参考答案:
对
点击评论后加载...
#104 JUDGE
使用break关键字可以从循环中跳出。
参考答案:
对
点击评论后加载...
#105 JUDGE
Java中所有类的父类都是Object。
参考答案:
对
点击评论后加载...
#106 JUDGE
数据库访问程序中,推荐使用PreparedStatement是因为其运行更快且更安全。
参考答案:
对
点击评论后加载...
#107 JUDGE
Java程序运行时会自动打印异常信息,所以我们不需要做异常处理。
参考答案:
错
点击评论后加载...
#108 JUDGE
当进程从等待态变为就绪态时,表示进程将立即执行。
参考答案:
错 (需等待CPU调度)
点击评论后加载...
#109 JUDGE
一个线程只能属于一个进程,但一个进程可以拥有多个线程。
参考答案:
对
点击评论后加载...
#110 JUDGE
Statement类中的executeUpdate()方法用于执行数据查询语句。
参考答案:
错 (查询用executeQuery)
点击评论后加载...
#111 JUDGE
setLayout(new GridLayout())方法可以为容器设置网格布局。
参考答案:
对
点击评论后加载...
#112 JUDGE
Java类可以通过继承多个父类来实现获得不同的特性。
参考答案:
错 (Java单继承)
点击评论后加载...
#113 JUDGE
同一个类中实现方法重载时,必须让方法之间的返回类型不同。
参考答案:
错 (只看参数列表)
点击评论后加载...
#114 JUDGE
“a=1;System.out.print(a++);”这段程序运行的结果为1。
参考答案:
对
点击评论后加载...
#115 JUDGE
Java中布尔类型的常量有两种,它们是 true 和 false。
参考答案:
对
点击评论后加载...
#116 JUDGE
Java中用于定义小数的关键字有 float 和 double,后者精度高于前者。
参考答案:
对
点击评论后加载...
#117 JUDGE
Java程序在运行时会自动打印异常信息,所以可以不对异常做处理。
参考答案:
错
点击评论后加载...
#118 JUDGE
Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
参考答案:
错 (GC自动回收)
点击评论后加载...
#119 JUDGE
进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程。
参考答案:
对
点击评论后加载...
#120 JUDGE
当声明一个类时,可以不给出构造方法。
参考答案:
对 (有默认)
点击评论后加载...
#121 JUDGE
程序中要尽量少添加注释,因为注释增多会降低程序运行速度。
参考答案:
错 (编译时忽略)
点击评论后加载...
#122 JUDGE
如果要实现类似“东西南北中”的布局,可以使用GridLayout。
参考答案:
错 (应为BorderLayout)
点击评论后加载...
#123 JUDGE
拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。
参考答案:
对
点击评论后加载...
#124 JUDGE
在类中实现一个接口,则一定要实现接口中的所有方法。
参考答案:
对 (除非该类是抽象类)
点击评论后加载...

四、程序题

#125 CODE
程序中声明了学生和大学生两个类,大学生类继承了学生类并多出了“生活费”属性,请将代码补充完整, public class Student{ private String name; public Student(String name) { this.name = name; } } public class Undergraduate ______ ______ { private int livingExpensive; public Undergraduate(String name, int livingExpensive) { ______(______); this.livingExpensive = livingExpensive; } }
参考答案:
extends Student, super(name)
点击评论后加载...
#126 CODE
请将横线处代码补充完整。 public class JdbcTest{ public static void main(String[] args) { String url = "jdbc:mysql://127.0.0.1:3306/myDatabase"; String username = "root"; String password = "123456"; Connection conn; try { conn = ______ . ______(url, username, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.______("select * from user"); while(rs.next()) { System.out.println(rs.getString(1) + "\t" + rs.getString(2)); } rs.close(); stmt.close(); conn.close(); } catch(Exception e) { e.printStackTrace(); } } }
参考答案:
DriverManager, getConnection, executeQuery
点击评论后加载...
#127 CODE
请将横线处代码补充完整,使售票功能可以多线程运行(需要在售票环节添加同步)。 class Ticket implements ______ { private int tickCount = 100; @Override public void run() { ______(this) { while(true) { if(tickCount > 0) { try { Thread.______(10); //线程休眠10毫秒 } catch(Exception e){ e.printStackTrace(); } tickCount--; } else { break; } } } } }
参考答案:
Runnable, synchronized, sleep
点击评论后加载...
#128 CODE
请将下列代码补充完整,使之能够在构造方法中完成参数初始化,并将圆形面积的计算结果输出: public class Circle { private static final double PI = 3.14; private double radius; public Circle(double radius) { ______.radius = radius; } public double getArea() { return ______; } public static void main(String[] args) { Circle circle = new Circle(2.0); double area = circle. getArea() ; System.out.println("圆形的面积是" + area); } }
参考答案:
this, PI * radius * radius
点击评论后加载...
#129 CODE
请将以下代码补充完整,使程序可以建立数据库连接并查询数据。 public static void main(String[] args){ String url = "jdbc:mysql://127.0.0.1:3306/database1"; String username = "test1"; String password = "123456"; try { Class.______("com.mysql.cj.jdbc.Driver"); Connection conn = ______.getConnection(url, username, password); Statement stmt = conn.createStatement(); ______ rs = stmt.executeQuery("select * from employee"); while( ______) { // 内容输出 } } catch(Exception e) { e.printStackTrace(); } finally { rs.close(); stmt.close(); conn.close(); } }
参考答案:
forName, DriverManager, ResultSet, rs.next()
点击评论后加载...
#130 CODE
请将横线处代码补充完整,使代码能够输出100~1000之间的水仙花数。水仙花数是指其本身等于它的个位、十位和百位的立方和(原数=个位3+十位3+百位3)。 public static void main(String[] args) { for (int i = 100; i < 1000; i++) { int ge = i % 10; int shi = ______; int bai = i / 100; if (i == ( ______)) { System.out.println("水仙花数:" + ______ ); } } }
参考答案:
i / 10 % 10, ge*ge*ge + shi*shi*shi + bai*bai*bai, i
点击评论后加载...

五、编程题

#131 PROG
模拟一个火车票售票系统。假设有10张票,由三个窗口(三个线程)同时出售。 要求: 1. 使用实现Runnable接口的方式创建线程。 2. 保证售票过程的线程安全(使用synchronized关键字),避免出现超卖(同一张票被多个窗口卖出)的问题。 3. 输出每个窗口售出的票号。
参考答案:
class TicketWindow implements Runnable { private int tickets = 10; @Override public void run() { while (true) { synchronized (this) { if (tickets > 0) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + " 售出票号: " + tickets--); } else { break; } } } } } public class Main { public static void main(String[] args) { TicketWindow tw = new TicketWindow(); new Thread(tw, "窗口1").start(); new Thread(tw, "窗口2").start(); new Thread(tw, "窗口3").start(); } }
点击评论后加载...
#132 PROG
设计一个雇员(Employee)类和管理者(Adminer)类。 1. Employee包含name, salary属性和show()方法。 2. Adminer继承Employee,添加fee(补贴)属性,重写show()方法以显示补贴。 3. 编写测试类,声明两个对象分别指向Employee和Adminer,并输出信息。
参考答案:
class Employee { String name; double salary; public Employee(String name, double salary) { this.name = name; this.salary = salary; } public void show() { System.out.println("姓名:" + name + ", 工资:" + salary); } } class Adminer extends Employee { double fee; public Adminer(String name, double salary, double fee) { super(name, salary); this.fee = fee; } @Override public void show() { super.show(); System.out.println("补贴:" + fee); } } public class Test { public static void main(String[] args) { Employee emp = new Employee("张三", 5000); Employee admin = new Adminer("李四", 8000, 2000); emp.show(); admin.show(); } }
点击评论后加载...
#133 PROG
假设有一个数组a,其中的值为{12,6,35,4,10},请在程序中使用冒泡排序进行排序,并声明一个FileOutputStream类的对象,向名为myText.txt文件中写入排序的结果。
参考答案:
import java.io.FileOutputStream; public class SortToFile { public static void main(String[] args) { int[] a = {12, 6, 35, 4, 10}; // 冒泡排序 for (int i = 0; i < a.length - 1; i++) { for (int j = 0; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1]) { int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } // 写入文件 try (FileOutputStream fos = new FileOutputStream("myText.txt")) { StringBuilder sb = new StringBuilder(); for (int num : a) { sb.append(num).append(" "); } fos.write(sb.toString().getBytes()); } catch (Exception e) { e.printStackTrace(); } } }
点击评论后加载...