Java程序设计-2024-2025学年第二学期

刘香菊、董立凯、刘媛

目录

  • 1 Java入门
    • 1.1 课程标准
    • 1.2 教学日历
    • 1.3 说课
    • 1.4 Java的地位
    • 1.5 Java的特点
    • 1.6 安装JDK
    • 1.7 Java程序的开发步骤
    • 1.8 简单的Java应用程序
    • 1.9 Java反编译
    • 1.10 编程风格
    • 1.11 Java之父--James Gosling
    • 1.12 小结
    • 1.13 讲义
    • 1.14 JDK开发环境和机构化程序设计
    • 1.15 实验:一个简单的应用程序
    • 1.16 上机练习:联合编译
    • 1.17 章节测验
    • 1.18 复习
  • 2 基本数据类型与数组
    • 2.1 教学目标
    • 2.2 学习任务单
    • 2.3 说课
    • 2.4 标识符与关键字
    • 2.5 基本数据类型
    • 2.6 类型转换运算
    • 2.7 输入、输出数据
    • 2.8 数组
    • 2.9 应用举例
    • 2.10 小结
    • 2.11 实验:输出希腊字母表
    • 2.12 上机练习:数组的引用与元素
    • 2.13 上机练习:遍历与复制数组
    • 2.14 章节测验
    • 2.15 复习
  • 3 运算符、表达式和语句
    • 3.1 说课
    • 3.2 运算符与表达式
    • 3.3 语句概述
    • 3.4 if条件分支语句
    • 3.5 switch开关语句
    • 3.6 循环语句
    • 3.7 break和continue语句
    • 3.8 for语句与数组
    • 3.9 应用举例
    • 3.10 小结
    • 3.11 上机练习:回文数
    • 3.12 上机练习:猜数字游戏
    • 3.13 章节测验
    • 3.14 复习
  • 4 类与对象
    • 4.1 说课
    • 4.2 编程语言的几个发展阶段
    • 4.3 类
    • 4.4 构造方法与对象的创建
    • 4.5 类与程序的基本结构
    • 4.6 参数传值
    • 4.7 对象的组合
    • 4.8 实例成员与类成员
    • 4.9 方法重载
    • 4.10 this关键字
    • 4.11 包
    • 4.12 import语句
    • 4.13 访问权限
    • 4.14 基本类型的类封装
    • 4.15 对象数组
    • 4.16 JRE扩展与jar文件
    • 4.17 文档生成器
    • 4.18 应用举例
    • 4.19 小结
    • 4.20 实验:机动车
    • 4.21 上机练习:家中的电视
    • 4.22 上机练习:共饮同井水
    • 4.23 实验:求方程的根
    • 4.24 章节测验
    • 4.25 复习
  • 5 子类与继承
    • 5.1 说课
    • 5.2 子类与父类
    • 5.3 子类的继承性
    • 5.4 子类与对象
    • 5.5 成员变量的隐藏和方法重写
    • 5.6 super关键字
    • 5.7 final关键字
    • 5.8 对象的上转型对象
    • 5.9 继承与多态
    • 5.10 abstract类和abstract方法
    • 5.11 面向抽象编程
    • 5.12 开-闭原则
    • 5.13 应用举例
    • 5.14 小结
    • 5.15 上机练习:中国人、北京人和美国人
    • 5.16 实验:银行计算利息
    • 5.17 实验:公司支出的总薪水
    • 5.18 章节测验
    • 5.19 复习
  • 6 接口与实现
    • 6.1 说课
    • 6.2 接口
    • 6.3 实现接口
    • 6.4 接口的UML图
    • 6.5 接口回调
    • 6.6 理解接口
    • 6.7 接口与多态
    • 6.8 接口参数
    • 6.9 abstract类与接口的比较
    • 6.10 面向接口编程
    • 6.11 应用举例
    • 6.12 小结
    • 6.13 实验:评价成绩
    • 6.14 实验:货车的装载量
    • 6.15 上机练习:小狗的状态
    • 6.16 章节测验
    • 6.17 新建课程目录
  • 7 内部类与异常类
    • 7.1 说课
    • 7.2 内部类
    • 7.3 匿名类
    • 7.4 异常类
    • 7.5 断言
    • 7.6 应用举例
    • 7.7 小结
    • 7.8 上机练习:内部购物券
    • 7.9 上机练习:检查危险品
    • 7.10 章节测验
    • 7.11 复习
  • 8 常用实用类
    • 8.1 说课
    • 8.2 String类
    • 8.3 StringTokenizer类
    • 8.4 Scanner类
    • 8.5 StringBuffer类
    • 8.6 Date类与Calendar类
    • 8.7 日期的格式化
    • 8.8 Math类、BigInteger类和Random类
    • 8.9 数字格式化
    • 8.10 Class类与Console类
    • 8.11 Pattern类与Matcher类
    • 8.12 应用举例
    • 8.13 小结
    • 8.14 上机练习:检索简历
    • 8.15 实验:菜单的价格
    • 8.16 上机练习:比较日期
    • 8.17 上机练习:处理大整数
    • 8.18 实验:替换错别字
    • 8.19 章节测验
    • 8.20 复习
  • 9 组件及事件处理
    • 9.1 说课
    • 9.2 Java Swing概述
    • 9.3 窗口
    • 9.4 常用组件与布局
    • 9.5 处理事件
    • 9.6 使用MVC结构
    • 9.7 对话框
    • 9.8 树组件与表格组件
    • 9.9 按钮绑定到键盘
    • 9.10 打印组件
    • 9.11 发布GUI程序
    • 9.12 应用举例
    • 9.13 小结
    • 9.14 实验:算术测试
    • 9.15 实验:布局与日历
    • 9.16 实验:英语单词拼写训练
    • 9.17 实验:字体对话框
    • 9.18 章节测验
    • 9.19 复习
  • 10 输入、输出流
    • 10.1 说课
    • 10.2 File类
    • 10.3 文件字节输入流
    • 10.4 文件字节输出流
    • 10.5 文件字符输入、输出流
    • 10.6 缓冲流
    • 10.7 随机流
    • 10.8 数组流
    • 10.9 数据流
    • 10.10 对象流
    • 10.11 序列化与对象克隆
    • 10.12 使用Scanner解析文件
    • 10.13 文件对话框
    • 10.14 带进度条的输入流
    • 10.15 文件锁
    • 10.16 应用举例
    • 10.17 小结
    • 10.18 上机练习:分析成绩单
    • 10.19 实验:统计英文单词
    • 10.20 实验:读取压缩文件
    • 10.21 章节测验
  • 11 JDBC与MySQL数据库
    • 11.1 说课
    • 11.2 MySQL数据库管理系统
    • 11.3 启动MySQL数据库服务器
    • 11.4 MySQL客户端管理工具
    • 11.5 JDBC
    • 11.6 连接数据库
    • 11.7 查询操作
    • 11.8 更新、添加与删除操作
    • 11.9 使用预处理语句
    • 11.10 通用查询
    • 11.11 事务
    • 11.12 连接SQL Server数据库
    • 11.13 连接Derby数据库
    • 11.14 应用举例
    • 11.15 小结
    • 11.16 上机练习:抽取样本
    • 11.17 上机练习:用户转账
    • 11.18 上机练习:查询Excel电子表格
    • 11.19 章节测验
  • 12 Java多线程机制
    • 12.1 进程与线程
    • 12.2 Java中的线程
    • 12.3 Thread类与线程的创建
    • 12.4 线程的常用方法
    • 12.5 线程同步
    • 12.6 协调同步的线程
    • 12.7 线程联合
    • 12.8 GUI线程
    • 12.9 计时器线程
    • 12.10 守护线程
    • 12.11 应用举例
    • 12.12 小结
    • 12.13 上机练习:键盘操作练习
    • 12.14 上机练习:双线程猜数字
    • 12.15 上机练习:汉字打字练习
    • 12.16 上机练习:月亮围绕地球
    • 12.17 章节测验
  • 13 Java网络编程(自学)
    • 13.1 URL类
    • 13.2 InetAddress类
    • 13.3 套接字
    • 13.4 UDP数据报
    • 13.5 广播数据报
    • 13.6 Java远程调用
    • 13.7 应用举例
    • 13.8 小结
    • 13.9 上机练习:读取服务器端文件
    • 13.10 上机练习:会结账的服务器
    • 13.11 上机练习:读取服务器端的窗口
    • 13.12 上机练习:与服务器玩猜数游戏
    • 13.13 上机练习:传输图像
    • 13.14 章节测验
  • 14 图形、图像与音频
    • 14.1 绘制基本图形
    • 14.2 变换图形
    • 14.3 图形的布尔运算
    • 14.4 绘制钟表
    • 14.5 绘制图像
    • 14.6 播放音频
    • 14.7 应用举例
    • 14.8 小结
    • 14.9 上机练习:转动的风扇
    • 14.10 上机练习:制作JPG格式的图像
    • 14.11 上机练习:基于图像的小动画
    • 14.12 章节测验
  • 15 泛型与集合框架(自学)
    • 15.1 泛型
    • 15.2 链表
    • 15.3 堆栈
    • 15.4 散列映射
    • 15.5 树集
    • 15.6 树映射
    • 15.7 自动装箱与拆箱
    • 15.8 应用举例
    • 15.9 小结
    • 15.10 上机练习:搭建流水线
    • 15.11 上机练习:排序与查找
    • 15.12 上机练习:使用TreeSet排序
    • 15.13 上机练习:扫雷小游戏
    • 15.14 章节测验
  • 16 Java课程设计
    • 16.1 课程设计任务书
    • 16.2 课程设计报告模板
