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

news2024/11/13 20:43:25

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.coloradmin.cn/o/1365720.html

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

相关文章

try catch 应该在 for 循环里面还是外面

正文 首先 &#xff0c; 话说在前头&#xff0c; 没有什么 在里面 好 和在外面好 或者 不好的 一说。 本篇文章内容&#xff1a; 使用场景 性能分析 个人看法 1. 使用场景 为什么要把 使用场景 摆在第一个 &#xff1f; 因为本身try catch 放在 for循环 外面 和里面 …

7N65-ASEMI高压NPN型MOS管7N65

编辑&#xff1a;ll 7N65-ASEMI高压NPN型MOS管7N65 型号&#xff1a;7N65 品牌&#xff1a;ASEMI 连续漏极电流(Id)&#xff1a;4A 漏源电压(Vdss)&#xff1a;650V 栅极阈值电压&#xff1a;30V 单脉冲雪崩能量&#xff1a;150mJ 集电极电流&#xff08;脉冲&#xff…

【分布式微服务专题】SpringSecurity快速入门

目录 前言阅读对象阅读导航前置知识笔记正文一、Spring Security介绍1.1 什么是Spring Security1.2 它是干什么的1.3 Spring Security和Shiro比较 二、快速开始2.1 用户认证2.1.1 设置用户名2.1.1.1 基于application.yml配置文件2.1.1.2 基于Java Config配置方式 2.1.2 设置加密…

初识Linux shell

Linux初探 Linux系统可以划分为4个部分&#xff1a; Linux内核&#xff1a;Linux系统的核心&#xff0c;控制着系统的所有硬件和软件&#xff0c;在必要时分配硬件&#xff0c;并根据需要执行软件。 内核主要功能&#xff1a; 系统内存管理&#xff1a;内核通过硬件上称为交换…

Proxifier下载安装

一、下载地址 官网&#xff1a; https://www.proxifier.com/ 下载链接 https://www.proxifier.com/distr/ProxifierSetup.exe 因为这个跳转直接下载的&#xff0c;我放沙箱里试了一下 二、安装 安装就是同意协议&#xff0c;选择安装位置&#xff0c;因为是正版&#xff0c;他…

U-ViT【All are Worth Words: A ViT Backbone for Diffusion Models】

Motivation Diffusion中常用的Backbone是UNet&#xff0c;使用 resnet 和 transformer 交替进行的&#xff0c;这样内存memory存储 其实也是不断shuffle变化的&#xff0c;resnet 以 feature 看 memory&#xff0c;而 transformer 以 token 看memory。如果可以统一memory的计算…

Simpy简介:python仿真模拟库-02/5

一、说明 关于python下的仿真库&#xff0c;本篇为第二部分&#xff0c;是更进一步的物理模型讲解&#xff0c;由于这部分内容强依赖于第一部分的符号介绍&#xff0c;因此&#xff0c;有以下建议&#xff1a; 此文为第二部分&#xff0c;若看第一部分。建议查看本系列的第一部…

盲盒小程序搭建,功能优势分析

盲盒作为一种潮玩商品&#xff0c;吸引了大量的年轻人&#xff0c;受众群体非常高&#xff0c;在市场上的发展快速。盲盒拥有独特的优势&#xff0c;给消费者提供了新奇的购物体验&#xff0c;能够让人们在购物中体验到盲盒的不确定性所带来的惊喜感和快乐。 盲盒小程序的出现…

Echarts——使用graphic组件在一个option内同时设置两个饼图的背景图

使用echarts的graphic原生图形元素组件&#xff0c;为两个饼图设置对应背景。 <template><div id"app"><div class"charts" ref"charts"></div></div> </template><script> import * as echarts from…

计算机毕业设计 | SpringBoot+vue农产品商城 买菜购物网站(附源码)

1&#xff0c;绪论 1.1 项目背景 随着社会发展&#xff0c;网上购物已经成为我们日常生活的一部分。但是&#xff0c;至今为止大部分电商平台都是从人们日常生活出发&#xff0c;出售都是一些日常用品比如&#xff1a;食物、服装等等&#xff0c;并未发现一个专注于菜品的电商…

GEC6818传感器模块(烟雾+GY39+RFID)——使用文字取模的方式实现数据显示

GEC6818传感器模块(烟雾GY39RFID)——使用文字取模的方式实现数据显示 完整的工程大家可以在我的gitee上进行下载 下载地址&#xff1a;GEC6818智能语音家居系统 文章目录 GEC6818传感器模块(烟雾GY39RFID)——使用文字取模的方式实现数据显示一、 文字取模实现数据显示1. disp…

NPS 内网穿透安装

NPS 内网穿透安装 NPS分为服务端和客户端&#xff0c;对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用&#xff0c;为了方便直接使用docker安装 1.docker运行 (注意需要提前下载conf文件&#xff0c;或者将镜像中文件copy出来…

多线程模板应用实现(实践学习笔记)

出处&#xff1a;B站码出名企路 个人笔记&#xff1a;因为是跟着b站的教学视频以及文档初步学习&#xff0c;可能存在诸多的理解有误&#xff0c;对大家仅供借鉴&#xff0c;参考&#xff0c;然后是B站up阳哥的视频&#xff0c;我是跟着他学。大家有兴趣的可以到b站搜索。加油…

C/C++ 联合体

目录 联合体概述 联合体的内存分配 联合体大小计算 联合体概述 联合与结构非常的相似&#xff0c;主要区别就在于联合这两个字。 联合的特征&#xff1a;联合体所包含的成员变量使用的是同一块空间。 联合体定义 //联合类型的声明 union Un {char c;int i; }; //联合变量…

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

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

【操作系统篇】正在持续写入的日志如何清理?

正在持续写入的日志如何清理? ✔️典型解析✔️ 推荐的日志管理工具✔️如何设置日志轮转工具✔️如何选择适合我的Logrote-NG日志轮转工具✔️如何测试Logrote-NG工具的稳定性✔️分析一个简单的ELK报警✔️这个报警的作用是什么✔️报警机制的优缺点✔️如何减少报警机制的误…

蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐

​在众多的耳机类型中&#xff0c;运动耳机因其独特的设计和功能而备受青睐。它们不仅要具备出色的音质&#xff0c;还需要能够适应激烈的运动环境&#xff0c;如防水、防汗、牢固耐用等。今天&#xff0c;我想向大家推荐一些在这些方面表现出色的运动耳机&#xff0c;这些耳机…

Unity 圆角 线段 绘制 LineRender

需求 绘制圆角 核心函数 /// <summary>/// 点ABC 形成的角度必须为90 点c为中间的点/// </summary>/// <param name"a"></param>/// <param name"b"></param>/// <param name"c"></param>/// &…

C++学习笔记——友元及重载运算符

目录 一、友元 1.1声明友元函数 1.2声明友元类 二、运算符重载 2.1重载加号运算符 2.2重载流插入运算符 三、一个简单的银行管理系统 四、 详细的介绍 一、友元 在 C 中&#xff0c;友元是一个函数或类&#xff0c;它可以访问另一个类的私有成员或保护成员。通常情况下…

微服务实战系列之Filter

前言 Filter&#xff0c;又名过滤器&#xff0c;当然不是我们日常中见到的&#xff0c;诸如此类构件&#xff1a; 而应该是微服务中常使用的&#xff0c;诸如此类&#xff08;图片来自官网&#xff0c;点击可查看原图&#xff09;&#xff1a; 一般用于字符编码转换&#xf…