变量和数据类型
1.变量:
计算机的内存类似于人的电脑,计算机使用内存来记忆大量运算时要使用的数据。内存是一个物理设备,如何用来存储数据呢?很简单,把内存想象成一间旅馆,要存储的数据就好比要住宿的客人。试想一下去旅馆住宿的场景。首先,旅馆的服务人员会询问你要住什么样的房间,如单人间、双人间,总统套房;然后,根据选择的房间类型,服务员会安排一个合适的房间。"先开房间,后入住"就描述了数据存入内存的过程。首先,根据数据的类型为它在内存中分配一块空间(即找一个合适的房间),然后数据就可以放进这块空间中(即入住)。那么数据为什么对存储空间有要求呢?试想有三个客人,服务员安排了一个单人间,这能入住吗?分配的空间过小会导致数据无法存储。
变量与房间的对应关系
旅馆的房间 | 变 量 |
---|---|
房间的名称 | 变量名 |
房间类型 | 变量类型 |
入住的客人 | 变量的值 |
通过变量名可以简单快速地找到它存储的数据。将数据指定给变量,就是将数据存储到以别名为变量名的那个房间;调用变量,就是将那个房间中的数据取出来使用。可见,变量是存储数据的一个基本单元,不同的变量互相独立。
2.数据类型:
不同的数据类型
计算机的基本作用就是运算。要运算就需要数据,这些数据可以由用户输入,从文件获得,甚至从网络中得到。数据不计其数,但我们可以把数据归类。例如,根据是整数还是小数,是一串字符还是单个字符来分类。例如,对下面进行分类
手机品牌:"三星"、"小米"、"苹果"。
手机价格(单位:元):4500.34、1200.00、3900.5。
手机电池待机时间(单位:天):2、5、3。
这里,手机品牌都是由一串字符组成的,手机价格都是小数,手机电池待机时间都是整数。当然还会经常碰到别的数据,如手机"开"或"关",这就是一个字符。
java常用数据类型
如何在程序中表示不同类型的数据呢?java中定义了许多数据类型,生活中的数据都能在这里得到匹配。以下表列出了java常用的数据类型。
java常用数据类型
数据类型 | 说 明 | 举 例 |
---|---|---|
int | 整型 | 用于存储整数,如学员数量,某公司的员工编号、一年的天数、一天的小时数 |
double | 双精度浮点型 | 用于存储带有小数点的数字,如商品的价格、世界银行给其他国家(地区)的贷款金额、员工工资 |
char | 字符型 | 用于存储单个单位,如:性别:'男' 或 '女'、成绩:'优' 或 '良' |
String | 字符串型 | 用于存储一串字符,如员工姓名、产品型号、产品的介绍信息 |
在变量中提到了"估计数据类型为它在内存中分配一块空间",数据的类型是整数、小数还是字符,不同的数据在存储时需要的空间各不相同。例如,int型的数值要占四字节,而double型的数值占八字节。因此,不同类型的数据就需要用不同大小的内存空间来存储。其中,int、double、char都是java定义的关键字。
3.变量声明以及使用:
在程序运行的过程中,将数值通过变量加以存储 ,以便程序随时使用,整体步骤如下。
- 估计数据的类型在内存中分配一个合适的"房间",并给它命名,即为 "变量名"。#
- 将数据存储到这个"房间"中。
- 从"房间"中取出数据使用,可以通过变量名来获得。
通过这几点,我们可以清楚想象到一个数据如何被存储到内存中及如何被取出来使用了。如何用java语言真正实现在一过程呢?
示列1: 在内存中存储本金1000元,显示内存中存储数据的值
public class MyVariable {
public static void main(String[] args) {
//存储本金
int money = 1000;
//显示存储的数据的值
System.out.println(money);
}
}
示列1展示了存储数据和使用数据的过程,输出结果如下。
虽然代码只有两行,但展示了如何定义和使用变量,任何复杂的程序都由此构成。下面对其分析。
- 声明变量,即"根据数据类型在内存中申请一块空间",这里需要给变量命名。
语法:
数据类型 变量名;
其中,数据类型可以是java定义的任意一种数据类型。例如,要存储java考试最高分98.5、获得最高分的学生下面"张三"及性别"男"。
double score; //声明双精浮点型变量score存储分数
String name; //声明字符串型变量name存储学生名字
char sex; //声明字符型变量sex存储性别
- 给变量赋值,即"将数据存储至对应的内存空间"。
语法:
变量名 = 值;
score = 98.5;
name = "张三";
sex = '男';
这样的分解步骤有些繁琐,也可以将步骤(1)和步骤(2)合二为一,如示列1所示,在声明一个变量的同时给变量赋值。
语法:
数据类型 变量名 = 值;
例如:
double score = 98.5;
String name = "张三";
char sex = '男';
调用变量,使用存储的变量,我们称之为"调用变量"。
System.out.println(score); //从控制台输出变量score存储变量的值 System.out.println(name); //从控制台输出变量name存储的值 System.out.println(sex); //从控制台输入变量sex存储的值
可见,使用声明的变量名就是使用变量对应的内存空间中存储的数据。
另外,需要重要的是,尽管可以选用任意一种自己喜欢的方式进行变量声明和赋值,但是要记住"变量都必须声明和赋值后才能使用"。因此要想使用一个变量,变量的声明和赋值必不可少。
4.变量命名规则:
旅馆可以随心所欲地给房间命名,可以是数字"1001",也可以是一些有趣的名称,如"美国总统"、"英国女王"、"埃塞俄比亚王妃"等。但是在给变量命名时,就要受到一些约束,如以下表所示。那么什么样的名称才算正确的呢?
变量命名规则
序号 | 条 件 | 合法变量名 | 非法变量名 |
---|---|---|---|
1 | 变量必须以数字、下划线"_"或"$"返回开头 | _myCar | * myvariablel //不能以*开头 |
2 | 变量可以包括数字,但不能以数字开头 | scorel | 9var-iable //不能以数字开头和不能包括连字符 |
3 | 除了"_"或"$"返回以外,变量名不能包含任何特殊字符 | $muCar | varible% //不能包含% |
4 | 不能使用Java语言的关键字,如int、class、public等 | graph1_1 | a+ b //不能包括+和空格 |
另外,java变量名的长度没有任何限制,但是java语言分大小写,所以price和Price是两个完全不同的变量。
注意:
java关键字是java中定义的、有特别意义的标识符,public、int、class、boolean、void、char、double、package、static等。随着学习的深入,会接触越来越多的java关键字。java关键字不能用做变量名、类名、包名等。
规范:
变量名要简且能清楚地表明变量的作用,可以由一个或多个单词组合而成,通常第一个单词的首字母小写,其后单词的首字母大写。例如:
int ageOfStudent; //学生年龄
int ageOfTeacher; //老师年龄
经验:
为了日后更容易维护程序,变量的名称要让人一眼就看出这个变量的作用。例如,ageOfStudent代表学生的年龄,ageOfTeacher代表老师的年龄。但是在初学时,很多人都喜欢使用一些简单的字母来作为变量名称,如a、b、c等。这样尽管正确,但是以后会发现,如果有100个变量,在使用时就会分不清某个变量代表什么意思。所以要尽量使用有意义的变量名,且最好使用简短的英文单词。
常见错误:
- 变量未赋值先使用
- 使用非法的变量名
- 变量名重名