栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)

java语言语法— Java标识符、Java关键字、Java变量和常量(包括Java字节码文件反汇编命令javap) 1.标识符

(1)读音:biao zhi fu
(2)什么是标识符?

(摘自百度百科)

简单来说,标识符就是一个名字

(3)标识符命名的规则:

  1. 组成部分(4个可以):数字、字母(尽量用英文,虽然汉子、日文、俄语都可以)、下划线_、美元符号 $
  2. 2个不可以:第一,不能以数字开头(例如1num不可以,但是num1可以);第二,不能采用Java中的关键字命名(Java 的关键字有其特殊的用途用于编译,否则编译器无法编译Java文件了)
  3. 命名的长度没有限制,但是尽量不要太长,而且最好养成习惯,不要胡乱命名,尽量见名知义,这样可读性也高,利于变成效率的提高
  4. Java大小写敏感(例如,int num; 和int NUM ;中的num和NUM 完全是两个变量)
  5. 有时遵循驼峰命名,有时不需要驼峰命名
    比如:类名:首字母大写,遵循驼峰命名(例如,HelloMyCode)
    变量名、方法名:首字母小写,遵循驼峰命名(例如,makeChoices)
    包名:全部小写(例如,com.bones.test)
2.关键字

关键字被赋予特殊用途,不能用来作为标识符
Java中的关键字都是小写
下面的关键字了解就可以,不用故意去记住,因为真正敲代码的人不可能不知道下面的关键字,用多了就记住了
不过我个人有时候会有一些误区,比如误以为Java中的true这些是关键字,后来一查居然不是,这些只是Java的常用字面量

官网有提供Java关键字的罗列:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

下面是分类的罗列:

3.常量

(1)常量:程序运行过程中不会变化的量。
(2)分类:

4.变量

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

(1)变量的声明

public class testVar{
	public static void main(String[] args){
		//定义一个int类型的变量:
		int age ;
	}
}

上面的代码编译成功:

在JavaSE_Code 文件下产生了对应的字节码文件:

现在利用反编译工具将字节码代码还原为源代码:
(将上面的TestVal.class文件拖至反编译工具中)
(关于反我的反编译工具,请见我的博客https://blog.csdn.net/qq_51550750/article/details/121536690)

反编译结果:

其实这就说明:一个变量只是定义但是没有赋值,就相当于什么都没做。

还要注意一点:如果变量只是定义而没有赋值,那么使用这个变量就会报错,例如:

(2)变量的赋值

public class TestVar{
	public static void main(String[] args){
		//定义一个int类型的变量:
		int age;
		//将age赋值为10这个字面常量
		age = 10;
	}
}

再次编译产生字节码文件,然后反编译:
编译:

反编译结果:

发现两句活合成了一句话(定义和赋值合成了一句话),而且变量的名字改变了,这说明其实其实变量名对于编译这个过程无关紧要

那么变量的赋值可不可以重复呢?
例如:

public class TestVar{
	public static void main(String[] args){
		//定义一个int类型的变量:
		int age;
		//将age赋值为10这个字面常量
		age = 10;
		age = 20;
		age = 9;
		age = 9;
	}
}

说明一个变量可以重复赋值,但是要注意一个问题:同一个变量不可以重复定义:

例如下面的代码会报错:

public class TestVar{
	public static void main(String[] args){
		//定义一个int类型的变量:
		int age;
		//将age赋值为10这个字面常量
		age = 10;
		age = 20;
		age = 9;
		age = 9;
		int a = 0;
		int a ;
	}
}

(3)变量的使用

变量的使用很简单:

public class TestVar{
	public static void main(String[] args){
		//定义一个int类型的变量:
		int age;
		//将age赋值为10这个字面常量
		age = 10;
		age = 20;
		age = 9;
		age = 9;
		int a = 0;
		//int a ;
		System.out.println(age);
		System.out.println(a+10);
	}
}

编译和执行:

(4)变量的内存

简单来画就是:

下面举一个简单的例子说明底层的变量赋值的过程:

public class TestVal02{
	public static void main(String[] args){
		int x = 1, y = 2;
		int z = x + y;
	}
}

通过javap.exe命令来反汇编:(但是要先产生字节码文件)

看字节码指令或许就可以看出个大概了吧。。。

5.基本数据类型----整型
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号