3

大数据必学Java基础(十一):变量和常量

 2 years ago
source link: https://blog.51cto.com/lansonli/5509047
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

变量和常量

丽丽的年龄:去年17岁,今年18岁,明年19岁

年龄:17--》18---》19  --》值不断变化  

年龄---》变量

常量:  17  ,  18  ,  19    ----》 常量中的字面常量

一、字面常量

1、常量分为两种

常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。

在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。

为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量(字符常量)。

2、字面常量的类型

大数据必学Java基础(十一):变量和常量_赋值

注意:逻辑常量就两个值,一个是true,一个是false

变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

1、变量声明格式

type  varName [=value][,varName[=value]...]; //[ ]中的内容为可选项,即可有可无

数据类型  变量名  [=初始值] [,变量名  [=初始值]…];

int age = 19 , age2 = 90 ;

int

2、变量的声明

(1)如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义:

大数据必学Java基础(十一):变量和常量_变量名_04

(2)变量如果没有进行赋值的话,那么使用的时候会出错,告诉你:尚未初始化变量:  

大数据必学Java基础(十一):变量和常量_变量名_06

3、变量的赋值

大数据必学Java基础(十一):变量和常量_变量名_08

我们自己定义的时候直接就可以用一句话定义:

int age = 10;

变量的值可以更改:

public class TestVar01{
public static void main(String[] args){
//变量的声明(定义变量)(以年龄为案例讲解)
//java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
int age ; //定义一个整数类型的变量,变量名字为age
//对变量进行赋值操作:
age = 10; //变量名字为age,具体的值为10
age = 12;
age = 20;
age = age + 4;
age = 9;
age = 9;
System.out.println(age);

}
}

变量不可以重复定义:

大数据必学Java基础(十一):变量和常量_存储空间_11

4、变量的使用

public class TestVar01{
public static void main(String[] args){
//变量的声明(定义变量)(以年龄为案例讲解)
//java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
int age ; //定义一个整数类型的变量,变量名字为age
//对变量进行赋值操作:
age = 10; //变量名字为age,具体的值为10
age = 12;
age = 20;
age = age + 4;
age = 9;
age = 9;
System.out.println(age);
System.out.println(age-2);
System.out.println(age+10);
int num = age + 66;
System.out.println(num);

}
}

 扩展

public class TestVar02{
public static void main(String[] args){
int a = 10;
int b = 20;
int c =

现在对上述代码进行“反编译过程”“反汇编过程”

大数据必学Java基础(十一):变量和常量_赋值_15
大数据必学Java基础(十一):变量和常量_存储空间_17

5、变量的内存

大数据必学Java基础(十一):变量和常量_变量名_19
public class TestVar03{
public static void main(String[] args){
int num1 = 10;
int num2 = 20;
num1 = num2;
num2 = num2 + 10;
num1 = num2 - 10;
num2 = num1;
System.out.println("num1="+num1);
System.out.println("num2="+num2);
}
}

内存分析

大数据必学Java基础(十一):变量和常量_存储空间_22
大数据必学Java基础(十一):变量和常量_变量名_24

7、变量的作用域

作用域指的就是作用范围,变量在什么范围中有效

作用范围就是离它最近的{}

备注:一会我们写的代码,不要去运行,会出错

/*
局部变量:定义在方法中
成员变量:定义在类中,方法外
*/
public class TestVar04{
int b = 20;
public static void main(String[] args){
System.out.println(a);//no
int a = 10;
System.out.println(a);//yes
System.out.println(b);//yes
{
int c = 40;
System.out.println(c);//yes
int a = 50;//属于变量的重复定义
}
System.out.println(c);//no
}

public void eat(){
System.out.println(b);//yes
System.out.println(a);//no
int a = 30;//不是变量的重复定义
System.out.println(a);//yes

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK