一、实验目的
1.掌握标识符命名规则;
2.基本数据类型的声明;
3.基本数据类型的初始化;
4.掌握从键盘输入数据。
二、实验内容
2.1 编写一个程序声明8种基本数据类型的变量
编写一个程序声明8种基本数据类型的变量,并将其初始化,在程序中打印出这些变量的值。
public class Exam_2 {
public static void main(String[] args) {
boolean Yes = true;
int i = 0;
byte b = 127;
short s = 1000;
long l = 1000000;
char c = '李';
float f = 0.12f;
double d = 0.123456;
System.out.println("boolean 类型:" + Yes);
System.out.println("int 类型:" + i);
System.out.println("byte 类型:" + b);
System.out.println("short 类型:" + s);
System.out.println("long 类型:" + l);
System.out.println("char 类型:" + c);
System.out.println("float 类型:" + f);
System.out.println("double 类型:" + d);
}
}
运行结果:
通过自己实验测试和网上了解得到八种基本类型的取值范围,有以下总结:
byte
8位、有符号的以二进制补码表示的整数
min : -128(-2^7)
max: 127(2^7-1)
short
16位、有符号的以二进制补码表示的整数
min : -32768(-2^15)
max: 32767(2^15 - 1)
int
32位、有符号的以二进制补码表示的整数
min : -2,147,483,648(-2^31)
max: 2,147,483,647(2^31 - 1)
long
64位、有符号的以二进制补码表示的整数
min : -9,223,372,036,854,775,808(-2^63)
max: 9,223,372,036,854,775,807(2^63 -1)
float
单精度、32位、符合IEEE 754标准的浮点数
float 在储存大型浮点数组的时候可节省内存空间
浮点数不能用来表示精确的值,如货币
double
双精度、64位、符合IEEE 754标准的浮点数
浮点数的默认类型为double类型
char
char类型是一个单一的 16 位 Unicode 字符
最小值是 \u0000(即为0)
最大值是 \uffff(即为65,535)
char 数据类型可以储存任何字符
boolean
boolean数据类型表示一位的信息
只有两个取值:true 和 false
2.2 编写一个程序声明不初始化8种基本数据类型的变量
在上一个程序中尝试不初始化变量时会出现的运行结果截图。
java中局部变量没有初始值,运行时会直接报错:java: 可能尚未初始化变量XX。通过网络查找,为什么java局部变量不初始化会报错:
编译器当然可以为局部变量附一个默认值,但是未初始化的局部变量更有可能是程序员的疏忽,所以采用默认值范围会掩盖这种失误。因此强制程序员提供一个初始值,往往能够帮助找出程序里的缺陷。
2.3 通过键盘输入
编写Java程序,在程序中通过键盘输入8种基本数据类型种的任意四种,并输出结果。(注意在输入每种数据之前要提醒用户输入的类型如“请用户从键盘输入一个整数:”)
public class Exam_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("输入一个整数:" );
int intType = scanner.nextInt();
System.out.println("输入的整数为:"+intType);
System.out.print("输入一个单精度浮点数:" );
float floatType = scanner.nextFloat();
System.out.println("输入的单精度浮点数为:"+floatType);
System.out.print("输入一个字符:" );
char charType = scanner.next().charAt(0);
System.out.println("输入的字符为:"+charType);
System.out.print("输入一个布尔数:" );
boolean booleanType = scanner.nextBoolean();
System.out.println("输入的整数为:"+booleanType);
}
运行结果:
关于java中的键盘录入:
我们可以通过 Scanner 类来获取用户的输入。使用步骤如下:
1、导包:
Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。
import java.util.Scanner;
2、创建Scanner对象:
Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变
3、接收数据
示例:int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。
三、实验心得
通过此次实验,我了解了Java中的八大基本数据类型,而且自己还测试了各种数据类型的取值范围,收获了很多,另外学会了通过键盘录入数据,输出数据,编程实力又更上一层楼了。
总结一下,为什么局部变量需要手动初始化?从技术上来讲,局部变量一般来说总量大,生命周期短,JVM进行初始话开销较大;从业务上讲,局部变量一般用于实际问题下的运算,很少会用到默认值,赋值意义不大;从编程思想上讲,局部变量不初始化,而是报错提醒,更有助于程序员减少开发过程中出现缺陷的可能。