Java基础篇 | 变量的理解、声明和使用

目录

🏀字面量(数据)

🏀2.变量

🥅变量的概述

🥅变量的使用、分类和作用域

🥅小试牛刀


知识框架

🏀字面量(数据)

❤️关于程序当中的数据
      ⭐️软件在处理数据之前需要能够表示数据,在java代码中怎么去表示数据呢?在java中有这样的一个概念:字面量
      ⭐️注意:在java语言中“数据”被称为“字面量”
  例如:10、1.23、true、false、'a'、"abc"以上这些都是数据,在程序中都被叫做“字面量”。

❤️字面量可以分为很多种类:
      ⭐️整数型字面量:1、2、 3、 100、 -100、 -20 ....
      ⭐️浮点型字面量:1.3、 1.2、 3.14.....
      ⭐️布尔型字面量:true、false,表示真和假;true表示真,false表示假
      ⭐️字符型字面量:'a'、'b'、'中'
      ⭐️字符串型字面量:"abc"、"a"、"b"、"中国"

❤️其中字符型和字符串型都是描述了现实世界中的文字:
     ⭐️需要注意的是:
                所有的字符型只能使用单引号括起来;
                所有的字符串型只能使用双引号括起来;   
               
                字符型一定是单个字符才能成为“字符型”,但是单个字符也可能是字符串;
                字符串型既可以单个字符也可以是多个字符;
     ⭐️在语法级别上怎么区分字符型和字符串型?
                主要看是双引号还是单引号。
                单引号的一定是字符型;双引号的一定是字符串型!

❤️分析:如果只有字面量,没有变量机制的话,有什么问题?
     ⭐️例如:10 是一个整数型数据,在内存中占有一定的空间(CPU 内存 硬盘)要计算10 + 20 = 30,需要在内存中找一块空间存储10,再找一块空间存储20,CPU负责“+”运算,算完之后的结果是30,那么这个30也会在内存当中找一块临时的空间存储起来。
     ⭐️思考:以下的三个10在内存当中是一块空间,还是三块不同的空间呢?
        以下虽然都是10,但是这3个10占用三块不同的内存空间。       

System.out.println(10);
System.out.println(10);
System.out.println(10); 

    ⭐️总结:只有“字面量”机制的话,是远远不够的,因为只有字面量内存是无法重复利用的

🏀2.变量

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

⭐️以上这3次访问都是访问的同一块内存空间。这样使用变量之后,内存空间就得到了复用;这就是定义变量的好处!

🥅变量的概述

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

❤️在java语言当中任何数据都是有数据类型的,其中整数型是:int;浮点型:double等

❤️数据类型有什么用呢?
      ⭐️注:不同的数据类型,在内存中分配的空间大小不同
      ⭐️也就是说,Java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。根据不同的类型,分配不同大小的空间。

❤️对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。
    ⭐️1个字节=8个比特位;1个比特位就是一个1或0。
    ⭐️注意:比特位是二进制位。所以1个int占有32个二进制位(bit位)
    ⭐️int i = 1; 实际上在内存中是这样表示的:00000000 00000000 00000000 00000001

❤️对于一个变量来说,包括三要素类型+名字+值例如:int  i = 10
     ⭐️变量的数据类型;类型决定空间的大小。
     ⭐️变量的名字; 名字是为了以后方便访问。
     ⭐️变量中保存的值;值是变量保存的数据。

 ❤️变量名属于标识符
     ⭐️首字母小写,后面每个单词首字母大写,遵循驼峰命名方式,见名知意。

     ⭐️例如:int i = 10;int nianLing = 20
 ❤️变量怎么声明/定义,语法格式是什么?
     ⭐️数据类型 变量名; 例如:int nianLing;
     ⭐️在java语言中有一个规定,变量必须先声明,再赋值才能访问
       (没有值相当于这个空间没有开辟)
     ⭐️例如:

public class Var{
	public static void main(String[] args){
		//1.先声明,在赋值
		int nianLing;
		nianLing = 20;
		System.out.println(nianLing);//20
        //还可以继续重新赋值
        nianLing = 80;
		System.out.println(nianLing);//80
		//2.边声明,边赋值
		int weight = 70;
		System.out.println(weight);//70
	}
}

