Java 变量
变量的概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元。包含变量类型,变量名和存储的值
变量的作用
- 用于在内存中保存数据
使用变量注意的地方
- Java 中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对{}内
- 变量只有在其作用域内才有效
- 同一个作用域内,不能定义重名的变量
class IdentifierTest{
public static void main(String[] args){
// 变量的定义
int myNumber = 1001;
// 变量的使用
System.out.println(myNumber);
// 变量的声明
int my2Number;
// 变量的赋值
my2Number = 1002;
System.out.println(my2Number);
}
}
Java 变量的分类
基本数据类型:
整型: byte, short, int, long
浮点型: float, double
字符型: char
布尔型: boolean
引用数据类型:
类(class)
接口(interface)
数组(array)
整型: byte, short, int, long
- java 的整型常量默认为 int 型,声明 long 型常量须后加 'l' 或 'L'
- java 程序中变量统筹声明为 int 型,除非不足以表示较大的数,才使用 long
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节=8bit位 | -128~127 |
short | 2字节 | -2^15 ~ 2^15-1 |
int | 4字节 | -2^31 ~ 2^31-1(约21亿) |
long | 8字节 | -2^63 ~ 2^63-1 |
class VariableTest {
public static void main(String[] args){
byte b1 = 12;
byte b2 = -128;
System.out.println(b1);
System.out.println(b2);
short s1 = 128;
int i1 = 1234;
long l1 = 1234567L;
System.out.println(s1);
System.out.println(i1);
System.out.println(l1);
}
}
浮点型: float, double
浮点型常量有两种表示方式:
- 十进制数形式: 如: 5.12, 512.0f, .512 (必须有小数点)
- 科学计数法形式:如:5.12e2, 512E2, 100E-2
- fload: 单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
- double: 双精度, 精度是 float 的两倍。通常采用此类型。
- Java 的浮点型常量默认为 double 型,声明fload型常量,须后加 'f' 或'F'
类型 | 占用存储空间 | 表数范围 |
---|---|---|
单精度 float | 4字节 | -3.403E38~3.403E38 |
双精度 double | 8字节 | -1.798E308~1.798E308 |
class VariableTest {
public static void main(String[] args){
// 浮点型:float(4字节), double (8字节)
// 浮点型,表示带小数点的数值
// float 表示数值的范围比 long 还大
double d1 = 123.3;
System.out.println(d1 + 1);
// 定义 float 类型时,需要以 "f" 或 "F" 结尾
float f1 = 12.3F;
System.out.println(f1);
// 通常定义浮点型变量时,使用 double 型
}
}
浮点型:
- char 型数据用来表示通常意义上"字符"(2字节)
- Java 中所有字符都使用 Unicode 编码,故一个字符可以存储一个字母,一个汉字或其他书面语的一个字符
- char 类型是可以进行运算的。如: u000a 表示
class VariableTest {
public static void main(String[] args){
// 字符型: char(1个字符=2个字节)
// 定义 char 型变量,通常使用一对 ''
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(c2);
// 声明一个转义字符
char c3 = '
';
System.out.print("Hello" + c3);
System.out.println("World");
char c4 = 'u0043';
System.out.println(c4);
}
}
布尔型: boolean
boolean 型只能取两个值之一: true, false
常常在条件判断,循环结构中使用
class VariableTest {
public static void main(String[] args){
boolean bb1 = true;
System.out.println(bb1);
boolean isMarried = true;
if(isMarried){
System.out.println("Good");
} else {
System.out.println("Not bad");
}
}
}
字符串类型:String
- String 不是基本数据类型,属于引用数据类型, 翻译为:字符串
- 使用方式与基本数据类型一致。例如: String str="abcd"
- 声明 String 类型变量时,使用一对 ""
- 一个字符串可以串接另外一个字符串,也可以直接串接其他类型的数据。
- String 可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
- 运算的结果仍然是 String 类型
class VariableTest4 {
public static void main(String[] args) {
String s1 = "Hello World!";
System.out.println(s1); // Hello World!
}
}
class StringTest{
public static void main(String[] args){
char c = 'a';
int num = 10;
String str = "hello";
System.out.println(c + num + str); //107hello
System.out.println(c + str + num); //ahello10
System.out.println(c + (num + str)); //a10hello
System.out.println(str + num + c); //hello10a
System.out.println("* *"); //* *
System.out.println('*' + ' ' + '*'); //93
System.out.println('*' + " " + '*'); //* *
System.out.println('*' + ' ' + "*"); //51*
System.out.println('*' + (' ' + "*")); //* *
}
}