JavaSE基础 第三章 变量

Java第三章 变量

1. 字面量

  1. 关于程序当中的数据 :
    开发软件是为了解决现实世界中的问题, 而现实世界中, 有很多问题都是使用数据进行描述
    的, 所以软件执行过程中最主要就是对数据的处理.
    软件在处理数据之前需要能够表示数据, 在Java代码中表示数据, 有一个概念叫做字面量,
    也就是数据.
    10
    1.23
    true
    ‘a’
    "abc"等 都叫做字面量

  2. 数据被分为:整数型、浮点型、字符型、布尔型、字符串型等。
    整数型(数字):1、2、100、-2, -10
    浮点型(数字,带小数):1.0、2.0、3.14
    字符型(文字,单个字符):‘a’
    字符串型 ( 一个字符串 ) : “abc”
    布尔型(真假):true ( 真 )、false ( 假 ), 布尔型只有这两个

  3. 如何区分字符型和字符串型 :
    单引号引起的 : 字符型
    双引号引起的 : 字符串型

public class VarTest{
	public static void main(String[] args){

		System.out.println(100);	// 100
		System.out.println(1.23);	// 1.23
		System.out.println(true);	// true
		System.out.println(false);	// false
		System.out.println('a');	// a
		System.out.println("abc");	// abc
		System.out.println("中");	// 中
		System.out.println("国");	// 国


		//定义/声明 一个变量, 起名i
		int i = 10;
		System.out.println(i);

		// 以下程序访问的是字符i和字符串i, 以下的两个i和i变量没有任何关系.
		System.out.println('i');
		System.out.println("i");
	}
}

2. 变量

变量的引入

  1. 10 + 20 = 30
    在内存中找一块空间存储10, 再找一块空间存储20, CPU负责"+"运算, 算出来的结果30再存放到一块空间中.

  2. 分析一下, 如果只有字面量, 没有变量机制的话, 有什么问题?
    // 以下虽然都是10, 但是这三个10占用三块不同的内存空间.
    System.out.println(10);
    System.out.println(10);
    System.out.println(10); // 只有字面量的话, 是远远不够的, 因为字面量内存是无法重复利用的.
    int i = 10;
    // 以下访问的是同一块内存空间. ( 这样使用变量后, 内存空间就得到了复用 )
    System.out.println(i);
    System.out.println(i);

变量的理解

  1. 变量的理解 :
    内存当中存储数据的最基本的单元.

  2. 在java语言中任何数据都是有数据类型的
    整数型 : int
    浮点型 : double
    布尔型 : boolean

  3. 数据类型的作用 :
    不同的数据类型在内存中分配的空间大小不同.
    也就是说JVM到底给这个数据分配多大的空间, 主要还是看这个变量的数据类型.

  4. 对于int, JVM会自动给它分配4个字节 ( byte ) 的空间.
    1byte = 8bit ( 比特位 )
    1bit就是一个1或0 ( 二进制位 )

  5. 那么int占用了多少个bit呢?
    4 * 8 = 32bit

  6. 变量的三要素 :
    变量的数据类型
    变量的名字
    变量中保存的值

    int i = 10;
    类型 名字 值

  7. 变量命名规范 :
    首字母小写, 后面每个单词首字母大写, 遵循驼峰原则, 见名知意.

变量的声明/定义

  1. 变量的声明/定义 :
    数据类型 + 变量名
    int nianLing;

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

  3. 变量赋值 :
    nianLing = 20;
    // 赋值运算符 : “=”, 特点 : 等号右边先执行, 执行完后有赋值给左边的变量.

在同一个域中变量不能重复声明

public class VarTest01{
	public static void main(String[] args){

		// 声明变量, 并赋值
		int nianLing = 10;
		System.out.println(nianLing);

		// 重新赋值
		nianLing = 20;
		System.out.println(nianLing);
		
		int nianLing = 30;
		System.out.println(nianLing);
		// 结论 : 在同一个作用域中变量可以重新赋值, 但是不能重复声明

	}
}

一行上可以同时声明 多个变量

在这里插入图片描述

变量的分类

  1. 根据出现的位置进行划分 :
    局部变量 ( 在方法体中 )
    成员变量 ( 在方法体外, 类体内 )

  2. 注意 :
    局部变量只在方法体中有效, 方法体执行结束, 该变量的内存就释放了.

public class VarTest03{

	// 成员变量
	int i = 10;

	public static void main(String[] args){
		
		// 局部变量
		int j = 20;	// main方法结束后j的内存将释放
	}
}

变量的作用域

  1. 作用域 : 变量的有效范围
  2. 出了大括号就不认识了
  3. 不同的方法中的变量可以重名
  4. 局部变量和成员变量可以重名, 重名时, 哪个离我近就访问哪个 ( 就近原则 ), 但是不建议重名.
public class VarTest04{

	// 成员变量
	int i = 100;

	public static void main(String[] args){
		// 局部变量
		// int i = 10;

		for (int j = 0; j < 10; j++){

		}
		// System.out.println(j);	// 不能访问, 因为j属于for域, 只在for中有效

		int k;
		for (k = 0; k < 10; k++){

		}
		System.out.println(k);	// 可以访问, 因为k属于main域
	}

	// 这个方法如何定义不用管, 后面会学
	public static void x(){
		// System.out.println(i);	// i是无法访问的, 因为i出了main方法的大括号就失效了.

		int i = 20;	// 这个i的有效范围是x方法, 与main方法中的i不冲突.
	}
}

变量的复制

在这里插入图片描述
在这里插入图片描述

数据类型补充

在这里插入图片描述

3. 章节练习

	通过变量来描述学生的信息,学生信息包括:学号、姓名、性别、身高。其中学号采用整数,姓名采用字符串,性别采用字符型,身高采用浮点型. 
	
	具体的学生数据有两份,第一个学生信息是:学号 110,姓名张三,性别男,身高1.85 米。第二个学生信息是:学号 120,姓名李四,性别女,
身高 1.65 米。要求最终将学生的信息输出到控制台。输出结果如下图所示:

在这里插入图片描述

4. 习题答案

public class VarTest05{
	public static void main(String[] args){
		int ID1 = 110;
		String name1 = "张三";
		char sex1 = '男';
		double height1 = 1.75;
		System.out.println("学号: " + ID1);
		System.out.println("姓名: " + name1);
		System.out.println("性别: " + sex1);
		System.out.println("体重: " + height1);
		System.out.println("-----------");
		int ID = 120;
		String name = "李四";
		char sex = '女';
		double height = 1.65;
		System.out.println("学号: " + ID);
		System.out.println("姓名: " + name);
		System.out.println("性别: " + sex);
		System.out.println("体重: " + height);
	}
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值