🥅变量的使用、分类和作用域

❤️先理解域的含义

				{A域
					{B域
						{C域
						}
					}
				}

⭐️一个大括号代表一个域。
⭐️在“同一个域”当中,变量名不能重名!并且在当前域定义的变量,出了这个域就销毁了。

❤️例1: 

public class VarTest03{
	public static void main(String[] args){
		// 在这里可以访问k变量吗?
		// 注意:方法体当中的代码遵循自上而下的顺序依次逐行执行。
		// 所以以下程序编译报错。
		System.out.println(k); //错误: 找不到符号

		// 只有执行了这一行代码,k变量在内存中才会开辟空间。
		int k = 10;
	}
}

⭐️对于一个变量我们一定要先声明再赋值,才能够访问;所以一定要注意代码运行的顺序!

⭐️这里主要掌握报错的信息!错误: 找不到符号;这样以后编写代码出现相同的错误就会知道问题所在!

补充:编译所有的.java文件,javac *.java

❤️例2:

// 重要的结论:在同一个域当中,变量名不能重名,不能重复声明。
// 变量可以重新赋值,但在同一个域当中,不能重复声明。
public class VarTest04{
	public static void main(String[] args){
		// 声明一个整数型的变量起名nianLing,存储值20
		int nianLing = 20;
		System.out.println(nianLing);

		// 给变量重新赋值
		nianLing = 30;
		System.out.println(nianLing);

		// 错误信息:错误: 已在方法 main(String[])中定义了变量 nianLing
		int nianLing = 100;
		System.out.println(nianLing); //err,是在同一个方法体重定义相同的变量
		
	}
}

在同一个域中,可以对同一个变量进行重新赋值;但是不能重新定义相同的变量名!

❤️例3:

// 编译报错:类型不同,i变量也不能重复。(和类型没有关系。不能同名。)
public class VarTest05{
	public static void main(String[] args){

		// 整数型
		int i = 100;	
		System.out.println(i);

		// 浮点型(带小数的)
		// 错误: 已在方法 main(String[])中定义了变量 i
		double i = 1.2;
		System.out.println(i);//err

	}
}

计算时不同的类型,也不能定义相同的变量名!总之要杜绝定义相同的变量名!

❤️例4:

// 一行上可以同时声明多个变量
public class VarTest06{
	public static void main(String[] args){
		// 声明三个变量,都是int类型,起名a,b,c
		// 通过测试得出结论是:a,b没有赋值,c赋值100
		int a, b, c = 100;

		//1.错误: 可能尚未初始化变量a
		System.out.println(a);//未初始化,编译器会报错
		//2.错误: 可能尚未初始化变量b
		System.out.println(b);//未初始化,编译器会报错
        //3.正确
		System.out.println(c);

		// 给a、b赋值,然后才可以调用
		a = 200;
		b = 300;
		System.out.println(a);//初始化后就可以正常访问了
		System.out.println(b);//初始化后就可以正常访问了
		
	}
}

⭐️可以一行声明多个变量,变量与变量之间用逗号隔开,最后以分号结尾

⭐️例如:int a,b,c=10; 表示定义三个整型变量,但是只有c初始化赋值了可以直接调用;a和b要想使用必须先初始化一个值,才能被调用!

❤️例5:

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

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


public class VarTest07{

	//1.在类体重声明:成员变量
	int i = 100; // 整个类中都有效

	// 主方法
	public static void main(String[] args){
		//2.在方法体重声明:局部变量
		int k = 100; // 在方法体中声明,main方法结束k内存空间释放。
	}

}

⭐️变量主要分分为两种:成员变量和局部变量

    在类体内,方法体之外声明的是:成员变量;成员变量又分为:实例变量和静态变量

    在方法体内声明的是:局部变量,并且局部变量只在当前的方法体中有效;

public class Test {
 //1类体中声明---成员变量-----默认会赋初始值
      //1.1没有static修饰---实例变量
      int x;
      //1.2有static修饰---静态变量
      static int y;

