前言
Java定义的变量可以按照两种方式进行划分。1.按照数据类型来划分 2.按照声明的位置来划分。
一、变量按照数据类型划分
1.基本数据类型
整型:byte(1字节) / short (2字节)/ int (4字节)/ long(8字节)
浮点型:float (4字节)/ double(8字节)
字符型:char(1字符=2字节)
布尔型:boolean
class VariableTest1 {
public static void main(String[] args) {
//1.整型:byte(1个字节) / short(2个字节) / int(4个字节) / long(8个字节)
//byte范围:-128 ~ 127
byte b1 = 12;
byte b2 = -128;
//b2 = 128; //编译不通过,超过了范围
System.out.println(b1);
System.out.println(b2);
// 声明long型变量,必须以"l"或"L"结尾
// 通常定义整形变量时,使用int型
short s1 =128;
int i1 = 1234;
long l1 = 4346446342L;
System.out.println(l1);
//2.·浮点型: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型
//3.字符型:char(1字符=2个字节)
// 定义char型变量,使用一对单引号,单引号内只能写一个字符
char c1 = 'a';
//编译不通过
//c1 = 'ab';
System.out.println(c1);
char c2 = '1';
char c3 = '中';
char c4 = '^';
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
//表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值表示字符型常量
char c5 = '\n'; //换行符
c5 = '\t'; //制表符
System.out.print("hello" + c5);
System.out.println("world");
char c6 = '\u0043';
System.out.println(c6);
//4.布尔型:boolean
// 只能取两个值之一:true,false
// 常常在条件判断,循环结构中使用
boolean bb1 = true;
System.out.println(bb1);
boolean isMarried = true;
if(isMarried){
System.out.println("很遗憾,你就不能参加\"单身\"party了!");
}else{
System.out.println("你可以多谈谈女朋友!");
}
}
}
2.引用数据类型
类(class)
接口(iterface)
数组(array)
二、变量按照声明的位置划分
1.成员变量
成员变量所在位置:在类中,方法外
成员变量是指在类体的变量部分中定义的变量,也称为属性。
2.局部变量
局部变量所在位置:在方法的方法体内定义,方法的形参等。
public class Person{
public int age;
public String name;// age,name都是成员变量
public void tell(int age, String name){
int a = age + 1;//age,name,a都是局部变量
System.out.println("姓名:"+ name + " 年龄:"+ age);
}
}
3.成员变量和局部变量之间的区别
1.从语法形式上,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所修饰;但是,成员变量和局部变量都能被final所修饰;
2.定义的位置不同成员变量:在方法的外部,直接写在类当中。局部变量:方法的内部。
3.作用的范围不同成员变量:整个类可以通用。局部变量:只有在方法中才可以使用,出了方法就不可以使用。
4.默认值不一样成员变量:如果没有进行赋值,会有默认值,规则和数组一样。局部变量:没默认值,需要赋值才可以使用。
5.内存位置不一样成员变量:位于堆当中。局部变量:位于栈当中。
6.生命周期不同成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失。局部变量:随着方法进栈而诞生,随着方法出栈而消失。相对于成员变量,一般来说局部变量存在的时间更短一点。