关键字、标志符、变量、基本数据类型

1、关键字

1.1、定义

定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(或单词)
特点:全部关键字都是小写字母

上源码:
代码中定义类的关键字class,定义一个订单控制器类

​​​​​​​​​​​​​​​​​​​​​

枚举的关键字,一下声明了错误码的类型

常用的关键字

1)const、goto为保留字,现阶段版本没用到,但以后版本可能会成为关键字
2)ture,false,null为字面量,又叫直接量或者数据,表示布尔值或者空值

2、保留字

Java 保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留 字 byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

3、标识符(identifier)

定义:Java中变量、方法、类等要素命名时使用的字符序列,称为标识符。通俗的讲,标识符就是自己起名的字符序列。

3.1、标识符命名规则

不遵守便报错

1)由26个英文字母大小写,数字0—9,_ 或 $ 组成,不能包含空格
2)数字不可以放开头
3)严格区分大小写,长度无限制(但不建议太长)
4)不可以使用关键字和保留字,但能包含关键字和保留字

标识符命名规范[更加专业]
1)包名:多单词组成时所有字母都小写:比如 com.chuige
2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: ProductOrderController
3)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小 驼峰, 简称 驼峰法] 比如: chuiLaoShi
4)常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

 

3、变量

定义:变量是程序中不可或缺的组成单位,是最基本的存储单元。

3.1、概念

内存中的一个存储区域,该区域的数值可在同一类型进行变化
变量构成三要素:数据类型、变量名、存储的值

声明格式:数据类型 变量名 = 变量值
注:在声明时可以先声明后赋值,或声明时直接初始化,如电话号码、邮箱的正则表达式如下

变量的作用:在内存中保存数据

使用变量的注意事项
每个变量必须先声明后使用
使用变量名访问这块区域的数值


变量作用域:定义在所在的 { } 内。当出了作用域,变量不可再次调用
同一作用域内,不能定义重名的变量
​​​​​​​

3.2、Java中变量的数据类型

分类
基本数据类型:整型类型(byte、short、int、long),浮点型(float、double),字符型(char),布尔型(boolean)
引用数据类型:类(class),接口(interface),枚举(enum),注解(@interface),枚举(record)
注:基本数据类型会反复使用,但引用数据类型主要使用类、接口、数组三种类型
Java数据类型如下图

3.3、变量的使用

1)变量的声明
格式:数据类型 变量名;

//同时声明多个同类型的变量
int a, b, c;
注:变量的数据类型可以是基本数据类型,也可以是引用数据类型
注意命名时“见名知意”,同时声明多个时用英文逗号(,)隔开

2)变量的赋值
给变量赋值,便是把“值”蠢到该变量代表的内存空间。同时,在赋值时,赋值类型必须与变量声明的类型一致或兼容。
语法格式:变量名 = 值;

说明
可以使用合适类型的常量值给已经声明的变量赋值
可以使用其他变量或者表达式给变量赋值
也可以将变量的声明和赋值一并执行

 

4、基本数据类型介绍

4.1、整型类型

byte、short、int、long

1)Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。如下图

2)声明long类型变量时,在赋值时需要以 “l” 或者 “L” 结尾
3)Java程序中声明整型变量通常用int类型,除非不足或表达比较大的数,才会使用 long

补充:计算机的存储单位
1)字节(Byte):计算机用于计算存储容量的基本单位。
2)位(bit):数据存储的最小单位。在二进制数系统中,每个0或1都是一个位,叫bit(比特)。
3)转换关系:
 8 bit = 1 Byte
 1024 Byte = 1 KB
 1024 KB = 1MB
 1024MB = 1 GB
 1024GB = 1 TB

4.2、浮点类型

float、double

1)与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响。如下图

2)浮点型常量的表达形式
十进制数形式(必须有小数点)。如:5.12、512.0f、.512
科学计数法形式。如:5.12e2、512E2
3)单精度浮点型(float):尾数可以精确到7位有效数字。但多数情况下,难以满足需求
4)双精度浮点型(double):精度是单精度(float)的两倍。通常使用此类型
5)声明float类型变量时,在赋值时需要以 “f” 或者 “F” 结尾
6)Java程序中声明浮点型变量通常用double类型

 

4.3、字符类型:char


1)char 类型用来表示通常意义上“字符” (占两个字节)
2)Java中所有的字符都是使用Unicode编码,故一个字符可以存储一个字符、一个汉字或其他书面语的一个字符。
3)字符型变量的表达形式
使用单引号( ’ ’ )括起来单个字符。如下
char c1 = ‘a’;
char c2 = ‘b’;
直接使用Unicode值来表示字符型常量。如 ‘\uXXXX’,XXXX代表一个十六进制的整数
char c = ‘\u0023’;
// \u0023表示’#’
使用转义字符 ‘ \ ’ 来其后的字符转变为特殊字符常量
char c3 = ‘\n’;
// '\n’表示换行符

Java转义字符如下

4.4、布尔类型:boolean


1)布尔类型用来判断逻辑条件,一般用于流程控制语句中
if条件控制语句
while循环控制语句
for循环控制语句
do-while循环控制语句

2)布尔类型只有两个值:ture、false
注:一般不谈Boolean类型占用的空间大小,但在真正的内存分配中占4个字节

 

5、基本数据类型变量间运算规则

5.1、介绍

在Java程序中,不同的基本数据类型(只有7种,不包含boolean类型)变量的值经常需要进行相互转换
 

转换的方式

自动类型提升
强制类型转换

5.2、自动类型提升

1)将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型
转化形式如图

2)规则
把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量,按照范围大的标准赋值


// 正确类型提升
int i = ‘A’; // char自动升级为int
double = 20; // int自动升级为double类型
long num = 1234567; // 如果后面的值(1234567)在整数范围内,可以正常编译运行
// 错误类型提升
byte bigB = 130; //右边的整数超过byte范围
long bigNum = 12345678900L;//右边的整数常量值如果超过int范围,必须加L,显式表示long类型。否则编译不通过


当存储范围小的数据类型与存储范围大的数据类型变量一起混合运算时,会按照其中最大的类型运算
当byte、short、char数据类型的变量进行算术运算时,按照int类型处理

 

5.3、强制类型转换

1)将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型

注:自动类型提升是由Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行

2)转换格式:数据类型1 变量名 = (数据类型)被强制转换的数据值;

注:() 中的数据类型 必须<= 变量值的数据类型

当把存储范围大的值(常量值、变量的值、表达式计算的结果值)强制转换为存储范围小的变量时,可能会损失精度或溢出。如下
int i = (int)3.44 // 损失精度

double d = 1.2;
int num = (int)d; // 损失精度

int i = 200;
byte b = (byte)i; // 溢出
当某个值想要提升数据类型时,也可以使用强制类型转换。这种情况的强制类型转换没有风险
附:为什么标识符的声明规则要求不能字符开头。如下

// 如果可以数字开头,那下面的代码便可通过
int 12L = 120;
long l = 12L;
// 那么声明l的值是12, 还是变量12L对应的12?
//二者出现歧义,则规则要求不能字母开头

5.3、String与基本数据类型的运算

1)字符串类型:String

String类,属于基本数据类型。俗称——字符串
使用双引号( " " )来表示一个字符串,内部可以包含0到N个字符
声明方式与基本数据类型类似。

2)运算规则

任意八种基本数据类型的数据与String类型只能进行连接 “+” 运算,且结果一定也是String类型。如下
System.out,println(“” + 6 + 6); // 输出结果为66

boolean a = true;
int num = 10;
String s1 = “fate”;

// 错误示例
String s2 = a + num + s1;
// 理由:运算是从左到右,而布尔型(a)和整型(num)不能进行运算

// 正确示例
String s3 = s1 + a + 10;
String s4 = a + (num + s1);
String类型不能通过强制类型()转换,转为其他的类型
注:String转其他类型可用 Integer ,借助包装类的方法转,但后期才会学到

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Java爬取新房二手房数据看总体大环境

都说现在房市惨淡&#xff0c;导致很多人在观望&#xff0c;那么今天我写一段爬虫&#xff0c;主要是抓取各地新房以及二手房成交状况&#xff0c;然后了解总体楼市是否回暖上升。 以下是Java爬虫程序的代码示例&#xff0c;用于抓取贝壳网新房和二手房数据&#xff1a; impor…

污水处理成套设备如何选择

污水处理是现代社会中不可或缺的一个重要环节&#xff0c;它涉及到环保领域&#xff0c;与人们的生活和健康息息相关。而污水处理成套设备的选择则显得尤为重要&#xff0c;因为合适的设备能够有效地解决水污染问题&#xff0c;提高环境质量。 在选择污水处理成套设备时&#x…

Python绘制茎叶图:plt.stem

文章目录 简介参数演示 简介 茎叶图从外观来看&#xff0c;更像是火柴&#xff0c;由基线、茎线、茎头三部分构成。最简单的示例如下 import numpy as np import matplotlib.pyplot as plt plt.stem(np.sin(np.arange(10))) plt.show()参数 stem的完整参数如下 stem([locs,…

【C++】- 类和对象(构造函数!析构函数!拷贝构造函数!详解)

类和对象② 类的6个默认成员函数构造函数析构函数拷贝构造函数 类的6个默认成员函数 上一篇详细介绍了类。如果一个类中什么成员都没有&#xff0c;简称为空类。 那么空类中真的什么都没有吗&#xff1f; 并不是&#xff0c;当类在什么都不写时&#xff0c;编译器会自动生成…

SQLServer设置端口,并设置SQLServer和SQLServer Browser服务

SQLServer默认使用动态端口&#xff0c;即每次启动sqlserver.exe时&#xff0c;端口port都会动态变化。若要使用静态端口&#xff0c;比如port1433&#xff0c;则需要在SQL Server Configuration Manager(简称SSMS&#xff09;里配置。这里以SQL Server 2005 Configuration Man…

安科瑞有序充电运营场站落成-安科瑞 蒋静

今年6月&#xff0c;发布了《关于进一步构建高质量充电基础设施体系的指导意见》&#xff0c;提出到2030年基本建成高质量充电基础设施体系&#xff0c;以支撑新能源汽车产业的发展和满足人民群众的出行充电需求。7月底&#xff0c;国家部门印发了《关于促进汽车消费的若干措施…

应对 DevOps 中的技术债务:创新与稳定性的微妙平衡

技术性债务在DevOps到底意味着什么&#xff1f;从本质上讲&#xff0c;这是小的开发缺陷的积累&#xff0c;需要不断地返工。它可能由多种原因引起&#xff0c;例如快速交付新功能的压力&#xff0c;这可能会导致团队不得不牺牲代码的整洁和完善。但这些不完整的小代码&#xf…

Qt - QML框架

文章目录 1 . 前言2 . 框架生成3 . 框架解析3.1 qml.pro解析3.2 main.cpp解析3.3 main.qml解析 4 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 前言 什么是QML&#xff1f; QML是一种用户界面规范和编程语言。它允许开发人员…

桌面图标变成白色文件?学会这4个方法,轻松解决!

“不知道为什么&#xff0c;我有些文件夹直接保存在电脑桌面了&#xff0c;但是今天查看的时候却发现它们变成了白色的文件。有什么方法可以解决这个问题吗&#xff1f;” 在使用电脑时&#xff0c;可能由于各种原因&#xff0c;会出现桌面图标变成白色文件的情况。这不仅会让用…

docker安裝gocd-server,并配置gitlab授权登录

gocd的地址&#xff1a;Installing GoCD server on Windows | GoCD User Documentation gocd文档&#xff1a;GitHub - gocd/docker-gocd-server: Docker server image for GoCD 一、docker拉取gocd镜像 #拉取server镜像 docker pull gocd/gocd-server:v21.1.0docker pull g…

isaacgym(legged_gym)学习 (二)—— 设置环境地形

isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形 文章目录 isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形前言一、了解isaacgym中地形如何构成的二、自定义修改1.代码2.查看script/play.py 总结 前言 如何设置isaacgym中的环…

系列三十七、IDEA设置全局快捷键

一、IDEA设置全局快捷键 1.1、idea默认的快捷键 1.2、修改全局搜索快捷键为Alt F

永磁同步电机的磁场定向控制

目录 概述 通过系统仿真验证行为 探索模型架构 生成用于集成到嵌入式应用程序的控制器 C 代码 指定控制器模型的参考行为 创建 PIL 实现 准备用于 PIL 测试的控制器模型 测试生成的代码的行为和执行时间 结论 此示例说明从电机控制算法生成 C 代码并验证其编译行为和执…

进程间通信之匿名管道和命名管道的理解和实现【Linux】

进程间通信之匿名管道和命名管道的理解和实现 进程间通信什么是管道匿名管道代码实现管道的读写规则管道特点 命名管道创建命名管道代码实现 进程间通信 进程间通信的目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程之间共享同…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数 (一)

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展&#xff1a;Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;Cesiumfor…

谷歌DeepMind最新研究:对抗性攻击对人类也有效,人类和AI都会把花瓶认成猫!

人类的神经网络&#xff08;大脑&#xff09;和人工神经网络&#xff08;ANN&#xff09;的关系是什么&#xff1f; 有位老师曾经这样比喻&#xff1a;就像是老鼠和米老鼠的关系。 现实中的神经网络功能强大&#xff0c;但与人类的感知、学习和理解方式完全不同。 比如ANN表…

上海亚商投顾:创业板指再创调整新低 全市场超4700只个股下跌

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数1月5日集体调整&#xff0c;沪指午后跌超1%&#xff0c;创业板指一度跌逾2%&#xff0c;尾盘跌幅有所…

.net 开源混淆器 ConfuserEx

官网&#xff1a;ConfuserEx 下载地址&#xff1a;Releases yck1509/ConfuserEx GitHub 使用参考&#xff1a;https://www.cnblogs.com/zhangzhi19861216/p/3937434.html

Windows10安全中心图标的关闭方法

在Windows10​​​​​​​电脑中&#xff0c;用户可以选择关闭不必要的应用图标。现在&#xff0c;用户想要关掉安全中心图标&#xff0c;但不知道有什么方法能够成功关掉安全中心图标&#xff1f;下面小编给用户们带来Windows10系统安全中心图标的关闭方法步骤&#xff0c;帮…

c语言-库函数qsort()初识

目录 前言一、qsort()的介绍及使用1.1 qsort()的介绍1.2 qsort()的使用1.2.1 使用qsort|()对整型数组按照升序排序1.2.2 使用qsort()对整型数组按照降序排序1.2.3 使用qsort()对结构体数组数据进行排序 二、利用冒泡排序模拟实现对任何数据进行排序2.1 冒泡排序2.2 模仿qsort()…