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.基本数据类型----整型

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

  1. 【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )

    文章目录 前言 一.IntelliJ IDEA 中创建 Java / Kotlin 工程 二.准备 Java 和 Kotlin 代码 三.编译在 PC 上可执行的 Java / Kotlin JAR ...

  2. python标识符、命名规则及关键字(含笔记)

    目录 1.标识符和关键字 1.1 标识符概念 1.2 标识符规则 2.命名规则 3.关键字 1.标识符和关键字 1.1 标识符概念 开发人员在程序中自定义的一些符号和名称.标示符是自己定义的,如变量名 ...

  3. 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )

    文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...

  4. java 标识符命名规则_java语言基础之标识符和命名规则详解

    免费资源网 - https://freexyz.cn/ 标识符Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是自己可以起名字的地方都叫标识符 定义合法标识符规则: 由26 ...

  5. JAVA标识符的命名规则和规范

    ps:规则和规范的区别,规则是必须遵守的,而规范不是强制遵守的,只是说按照规范来会更好. 1.标识符概念 (1)Java对各种变量.方法和类等命名时使用的字符序列称为标识符. (2)凡是自己可以起名字 ...

  6. Java标识符的书写规则有哪些,Java标识符的命名规则有哪些?

    Java标识符的命名规则有哪些? 答:1.只能使用字母.数字.下划线和美元符,可以使用汉字. 2.不能以数字开头. 3.不可以是关键字. 弗洛伊德认为把人和人联系起来的关键是() 答:情绪 在交响乐的 ...

  7. Java标识符的命名规则和命名规范

    一.Java标识符的命名规则 1.Java中的标识符只能使用字母大小写.数字0-9.美元符号$.下划线_ 2.Java中的标识符不能使用关键字.保留字.特殊值,例如class.viod.public. ...

  8. C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍

    c语言中用户标识符的命名规则介绍 发布时间:2020-06-24 15:55:31 来源:亿速云 阅读:116 作者:元一 这期内容当中的小编将会给大家带来有关c语言中用户标识符的命名规则介绍,以专业 ...

  9. 标识符的命名规则和命名规范

    IdentifierTest.java /*1.在java程序当中,使用editplus工具进行代码编写的时候,有一些单词是蓝色,有的是红色,有的是绿色,有的是黑色,有的是紫色,有的是粉色...... ...

最新文章

  1. 【转】c#委托与事件
  2. 使用beanUtils操纵javabean
  3. 一个例子让你了解Java反射机制
  4. linux代码调节亮度,linux 屏幕亮度调整命令
  5. 语言模型(N-Gram)
  6. elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic
  7. 《Android的设计与实现:卷I》迷你书
  8. HBase 中文文档0.97
  9. Javaspring 7-13课 Spring Bean
  10. linux搭建Django环境,linux下搭建python Django环境及启动一个示例
  11. .net from 关闭事件_libVLC 事件机制
  12. Android studio 下载SDK
  13. 如何开机进测试内存软件,小U讲解内存检测工具memtest详细使用教程
  14. 三级缓存 SD—内存—网络
  15. c语言float m1 m2什么意思,M0、M1、M2的涵义及其作用
  16. 有计划,坚决执行——写给大三犹豫的女生
  17. 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)
  18. Python爬虫实战:爬取维基百科
  19. 打造高效团队的四个着力点
  20. 哪个版本的outlook好_未来版本的Outlook的阴影?

热门文章

  1. 引起Java序列化失败的常见原因
  2. 如何关闭SAP Fiori的病毒扫描设
  3. 我做SAP CRM One Order redesign的一些心得体会
  4. python 换脸 github_人脸识别和换脸相关深度学习开源项目github汇总
  5. python输入和输出的区别_python2和python3的输入和输出区别介绍
  6. python遍历二维数组需要注意的是_for循环获取二维数组的元素时的bug
  7. python整体缩进笔记_python笔记1
  8. JAVA复习5(集合——拓展——单向链表)
  9. JAVA复习5(集合—— Vetor)
  10. 本地tomcat 配置环境变量