java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)
java语言语法— Java标识符、Java关键字、Java变量和常量(包括Java字节码文件反汇编命令javap)
1.标识符
(1)读音:biao zhi fu
(2)什么是标识符?
(摘自百度百科)
简单来说,标识符就是一个名字
(3)标识符命名的规则:
- 组成部分(4个可以):数字、字母(尽量用英文,虽然汉子、日文、俄语都可以)、下划线_、美元符号 $
- 2个不可以:第一,不能以数字开头(例如1num不可以,但是num1可以);第二,不能采用Java中的关键字命名(Java 的关键字有其特殊的用途用于编译,否则编译器无法编译Java文件了)
- 命名的长度没有限制,但是尽量不要太长,而且最好养成习惯,不要胡乱命名,尽量见名知义,这样可读性也高,利于变成效率的提高
- Java大小写敏感(例如,int num; 和int NUM ;中的num和NUM 完全是两个变量)
- 有时遵循驼峰命名,有时不需要驼峰命名
比如:类名:首字母大写,遵循驼峰命名(例如,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)相关推荐
- 【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )
文章目录 前言 一.IntelliJ IDEA 中创建 Java / Kotlin 工程 二.准备 Java 和 Kotlin 代码 三.编译在 PC 上可执行的 Java / Kotlin JAR ...
- python标识符、命名规则及关键字(含笔记)
目录 1.标识符和关键字 1.1 标识符概念 1.2 标识符规则 2.命名规则 3.关键字 1.标识符和关键字 1.1 标识符概念 开发人员在程序中自定义的一些符号和名称.标示符是自己定义的,如变量名 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )
文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...
- java 标识符命名规则_java语言基础之标识符和命名规则详解
免费资源网 - https://freexyz.cn/ 标识符Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是自己可以起名字的地方都叫标识符 定义合法标识符规则: 由26 ...
- JAVA标识符的命名规则和规范
ps:规则和规范的区别,规则是必须遵守的,而规范不是强制遵守的,只是说按照规范来会更好. 1.标识符概念 (1)Java对各种变量.方法和类等命名时使用的字符序列称为标识符. (2)凡是自己可以起名字 ...
- Java标识符的书写规则有哪些,Java标识符的命名规则有哪些?
Java标识符的命名规则有哪些? 答:1.只能使用字母.数字.下划线和美元符,可以使用汉字. 2.不能以数字开头. 3.不可以是关键字. 弗洛伊德认为把人和人联系起来的关键是() 答:情绪 在交响乐的 ...
- Java标识符的命名规则和命名规范
一.Java标识符的命名规则 1.Java中的标识符只能使用字母大小写.数字0-9.美元符号$.下划线_ 2.Java中的标识符不能使用关键字.保留字.特殊值,例如class.viod.public. ...
- C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍
c语言中用户标识符的命名规则介绍 发布时间:2020-06-24 15:55:31 来源:亿速云 阅读:116 作者:元一 这期内容当中的小编将会给大家带来有关c语言中用户标识符的命名规则介绍,以专业 ...
- 标识符的命名规则和命名规范
IdentifierTest.java /*1.在java程序当中,使用editplus工具进行代码编写的时候,有一些单词是蓝色,有的是红色,有的是绿色,有的是黑色,有的是紫色,有的是粉色...... ...
最新文章
- 【转】c#委托与事件
- 使用beanUtils操纵javabean
- 一个例子让你了解Java反射机制
- linux代码调节亮度,linux 屏幕亮度调整命令
- 语言模型(N-Gram)
- elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic
- 《Android的设计与实现:卷I》迷你书
- HBase 中文文档0.97
- Javaspring 7-13课 Spring Bean
- linux搭建Django环境,linux下搭建python Django环境及启动一个示例
- .net from 关闭事件_libVLC 事件机制
- Android studio 下载SDK
- 如何开机进测试内存软件,小U讲解内存检测工具memtest详细使用教程
- 三级缓存 SD—内存—网络
- c语言float m1 m2什么意思,M0、M1、M2的涵义及其作用
- 有计划,坚决执行——写给大三犹豫的女生
- 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)
- Python爬虫实战:爬取维基百科
- 打造高效团队的四个着力点
- 哪个版本的outlook好_未来版本的Outlook的阴影?
热门文章
- 引起Java序列化失败的常见原因
- 如何关闭SAP Fiori的病毒扫描设
- 我做SAP CRM One Order redesign的一些心得体会
- python 换脸 github_人脸识别和换脸相关深度学习开源项目github汇总
- python输入和输出的区别_python2和python3的输入和输出区别介绍
- python遍历二维数组需要注意的是_for循环获取二维数组的元素时的bug
- python整体缩进笔记_python笔记1
- JAVA复习5(集合——拓展——单向链表)
- JAVA复习5(集合—— Vetor)
- 本地tomcat 配置环境变量