智能医学工程-计算机程序设计-实验02:数据类型

595 阅读6分钟

一、实验目的

1、了解基本数据类型的使用;

2、了解内置数据类型的使用;

3、掌握String、 StringBuffer、 StringBuilder 类各自的特点及用法;

4、掌握Date 类和 SimpleDateFormat 类特点及用法。

5、掌握LocalDate和LocalDateTime类特点及用法

二、实验学时

2学时

三、实验类型

验证性

四、实验需求

1、硬件

每人配备计算机1台,建议优先使用个人计算机开展实验。

2、软件

IntelliJ IDEA,以及Java运行所需要的相关基础环境。

3、网络

本地主机能够访问互联网和实验中心网络。

4、工具

无。

五、实验任务

1、编写程序,打印出Java八种数据类型的各自占多少个二进制位,最大值和最小值;

2、编写程序,定义并赋值一个整型数组,遍历这个数据,然后用Debug调试每次循环结果;

3、编写程序,定义一个集合ArrayList用来存储数据,遍历这个集合,然后用Debug调试每次循环结果。

4、编写程序,展示 String、 StringBuffer、 StringBuilder 类各自的特点及用法。

5、编写程序,展示使用SimpleDateFormat将日期(Date) 字符串与对象形式相互转换。

6、编写程序,使用LocalDate和LocalDateTime打印当前日期。

六、实验内容及步骤

1、编写程序,打印出Java八种数据类型的各自占多少个二进制位,最大值和最小值

public class DataTypeProperties {

public static void main(String[] args) {

System.out.println("Java基本数据类型的大小、最大值和最小值:");

// byte

System.out.println("byte: " +

"8位, " +

"最大值: " + Byte.MAX_VALUE + ", " +

"最小值: " + Byte.MIN_VALUE);

// short

System.out.println("short: " +

"16位, " +

"最大值: " + Short.MAX_VALUE + ", " +

"最小值: " + Short.MIN_VALUE);

// int

System.out.println("int: " +

"32位, " +

"最大值: " + Integer.MAX_VALUE + ", " +

"最小值: " + Integer.MIN_VALUE);

// long

System.out.println("long: " +

"64位, " +

"最大值: " + Long.MAX_VALUE + ", " +

"最小值: " + Long.MIN_VALUE);

// float

System.out.println("float: " +

"32位(IEEE 754), " +

"最大值: " + Float.MAX_VALUE + ", " +

"最小值: " + Float.MIN_VALUE + " (注意:这是正的最小非零值,负的最小值为-" + (-Float.MIN_VALUE) + ")");

// double

System.out.println("double: " +

"64位(IEEE 754), " +

"最大值: " + Double.MAX_VALUE + ", " +

"最小值: " + Double.MIN_VALUE + " (注意:这是正的最小非零值,负的最小值为-" + (-Double.MIN_VALUE) + ")");

// char

System.out.println("char: " +

"16位, " +

"最大值: " + (int) Character.MAX_VALUE + ", " +

"最小值: " + (int) Character.MIN_VALUE);

// boolean(特殊说明)

System.out.println("boolean: " +

"不是以二进制位数直接表示, " +

"值只能是true或false");

}

}

2、编写程序,定义并赋值一个整型数组,遍历这个数据,然后用Debug调试每次循环结果

public class Main {

public static void main(String[] args) {

// 定义并赋值一个整型数组

int[] numbers = {1, 2, 3, 4, 5};

// 遍历这个数组

for (int i = 0; i < numbers.length; i++) {

// 使用System.out.println来模拟调试输出

System.out.println("当前循环的索引: " + i + ", 当前值: " + numbers[i]);

// 这里是你可以设置断点的位置

// 在大多数IDE中,你可以在行号旁边点击来设置断点

// 当程序运行到这里时,它将暂停,你可以检查变量的当前值

}

}

}

3、编写程序,定义一个集合ArrayList用来存储数据,遍历这个集合,然后用Debug调试每次循环结果

import java.util.ArrayList;

public class Main {

public static void main(String[] args) {

// 定义一个ArrayList来存储数据

ArrayList<Integer> numbers = new ArrayList<>();

// 向ArrayList中添加一些数据

numbers.add(1);

numbers.add(2);

numbers.add(3);

numbers.add(4);

numbers.add(5);

// 遍历这个ArrayList

for (int i = 0; i < numbers.size(); i++) {

// 在这里,我们可以通过System.out.println来模拟调试输出

// 实际上,在真实的调试环境中,我们会设置断点并使用IDE的调试功能

System.out.println("当前循环的索引: " + i + ", 当前值: " + numbers.get(i));

// 注意:这里是我们可能想要设置断点的位置

// 在IDE中,我们可以在这一行设置断点,并在调试模式下运行程序

// 当程序执行到这里时,它将暂停,允许我们检查变量的当前值和程序的执行状态

}

}

}

4、编写程序,展示 String、 StringBuffer、 StringBuilder 类各自的特点及用法


