变量作为Java程序最基础的组成部分之一,那么什么是变量呢?
变量其实就是一个记号,在程序中标识数据或者其他变量。举个例子,如果我们需要计算 x / 2 + y 的值,假设不用变量,每次计算都要给定具体数据。更麻烦的是,如果后续有100个计算式用到了 x 和 y 的值,那每次修改数据都要改100次。但是用了变量就不会那么麻烦了,我们只需要修改1次,使用到该变量的计算式都会用到我们修改后的新数据。
Java定义变量的方式很简单
数据类型 变量名 = 表达式
数据类型:包括8种基本数据类型和类
变量名:变量名需要符合Java规范。通常是以$或者_或者字母开头,后面跟着一串字母或者数字。
注意1: Java变量名是大小写敏感,a和A为2个不同的变量。以下为合法变量名: _sub,$age,some,Thing
以下为非法变量名:1name
表达式:可以是数据(int a = 1)、带返回值的函数或者方法(int a = calc())、对象构造方法(Student a = new Student())。需要提醒的是定义变量时的=不是数学概念中的=。定义变量时用的=为赋值作用,表示=左边的变量的值为=右边表达式的值,同学们注意不要混淆。
注意2: Java变量在定义时需要初始化它的变量值,否则编译器会提示错误。
接着我们讲基本数据类型
Java基本数据类型分为4类,分别为整数:byte,short,int,long
浮点数:float,double
逻辑代数:boolean
字符:char
(前置学习推荐:计算机的数值表示,包括二进制,位,字节等概念)
byte大小为1字节,也就是8位。byte类型所能容纳的数值界限为[-128, 127]
short大小为2字节,也就是16位,short类型所能容纳的数值界限为[-32768, 32767]
int大小为4字节,也就是32位,int类型所能容纳的数值界限为[-2147483648, 2147483647]
long大小为8字节,也就是64位,long类型所能容纳的数值界限为[-9223372036854775808, 9223372036854775807] 是不是感觉long类型数字特别巨大
下面是定义整数的例子
byte b = 100;
short s = 10000;
int i = 328888;
long l = 23232332323L; // long类型结尾需要加L,表示该数值为longint h = 0xffff; // 0x开头表示16进制数int b = 0b101010; // 0b开头表示2进制数
float大小为4字节,也就是32位,float类型所能容纳的数值界限为[-3.4e+38, 3.4e+38]
double大小为8字节,也就是64位,double类型所能容纳的数值界限为[-1.79e+308, 1.79e+308]
下面是定义浮点数的例子
float f = 1.2e12f; // float类型结尾需要加f,表示该数值为floatdouble d = 3.6e100; // 结尾不加f的浮点数默认为double类型
boolean大小为1字节,也就是8位,boolean类型只有2个值,true和false
下面是定义布尔数的例子
boolean t = true;
boolean f = false;
char大小为2字节,也就是16位,因此char类型可以容纳2字节以内的unicode字符
下面是定义字符数据的例子
char name = 's';
char zh = '中';
常量
我们知道在数学中有些符号代表特定数值,如π,e等。在Java程序中即可把这类数值定义成常量
Java定义常量的关键字是 final 。定义成常量的变量一旦初始化后无法被修改! 一个好的编程习惯是把常量变量名定义为全大写,并且用下划线分隔单词。
final double PI = 3.1415;
final double E = 2.7182;
final int EVERY_HOUR_SECONDS = 3600;
PI = 1.222; // 错误,pi是常量,无法被修改
变量作用域
作用域的意思是变量定义的范围,在变量的作用域外是无法获取到变量的。Java的作用域使用一对{}表示的。
if () {
int a = 1;
if () {
int b = a * 2; // 作用域可以嵌套,内层作用域的变量可以获取外层作用域的变量 }
}
int c = a + 1; // 错误,因为a变量不在c变量的作用域内,无法获取到a变量
总结Java有8种基本数据类型
常量一旦定义好无法被修改
注意变量的作用域