内容正文:
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第40卷,是知识点训练卷。按“Java程序设计”考试纲要(八)高级编程基础的七点知识点要求编写,其七点要求是:
1.了解线程的概念。
2.掌握多线程的实现方法。
3.了解Thread类和Runnable接口的区别;了解Thread类的常用方法。
4.了解创建、添加数据库的操作方法。
5.理解SQLyog连接MySQL服务器基本功能,掌握Java连接MySQL数据库的方法。
6.了解数据库的查询与更新操作过程。
7.了解Android常用包的功能,了解Android布局。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第40卷
《Java程序设计》
(八)高级编程基础-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1. 下列可以启动一个线程的方法是是( )
A. run ()
B. start ()
C. begin ()
D. execute ()
答案:B
2. 以下可以实现多线程的方式是( )
A. 继承Thread类并重写main()方法
B. 实现Runnable接口并重写start()方法
C. 继承Thread类并重写run()方法
D. 实现Callable接口并重写call()方法
答案:C
3. 线程调用yield()方法的作用是( )
A. 终止当前线程
B. 暂停当前线程
C. 强制释放锁
D. 使线程进入休眠状态
答案:B
4. 下列关于 Thread 类和 Runnable 接口的区别,说法正确的是( )
A. 实现 Runnable 接口可以避免 Java 单继承的限制
B. 继承 Thread 类可以更方便地实现多个线程共享资源
C. Thread 类中没有 start () 方法,需要自己实现
D. Runnable 接口中包含 start () 方法
答案:A
5.以下关于通过实现Runnable接口创建线程的说法,正确的是( )?
A. 可以直接调用Runnable对象的start()方法启动线程
B. Runnable接口的线程不能设置优先级
C. 实现Runnable接口的类必须重写stop()方法
D. 必须将Runnable对象作为参数传递给Thread类的构造方法
答案:D
6.下列关于wait()方法的描述,正确的是( )
A. 可以在任意代码块中直接调用
B. 调用时必须持有当前对象的锁
C. 调用后会立即释放所有持有的锁
D. 必须通过notifyAll()方法才能唤醒
答案:B
7.在 Java 中连接 MySQL 数据库时,需要使用的驱动类通常是( )
A. com.mysql.jdbc.Driver
B. java.sql.Driver
C. oracle.jdbc.driver.OracleDriver
D. sun.jdbc.odbc.JdbcOdbcDriver
答案:A
8.使用PreparedStatement执行SQL查询的优势是( )
A. 可以直接执行存储过程
B. 支持批量更新操作
C. 防止SQL注入攻击
D. 提高数据库连接速度
答案:C
9.Android 中,属于线性布局的是( )
A. RelativeLayout
B. LinearLayout
C. FrameLayout
D. ConstraintLayout
答案:B
10.以下关于SQL UPDATE操作的说法,正确的是( )
A. UPDATE语句必须包含WHERE子句
B. 执行后可通过getResultSet()获取结果集
C. 需通过executeQuery()方法执行
D. 返回值是受影响的行数
答案:D
二、判断题(本大题共10小题,每小题2分,共20分)
1. Runnable接口必须实现start()方法。( )
答案:错误
2. 一个线程对象可以多次调用 start () 方法启动线程。( )
答案:错误
3. 使用 Statement 执行 SQL 语句时,可以防止 SQL 注入攻击。( )
答案:错误
4. 多线程程序中,多个线程可以同时访问共享资源而不会产生问题。( )
答案:错误
5. synchronized关键字可以实现线程同步。( )
答案:正确
6.SQLyog是一个MySQL数据库的可视化管理工具,支持直接执行SQL语句。( )
答案:正确
7.Java 连接数据库的基本步骤包括:加载驱动、建立连接、创建 Statement、执行 SQL 语句、处理结果、关闭资源。( )
答案:正确
8.Android 布局文件通常放在 res/layout 目录下。( )
答案:正确
9.ResultSet对象的next()方法仅用于移动到第一行数据。( )
答案:错误
10.在Android中,RelativeLayout允许组件通过相对位置排列。( )
答案:正确
三、填空题(本大题共5小题,每题2分,共10分)
1. 线程的六种状态中,调用________方法后进入就绪状态。
答案:start()
2. 通过实现Runnable接口创建线程时,需要将Runnable对象传递给________类的构造函数。
答案:Thread
3. 若线程A调用join()方法,则当前线程会等待________执行完毕后再继续执行。
答案:线程A
4.JDBC连接MySQL的URL格式通常为:jdbc:mysql://________/数据库名。
答案:主机名:端口号
5.使用PreparedStatement时,SQL参数占位符的符号是________。
答案:?
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
public class Test1 extends Thread{
public void run(){
System.out.print("Thread运行 ");
}
public static void main(String[] args){
Test1 t1 = new Test1();
Test1 t2 = new Test1();
t1.start();
t2.start();
System.out.print("Main结束 ");
}
}
答案:Main结束 Thread运行 Thread运行 (顺序可能不同)
2.以下程序的运行结果是______。
public class Test2 {
public static void main(String[] args){
Counter c = new Counter();
new Thread(() -> c.add()).start();
new Thread(() -> c.add()).start();
}
}
class Counter {
private int count = 0;
public synchronized void add(){
for(int i=0; i<3; i++){
count++;
System.out.print(count + " ");
}
}
}
答案:1 2 3 4 5 6
3.以下程序的运行结果是______。
public class Test3 implements Runnable{
private String name;
public Test3(String name) { this.name = name; }
public void run(){
System.out.print(name + " ");
}
public static void main(String[] args){
new Thread(new Test3("A")).start();
new Thread(new Test3("B")).start();
}
}
答案:A B 或 B A
4.以下程序的运行结果是______。
//假设users表数据:id=1,name='Tom'; id=2,name='Jerry'
public class Test4 {
public static void main(String[] args) throws SQLException{
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","123");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name FROM users WHERE id=2");
while(rs.next()){
System.out.print(rs.getString("name"));
}
}
}
答案:Jerry
5.以下程序的运行结果是______。
class SynchronizedExample {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
class IncrementRunnable implements Runnable {
private SynchronizedExample example;
public IncrementRunnable(SynchronizedExample example) {
this.example = example;
}
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
example.increment();
}
}
}
public class SynchronizedOutput {
public static void main(String[] args) throws InterruptedException {
SynchronizedExample example = new SynchronizedExample();
IncrementRunnable runnable = new IncrementRunnable(example);
Thread t1 = new Thread(runnable);
Thread t2 = new Thread(runnable);
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("Count: " + example.getCount());
}
}
答案:Count: 2000
五、编程题(本大题共5小题,每题5分,共25分)
1.编写一个 Java 程序,实现以下功能:
创建一个实现 Runnable 接口的类 MyRunnable,其 run () 方法功能是:循环输出 5 次当前线程的名称和 "正在执行"。
在主类 Test 中,创建两个线程,线程名分别为 "线程 1" 和 "线程 2",都使用 MyRunnable 的实例作为任务。
启动这两个线程,观察程序运行结果。
答案:
// 实现Runnable接口的类
class MyRunnable implements Runnable {
@Override
public void run() {
// 循环输出5次当前线程的名称和"正在执行"
for (int i = 0; i < 5; i++) {
// 获取当前线程的名称
String threadName = Thread.currentThread().getName();
System.out.println(threadName + "正在执行");
// 为了让线程切换更明显,加入短暂休眠
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
// 主类
public class Test {
public static void main(String[] args) {
// 创建Runnable实例
MyRunnable task = new MyRunnable();
// 创建两个线程,使用同一个任务对象
Thread t1 = new Thread(task, "线程1");
Thread t2 = new Thread(task, "线程2");
// 启动线程
t1.start();
t2.start();
}
}
2.使用synchronized实现线程安全的计数器,创建5个线程,每个线程执行100次count++。
答案:
class SafeCounter {
private int count = 0;
public synchronized void increment() { count++; }
public static void main(String[] args) {
SafeCounter counter = new SafeCounter();
for(int i=0; i<5; i++){
new Thread(() -> {
for(int j=0; j<100; j++) counter.increment();
}).start();
}
//等待所有线程执行完毕
try { Thread.sleep(2000); } catch (InterruptedException e) {}
System.out.println(counter.count); //输出500
}
}
3.编写一个Android应用,点击按钮后在TextView显示"Hello World"。
答案:
// MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = findViewById(R.id.btn);
TextView tv = findViewById(R.id.tv);
btn.setOnClickListener(v -> tv.setText("Hello World"));
}
}
4.编写一个 Java 程序,模拟一个银行账户系统,使用多线程来实现存款和取款操作。账户初始余额为 1000 元,创建两个线程,一个线程负责存款 500 元三次,另一个线程负责取款 300 元两次。要求使用 synchronized 关键字确保线程安全。
答案:
class BankAccount {
private double balance;
public BankAccount(double initialBalance) {
this.balance = initialBalance;
}
public synchronized void deposit(double amount) {
balance += amount;
System.out.println(Thread.currentThread().getName() + " 存款 " + amount + " 元,当前余额: " + balance + " 元");
}
public synchronized void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
System.out.println(Thread.currentThread().getName() + " 取款 " + amount + " 元,当前余额: " + balance + " 元");
} else {
System.out.println(Thread.currentThread().getName() + " 取款失败,余额不足。");
}
}
}
class DepositThread implements Runnable {
private BankAccount account;
public DepositThread(BankAccount account) {
this.account = account;
}
@Override
public void run() {
for (int i = 0; i < 3; i++) {
account.deposit(500);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class WithdrawThread implements Runnable {
private BankAccount account;
public WithdrawThread(BankAccount account) {
this.account = account;
}
@Override
public void run() {
for (int i = 0; i < 2; i++) {
account.withdraw(300);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class BankAccountMultiThread {
public static void main(String[] args) {
BankAccount account = new BankAccount(1000);
Thread depositThread = new Thread(new DepositThread(account), "存款线程");
Thread withdrawThread = new Thread(new WithdrawThread(account), "取款线程");
depositThread.start();
withdrawThread.start();
}
}
5.编写一个简单的 Android 应用程序,使用线性布局(LinearLayout),在界面上显示一个文本框(EditText)、一个按钮(Button)和一个文本视图(TextView)。用户在文本框中输入内容,点击按钮后,将输入的内容显示在文本视图中。
答案:
1. activity_main.xml(布局文件)
xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/inputEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入内容" />
<Button
android:id="@+id/showButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="显示内容" />
<TextView
android:id="@+id/outputTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp" />
</LinearLayout>
2. MainActivity.java(Java 代码)
java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private EditText inputEditText;
private Button showButton;
private TextView outputTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputEditText = findViewById(R.id.inputEditText);
showButton = findViewById(R.id.showButton);
outputTextView = findViewById(R.id.outputTextView);
showButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String inputText = inputEditText.getText().toString();
outputTextView.setText("你输入的内容是: " + inputText);
}
});
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第40卷,是知识点训练卷。按“Java程序设计”考试纲要(八)高级编程基础的七点知识点要求编写,其七点要求是:
1.了解线程的概念。
2.掌握多线程的实现方法。
3.了解Thread类和Runnable接口的区别;了解Thread类的常用方法。
4.了解创建、添加数据库的操作方法。
5.理解SQLyog连接MySQL服务器基本功能,掌握Java连接MySQL数据库的方法。
6.了解数据库的查询与更新操作过程。
7.了解Android常用包的功能,了解Android布局。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第40卷
《Java程序设计》
(八)高级编程基础-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1. 下列可以启动一个线程的方法是是( )
A. run ()
B. start ()
C. begin ()
D. execute ()
2. 以下可以实现多线程的方式是( )
A. 继承Thread类并重写main()方法
B. 实现Runnable接口并重写start()方法
C. 继承Thread类并重写run()方法
D. 实现Callable接口并重写call()方法
3. 线程调用yield()方法的作用是( )
A. 终止当前线程
B. 暂停当前线程
C. 强制释放锁
D. 使线程进入休眠状态
4. 下列关于 Thread 类和 Runnable 接口的区别,说法正确的是( )
A. 实现 Runnable 接口可以避免 Java 单继承的限制
B. 继承 Thread 类可以更方便地实现多个线程共享资源
C. Thread 类中没有 start () 方法,需要自己实现
D. Runnable 接口中包含 start () 方法
5.以下关于通过实现Runnable接口创建线程的说法,正确的是( )?
A. 可以直接调用Runnable对象的start()方法启动线程
B. Runnable接口的线程不能设置优先级
C. 实现Runnable接口的类必须重写stop()方法
D. 必须将Runnable对象作为参数传递给Thread类的构造方法
6.下列关于wait()方法的描述,正确的是( )
A. 可以在任意代码块中直接调用
B. 调用时必须持有当前对象的锁
C. 调用后会立即释放所有持有的锁
D. 必须通过notifyAll()方法才能唤醒
7.在 Java 中连接 MySQL 数据库时,需要使用的驱动类通常是( )
A. com.mysql.jdbc.Driver
B. java.sql.Driver
C. oracle.jdbc.driver.OracleDriver
D. sun.jdbc.odbc.JdbcOdbcDriver
8.使用PreparedStatement执行SQL查询的优势是( )
A. 可以直接执行存储过程
B. 支持批量更新操作
C. 防止SQL注入攻击
D. 提高数据库连接速度
9.Android 中,属于线性布局的是( )
A. RelativeLayout
B. LinearLayout
C. FrameLayout
D. ConstraintLayout
10.以下关于SQL UPDATE操作的说法,正确的是( )
A. UPDATE语句必须包含WHERE子句
B. 执行后可通过getResultSet()获取结果集
C. 需通过executeQuery()方法执行
D. 返回值是受影响的行数
二、判断题(本大题共10小题,每小题2分,共20分)
1. Runnable接口必须实现start()方法。( )
2. 一个线程对象可以多次调用 start () 方法启动线程。( )
3. 使用 Statement 执行 SQL 语句时,可以防止 SQL 注入攻击。( )
4. 多线程程序中,多个线程可以同时访问共享资源而不会产生问题。( )
5. synchronized关键字可以实现线程同步。( )
6.SQLyog是一个MySQL数据库的可视化管理工具,支持直接执行SQL语句。( )
7.Java 连接数据库的基本步骤包括:加载驱动、建立连接、创建 Statement、执行 SQL 语句、处理结果、关闭资源。( )
8.Android 布局文件通常放在 res/layout 目录下。( )
9.ResultSet对象的next()方法仅用于移动到第一行数据。( )
10.在Android中,RelativeLayout允许组件通过相对位置排列。( )
三、填空题(本大题共5小题,每题2分,共10分)
1. 线程的六种状态中,调用________方法后进入就绪状态。
2. 通过实现Runnable接口创建线程时,需要将Runnable对象传递给________类的构造函数。
3. 若线程A调用join()方法,则当前线程会等待________执行完毕后再继续执行。
4.JDBC连接MySQL的URL格式通常为:jdbc:mysql://________/数据库名。
5.使用PreparedStatement时,SQL参数占位符的符号是________。
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
public class Test1 extends Thread{
public void run(){
System.out.print("Thread运行 ");
}
public static void main(String[] args){
Test1 t1 = new Test1();
Test1 t2 = new Test1();
t1.start();
t2.start();
System.out.print("Main结束 ");
}
}
2.以下程序的运行结果是______。
public class Test2 {
public static void main(String[] args){
Counter c = new Counter();
new Thread(() -> c.add()).start();
new Thread(() -> c.add()).start();
}
}
class Counter {
private int count = 0;
public synchronized void add(){
for(int i=0; i<3; i++){
count++;
System.out.print(count + " ");
}
}
}
3.以下程序的运行结果是______。
public class Test3 implements Runnable{
private String name;
public Test3(String name) { this.name = name; }
public void run(){
System.out.print(name + " ");
}
public static void main(String[] args){
new Thread(new Test3("A")).start();
new Thread(new Test3("B")).start();
}
}
4.以下程序的运行结果是______。
//假设users表数据:id=1,name='Tom'; id=2,name='Jerry'
public class Test4 {
public static void main(String[] args) throws SQLException{
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","123");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name FROM users WHERE id=2");
while(rs.next()){
System.out.print(rs.getString("name"));
}
}
}
5.以下程序的运行结果是______。
class SynchronizedExample {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
class IncrementRunnable implements Runnable {
private SynchronizedExample example;
public IncrementRunnable(SynchronizedExample example) {
this.example = example;
}
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
example.increment();
}
}
}
public class SynchronizedOutput {
public static void main(String[] args) throws InterruptedException {
SynchronizedExample example = new SynchronizedExample();
IncrementRunnable runnable = new IncrementRunnable(example);
Thread t1 = new Thread(runnable);
Thread t2 = new Thread(runnable);
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("Count: " + example.getCount());
}
}
五、编程题(本大题共5小题,每题5分,共25分)
1.编写一个 Java 程序,实现以下功能:
创建一个实现 Runnable 接口的类 MyRunnable,其 run () 方法功能是:循环输出 5 次当前线程的名称和 "正在执行"。
在主类 Test 中,创建两个线程,线程名分别为 "线程 1" 和 "线程 2",都使用 MyRunnable 的实例作为任务。
启动这两个线程,观察程序运行结果。
2.使用synchronized实现线程安全的计数器,创建5个线程,每个线程执行100次count++。
3.编写一个Android应用,点击按钮后在TextView显示"Hello World"。
4.编写一个 Java 程序,模拟一个银行账户系统,使用多线程来实现存款和取款操作。账户初始余额为 1000 元,创建两个线程,一个线程负责存款 500 元三次,另一个线程负责取款 300 元两次。要求使用 synchronized 关键字确保线程安全。
5.编写一个简单的 Android 应用程序,使用线性布局(LinearLayout),在界面上显示一个文本框(EditText)、一个按钮(Button)和一个文本视图(TextView)。用户在文本框中输入内容,点击按钮后,将输入的内容显示在文本视图中。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$