复习

第8章 常用实用类 复习

第8章 常用实用类 复习2

习题八

一、问答题

1."\hello"是正确的字符串常量吗?

不是("\\hello"是)。

2."你好KU".length()和"\n\t\t".length()的值分别是多少?

4和3。

3."Hello".equals("hello")和"java".equals("java")的值分别是多少?

false和true

4."Bird".compareTo("Bird fly")的值是正数还是负数?

负数

5."I love this game".contains("love")的值是true吗?

是true。

6."RedBird".indexOf("Bird")的值是多少?"RedBird".indexOf("Cat")的值是多少?

3和-1

7.执行Integer.parseInt("12.9");会发生异常吗?

会发生NumberFormatException异常。

--视频讲解--

二、选择题

1.下列哪个叙述是正确的?

A. String 类是final 类,不可以有子类。

B. String 类在java.util包中。

C. "abc"=="abc"的值是false .

D. "abc".equals("Abc")的值是true

A。

--视频讲解--


2.下列哪个是正确的(无编译错误)?


A.  int m =Float.parseFloat("567"); 

B.  int m =Short.parseShort("567");

C.  byte m =Integer.parseInt("2");

D. float m =Float.parseDouble("2.9"); 

C。


3.对于如下代码,下列哪个叙述是正确的?

