08 变量

理解变量本质是什么,在开发中有什么用?变量三要素是什么?怎么声明变量?怎么给变量赋值?变量是如何分类的?变量的作用域?

变量:变量是内存当中存储数据最基本的单元

什么是变量?
		变量其实就是内存当中存储数据的最基本的单元。
		变量就是一个存储数据的盒子。

	在java语言当中任何数据都是有数据类型的,其中整数型是:int
		没有为什么,java中规定的,整数型就是:int
	
	当然,在java中除了数据类型int之外,还有其它的类型,例如带小数的:double等。。。

	数据类型有什么用呢?
		记住:不同的数据类型,在内存中分配的空间大小不同。
		也就是说,Java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。
		根据不同的类型,分配不同大小的空间。
	
	对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。

    1个字节=8个比特位
	1个比特位就是一个10. 注意:比特位是二进制位。
	int是占用多少个二进制位?1int占有32个二进制位(bit位)

    对于一个变量来说,包括三要素:
		变量的数据类型
		变量的名字
		变量中保存的值
   类型+名字+值
   类型决定空间的大小。
   起个名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的。)
   值是变量保存的数据。
变量怎么声明/定义,语法格式是什么?
	数据类型 变量名;
	例如:
		int nianLing;

在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟。)

在java语言中怎么给一个变量赋值呢,语法格式是什么?
	记住:使用一个运算符,叫做“=”,这个运算符被称为赋值运算符。
	赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。

变量可以声明的时候赋值吗?可以的。
public class VarTest02{

	/**
	* 这是一个程序的入口
	* @param args是main方法的参数
	*/
	public static void main(String[] args){

		// 定义一个int类型的变量,起名nianLing,该变量用来存储人的年龄。
		int nianLing;
		
		// 变量声明之后,没有手动赋值,可以直接访问吗?
		// 编译报错:错误: 可能尚未初始化变量nianLing
		//System.out.println(nianLing);

		// 给变量赋值
		nianLing = 45;
		System.out.println(nianLing); // 这是访问变量。

		System.out.println("nianLing"); // 这是访问字符串。

		// 变量:可以变化的量。
		// 重新赋值
		nianLing = 80;
		System.out.println(nianLing);

		// 再次重新赋值
		nianLing = 90;
		System.out.println(nianLing);

		// 体重80kg
		int tiZhong = 80;
		System.out.println(tiZhong);
	}
}

变量的作用域?

/*
	变量的作用域?
		1、什么是作用域?
			变量的有效范围。
		2、关于变量的作用域,大家可以记住一句话:
			出了大括号就不认识了。(死记这句话。)
		3、java中有一个很重要的原则:
			就近原则。(不仅java中是这样,其它编程语言都有这个原则。)
			哪个离我近,就访问哪个。
*/

public class VarTest08{

	// 成员变量
	int i = 10000;

	public static void main(String[] args){
		// 局部变量
		int i = 100; // 这个i的有效范围是main方法。
		System.out.println(i); // 这个i是多少?

		// 同一个域当中,这是不允许的。
		//int i = 90;  

		// 考核一下:以下编写for循环你看不懂,没关系,后面会将。
		for(int n = 0; n < 10; n++){ // 这里声明的n变量只属于for域。for结束后n释放没了。
			// 这里没有编写代码。
		}

		// for循环执行结束之后,在这里访问n变量可以吗?
		//System.out.println(n);  //错误: 找不到符号

		int k; // 属于main域。
		for(k = 0; k < 10; k++){

		}
		// 能否继续访问k呢?
		System.out.println(k);
	}

	// 这个方法怎么定义先不用管,后面会学习。
	public static void x(){
		// 在这个位置上能访问i吗?
		// 错误: 找不到符号
		// System.out.println(i); // i是无法访问的。

		// 可以定义一个变量起名i吗?
		// 这个i的有效范围是x方法。
		// 局部变量
		int i = 200; // 所以这个i和main方法中的i不在同一个域当中。不冲突。
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值