public class StringDemo {

public static void main(String[] args) {

*//String特性*

**String str = "Hello, World!";

System.*out*.println(str); *// 输出: Hello, World!*

*// 字符串连接(注意:这会导致创建一个新的String对象)*

**String newStr = str + " Again!";

System.*out*.println(newStr); *// 输出: Hello, World! Again!*

*//StringBuffer特性*

**StringBuffer sb = new StringBuffer("StringBuffer Initial");

sb.append(" Append");

System.*out*.println(sb.toString()); *// 输出: StringBuffer Initial Append*

*// 在指定位置插入字符串*

**sb.insert(0, "Insert at beginning: ");

System.*out*.println(sb.toString()); *// 输出: Insert at beginning: StringBuffer Initial Append*

*//StringBuilder特性*

**StringBuilder sbBuilder = new StringBuilder("StringBuilder Initial");

sbBuilder.append(" Append");

System.*out*.println(sbBuilder.toString()); *// 输出: StringBuilder Initial Append*

*// 删除字符串的一部分*

**sbBuilder.delete(0, 5); *// 删除前5个字符*

**System.*out*.println(sbBuilder.toString()); *// 输出: Initial Append*

**}

}

5、编写程序,展示使用SimpleDateFormat将日期(Date) 字符串与对象形式相互转换


import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class DateFormatDemo {

**public static void main(String[] args) {

***// 定义日期格式*

**SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

***// Date对象转字符串*

**Date now = new Date(); *// 获取当前日期*

**String dateStr = sdf.format(now); *// 将Date对象转换为字符串*

**System.*out*.println("当前日期(字符串格式): " + dateStr);

***// 字符串转Date对象*

**try {

String specificDateStr = "2024-10-01"; *// 假设我们有一个特定格式的日期字符串*

**Date specificDate = sdf.parse(specificDateStr); *// 将字符串转换为Date对象*

**System.*out*.println("特定日期(Date对象): " + specificDate);

***// 注意:直接打印Date对象时,它并不会以我们指定的格式显示*

*// 如果需要以特定格式显示Date对象,我们仍然需要使用SimpleDateFormat的format方法*

**System.*out*.println("特定日期(重新格式化为字符串): " + sdf.format(specificDate));

} catch (ParseException e) {

e.printStackTrace();

System.*out*.println("日期字符串解析失败");

}

}

}

6、编写程序,使用LocalDate和LocalDateTime打印当前日期

import java.time.LocalDate;

public class LocalDateDemo {

public static void main(String[] args) {

*// 获取当前日期*

**LocalDate today = LocalDate.*now*();

System.*out*.println("今天的日期是: " + today);

*// 创建特定日期*

**LocalDate specificDate = LocalDate.*of*(2023, 10, 1);

System.*out*.println("特定日期是: " + specificDate);

*// 日期加减*

**LocalDate tomorrow = today.plusDays(1);

LocalDate lastMonth = today.minusMonths(1);

System.*out*.println("明天是: " + tomorrow);

System.*out*.println("上个月同期是: " + lastMonth);

*// 日期比较*

**if (today.isAfter(specificDate)) {

System.*out*.println("今天晚于特定日期");

}

}

}

import java.time.LocalDateTime;

import java.time.format.DateTimeFormatter;

public class LocalDateTimeDemo {

public static void main(String[] args) {

*// 获取当前日期和时间*

**LocalDateTime now = LocalDateTime.*now*();

System.*out*.println("现在的日期和时间是: " + now);

*// 创建特定日期和时间*

**LocalDateTime specificDateTime = LocalDateTime.*of*(2024, 10, 1, 12, 0, 0);

System.*out*.println("特定日期和时间是: " + specificDateTime);

*// 日期时间加减*

**LocalDateTime later = now.plusHours(2);

LocalDateTime earlier = now.minusMinutes(30);

System.*out*.println("两小时后是: " + later);

System.*out*.println("半小时前是: " + earlier);

*// 日期时间比较*

**if (now.isAfter(specificDateTime)) {

System.*out*.println("现在晚于特定日期和时间");

}

*// 使用自定义的格式化模式*

**DateTimeFormatter formatter = DateTimeFormatter.*ofPattern*("yyyy-MM-dd HH:mm:ss");

String specificDateTimeStr = specificDateTime.format(formatter);

System.*out*.println("自定义格式日期时间: " + specificDateTimeStr);

String laterStr = later.format(formatter);

System.*out*.println("自定义格式日期时间: " + laterStr);

String earlierStr = earlier.format(formatter);

System.*out*.println("自定义格式日期时间: " + earlierStr);

}

}

七、实验考核

本实验考核采用【实验随堂查】方式开展。

每个实验完成后,在实验课上通过现场演示的方式向实验指导教师进行汇报,并完成现场问答交流。

每个实验考核满分100分,其中实验成果汇报60分,现场提问交流40分。

实验考核流程:

(1)学生演示汇报实验内容的完成情况,实验指导老师现场打分。

(2)指导老师结合实验内容进行提问,每位学生提问2-3个问题,根据回答的情况现场打分。

(3)实验考核结束后,进行公布成绩。