A. 程序编译出现错误。

B. 程序标注的【代码】的输出结果是bird。

C. 程序标注的【代码】的输出结果是fly。

D. 程序标注的【代码】的输出结果是null。 

public class E{ 
   public static void main(String[] args){ 
      String strOne="bird"; 
      String strTwo=strOne; 
      strOne="fly"; 
      System.out.println(strTwo); 
  } 
}

  B。

--视频讲解--


4.对于如下代码,下列哪个叙述是正确的?

A.   程序出现编译错误。

B.无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。

C.无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。 

D.无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。 

public class E {
   public static void main (String args[]) {
     String s1 = args[1];
     String s2 = args[2];
     String s3 = args[3];
     System.out.println(s3); 
   }
}

 D。

--视频讲解--


5.下列哪个叙述是错误的?

A. "9dog".matches("\\ddog")的值是true。

B."12hello567".replaceAll("[123456789]+","@")返回的字符串是@hello@。

C.new Date(1000)对象含有的时间是公元后1000小时的时间

D. "\\hello\n"是正确的字符串常量。

C。

--视频--

三、阅读程序

1.请说出E类中标注的【代码】的输出结果。

public class E { 
   public static void main (String[]args)   { 
      String str = new String ("苹果"); 
      modify(str); 
      System.out.println(str);   //【代码】
   } 
   public static void modify (String s)  { 
       s = s + "好吃";  
   } 
}   

【代码】:苹果

--视频讲解--


2.请说出E类中标注的【代码】的输出结果。