    public static void main(String[] args) {
 //2.方法体中声明---局部变量-----默认不会赋初始值
      
     //局部变量---直接就能访问
        int i = 10;
        System.out.println(i);
        
      //实列变量---需要new对象才能能访问
        Test t = new Test();
        System.out.println(t.x);
       
      //静态变量---可以直接用“类名.”进行访问
        System.out.println(Test.y);//因为是本类当中,所以Test还可以省略
    }
    
}

❤️例6:就近原则(成员变量和局部变量)

(1)变量的有效范围:出了大括号(当前作用域)就销毁了
(2)java中有一个很重要的原则:就近原则

public class VarTest08{

	//1.定义在类体中:成员变量
	static int i = 10000;

	public static void main(String[] args){
		
        //2.定义在方法体中:局部变量
        //i的有效范围是main方法
		int i = 100; 
		System.out.println(i); //100,就近原则

	}

	//这个方法怎么定义,后面会学习。
	public static void x(){
        
        //3.定义在方法体中:局部变量
        //i的有效范围x方法
		//所以这个i和main方法中的i不在同一个域当中。不冲突!
		int i = 200; 
	}
    
    //4.在for循环里定义变量,n作用域只在for域
    for(int n = 0; n < 10; n++){ 
		}

		// for循环执行结束之后,在这里访问n变量可以吗?
		System.out.println(n); //错误: 找不到符号,不能继续访问n
        //这里声明的n变量只属于for域。for结束后n释放没了。
    
    //5.在for循环外定义变量,作用域实际上在main域
    int k = 0;
    for(k = 0; k < 10; k++){ 
		}
        System.out.println(k);//可以继续访问k
        //这里就能正常访问
}

⭐️定义子在类中体的变量(成员变量)和定义在方法体中的变量(局部变量),就算变量名相同,也不会冲突;可以正常编译。

⭐️定义在不同方法体中的相同变量,也不会冲突;可以正常编译。

⭐️对于成员变量和局部变量,根据就近原则,优先访问局部变量。

🥅小试牛刀

❤️输出学生信息包括:学号、姓名、性别、身高

public class Stu{
	public static void main(String[] args){
		//学号,定义整型用int
		int number = 1234;
		System.out.println("学号:"+number);//+号,类似于两个字符串进行拼接
		//姓名,定义为字符串型String
		String name = "张三";
		System.out.println("姓名:"+name);
		//性别,定义为字符型char
		char sex = '男';
		System.out.println("性别:"+sex);
		//身高,定义为浮点型height
		double height = 1.85;
		System.out.println("身高:"+height);
		
	}
}

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Java语言程序设计(基础) PDF》是一本介绍Java语言基础知识和编程技巧的电子书。这本书主要分为七个部分,从基本的概念开始逐步讲解Java语言的各个方面。 第一部分介绍了Java的发展历史和编程环境的安装,以及Java程序的基本结构和执行过程。读者可以了解到Java语言的特点和运行原理。 第二部分介绍了Java的数据类型和变量,包括基本数据类型、引用数据类型和常量的使用方法。此外,还详细介绍了Java的运算符和表达式的使用。 第三部分是关于流程控制的内容,包括条件语句、循环语句和选择结构。通过学习这一部分,读者可以了解Java中的条件判断和循环执行的方法。 第四部分介绍了数组和方法的使用,包括数组的声明和初始化、数组的遍历和排序,以及方法的定义和调用。这些是Java程序设计中常用的基本工具。 第五部分是关于面向对象编程的内容,包括类的概念、对象的创建和使用,以及封装、继承和多态等面向对象的基本概念和技巧。 第六部分介绍了异常处理和文件操作的方法。Java提供了强大的异常处理机制,可以帮助程序员处理潜在的错误情况。同时,Java也提供了丰富的文件操作功能,可以方便地进行文件的读写操作。 最后一部分介绍了Java的图形用户界面和事件处理。这些内容可以帮助读者了解如何使用Java创建图形化界面,并且可以对用户的操作做出相应的响应。 总的来说,《Java语言程序设计(基础) PDF》是一本系统全面、内容详细的Java语言教材,适用于初学者和有一定编程基础的读者。通过阅读这本书,读者可以全面掌握Java语言的基本知识和编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@每天都要敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值