import java.util.*;
class GetToken {
 String s[];
   public String getToken(int index,String str) { 
      StringTokenizer fenxi = new StringTokenizer(str); 
      int number = fenxi.countTokens();
      s = new String[number+1];
      int k = 1;
      while(fenxi.hasMoreTokens()) {
         String temp=fenxi.nextToken();
          s[k] = temp;
          k++;
      }
      if(index<=number)
        return s[index];
      else 
        return null;
   }
}
class E {
  public static void main(String args[]) {
      String str="We Love This Game";
      GetToken token=new GetToken();
      String s1 = token.getToken(2,str),
              s2 = token.getToken(4,str);
      System.out.println(s1+":"+s2);     //【代码】
   }
}

【代码】:Love:Game

--视频讲解--


3.请说出E类中标注的【代码1】,【代码2】的输出结果。

public class E {
  public static void main(String args[]) {
      byte d[]="abc我们喜欢篮球".getBytes();
      System.out.println(d.length);   //【代码1】
      String s=new String(d,0,7);
      System.out.println(s);         //【代码2】
   }
}

【代码1】:15。【代码2】:abc我们

--阅读讲解--


4.请说出E类中标注的【代码】的输出结果。

class MyString {
  public String getString(String s) {
      StringBuffer str = new StringBuffer();
      for(int i=0;i<s.length();i++) {
         if(i%2==0) {
            char c = s.charAt(i);
            str.append(c);
          }
      }
     return new String(str);
   }
}
public class E {
public static void main(String args[ ]) {
String s = "1234567890";
      MyString ms = new MyString();
      System.out.println(ms.getString(s)); //【代码】
   }
}

【代码】:13579

--视频讲解--


5.请说出E类中标注的【代码】,的输出结果。

public class E {
  public static void main (String args[ ]) {
      String regex = "\\djava\\w{1,}" ;
      String str1 = "88javaookk";
      String str2 = "9javaHello";
      if(str1.matches(regex)) {
          System.out.println(str1); 
      }
      if(str2.matches(regex)) {
          System.out.println(str2); //【代码】 
      }  
   }
}

【代码】:9javaHello

--视频讲解--


6.上机实习下列程序,学习怎样在一个月内(一周内、一年内)前后滚动日期,例如,假设是3月(有31天)10号,如果在月内滚动,那么向后滚动10天就是3月20日,向后滚动25天,就是3月4号(因为只在该月内滚动)。如果在年内滚动,那么向后滚动25天,就是4月4号。

import java.util.*;

public class RollDayInMonth {

   public static void main(String args[]) {

      Calendar calendar=Calendar.getInstance();   

      calendar.setTime(new Date());  

      String s = String.format("%tF(%<tA)",calendar);

      System.out.println(s);

      int n = 25;

      System.out.println("向后滚动(在月内)"+n+"天");

      calendar.roll(calendar.DAY_OF_MONTH,n);

      s = String.format("%tF(%<ta)",calendar);

      System.out.println(s);

      System.out.println("再向后滚动(在年内)"+n+"天");

      calendar.roll(calendar.DAY_OF_YEAR,n);

      s = String.format("%tF(%<ta)",calendar);

      System.out.println(s);

    }  

}

图片


7.上机实习下列程序(学习Runtime类),注意观察程序的输出结果。

public class Test{

    public static void main(String args[]) {

        Runtime runtime = Runtime.getRuntime();

        long free = runtime.freeMemory();

        System.out.println("Java虚拟机可用空闲内存 "+free+" bytes");

        long total = runtime.totalMemory();

        System.out.println("Java虚拟机占用总内存 "+total+" bytes");

        long n1 = System.currentTimeMillis();

        for(int i=1;i<=100;i++){

           int j = 2;

           for(;j<=i/2;j++){

             if(i%j==0) break;

           }

           if(j>i/2)  System.out.print(" "+i);

        }

        long n2 = System.currentTimeMillis();

        System.out.printf("\n循环用时:"+(n2-n1)+"毫秒\n");

        free = runtime.freeMemory();

        System.out.println("Java虚拟机可用空闲内存 "+free+" bytes");

        total=runtime.totalMemory();

        System.out.println("Java虚拟机占用总内存 "+total+" bytes");

    }

}

图片