数据类型与变量

devtools/2025/3/14 10:02:53/

目录

  • 1、字面常量
  • 2、数据类型
    • 2.1、基本数据类型
    • 2.2、引用数据类型
  • 3、变量
    • 3.1、整型变量
    • 3.2、浮点型变量
    • 3.3、字符型变量
    • 3.4、布尔型变量
    • 3.5、类型转换
    • 3.6、类型提升

1、字面常量

程序运行期间,固定不变的量是常量。
字母常量的分类:

  • 字符串常量:由双引号 “” 括起来的
  • 整形常量:直接写的数字,不带小数点
  • 浮点数常量:直接写的小数
  • 字符常量:由单引号 ‘’ 括起来的单个字符
  • 布尔常量:只有两种 true 和 false
  • 空常量:null

2、数据类型

Java 中数据类型分为两类:基本数据类型和引用数据类型。

2.1、基本数据类型

基本数据类型分为四类八种:

  • 四类:整型、浮点型、字符型、布尔型
  • 八种:

在这里插入图片描述

注意:

  1. 无论多少位的操作系统,数据类型的字节数都是固定的,比如:在C语言中,16位操作系统下 int 占2个字节,32位操作系统下占4个字节;而在 Java 中,无论是16位还是32位,int 都占4个字节。
  2. 在 Java 中,所有表示数值的数据(整型和浮点型)都是有符号位的,即 Java 中不存在无符号数。
  3. 整型默认是 int 类型,浮点型默认是 double 类型。
  4. 字节是计算机中表示空间大小的基本单位,是计算机中不可再分单位,没有比1个字节更小的存储单位,1字节包含8个比特位,但是在程序中可以申请单个字节的空间,不可以申请单个比特位的空间。其中 1KB = 1024 B, 1MB = 1024 KB, 1GB = 1024 MB。

2.2、引用数据类型

引用数据类型不是语言自带的,可以理解为用户自定义的类型,比如:字符串类型。

3、变量

在程序中,经常改变的量称为变量,而数据类型就是来定义变量的。定义变量的语法格式是:
数据类型 变量名 = 初始值

3.1、整型变量

  • 变量在使用之前要赋初值,否则编译会报错。
  • 在给变量赋初值的时候,不能超过变量的最大值,否则会溢出。
  • int 的包装类型是 Integer
    long 的包装类型是 Long
    short 的包装类型是 Short
    byte 的包装类型是 Byte
  • 整形默认是 int 类型,如果给 long 类型变量赋初值需要在值后加上 L 或者 l,一般推荐加上 L。

3.2、浮点型变量

  • 浮点型变量包括单精度浮点型 float 和双精度浮点型 double。
  • 浮点数默认是 double 类型,如果给 float 类型变量赋初值需要加上 F 或者 f。
  • double 的包装类型是 Double
    float 的包装类型是 Float
  • 在 Java 中,int 除以 int 仍然是 int(舍弃小数部分), 如果需要得到小数,则需定义为浮点型变量。
  • double 类型的内存布局遵守 IEEE 754 标准,尝试使用有限的内存空间表示可能无限的小数,会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。

3.3、字符型变量

  • 字符型的表示方式是单引号+单个字母。
  • char 的包装类型是 Character。
  • 在计算机中字符实际上是一个整数,在C语言中使用 ASCII 表示字符,字符型变量占一个字节;而在 Java 中使用 Unicode 表示字符,因此字符型变量占两个字节,表示的字符种类也会更多,包括中文。

3.4、布尔型变量

  • 布尔型变量用来表示真假,只有两个取值:true 或者 false。
  • 和C语言不同,Java 的 boolean 变量和 int 变量不可以相互转换,即不存在0表示 false,非0表示 true 的说法。
  • boolean 的包装类型是 Boolean

3.5、类型转换

Java 是强类型编程语言,当不同类型的变量相互赋值时会进行严格的校验;当将一个字面值常量进行赋值的时候,Java 会自动针对数字范围进行检查。类型转换分为自动(隐式)类型转换和强制(显示)类型转换。

  • 自动(隐式)类型转换
    当数据范围小的转换为数据范围大的数据时,代码不需要经过任何处理,在编译时编译器会自动进行类型转换。
  • 强制(显示)类型转换
    当数据范围大的转换为数据范围小的数据时,代码需要进行强制转换,否则编译失败。强制转换时可能造成精度丢失,而且强制类型转换不一定可以成功,不相干的类型不可以进行转换。

3.6、类型提升

不同数据类型的数据进行运算时,数据类型小的会被提升为数据类型大的。
注意:由于计算机内存是以4个字节为单位来读写数据,因此为了硬件上实现方便,对于 short、byte类型,会先提升成 int 类型再进行转换。

在这里插入图片描述
正确写法:

在这里插入图片描述


http://www.ppmy.cn/devtools/166994.html

相关文章

PostgreSQL存储管理体系结构学习笔记2

1.表和元组的组织方式 在PostgreSQL中,同一个表中的元组按照创建顺序依次插入到表文件中。元组之间不进行关联,这样的表文件称之为堆文件。PostgreSQL系统中包含了四种堆文件:普通堆,临时堆,序列,TOAST表。…

Operator <=> (spaceship operator)

operator <>动机 在C20以前定义比较运算符&#xff1a;其他比较运算符基于<和实现 struct Type {int value;// 相等运算符friend bool operator(const Type& a, const Type& b) {return a.value b.value;}// 不等运算符friend bool operator!(const Type&a…

【H2O2 | 软件开发】Axios发送Http请求

目录 前言 开篇语 准备工作 正文 概念 封装工具包 示例 结束语 前言 开篇语 本系列为短篇&#xff0c;每次讲述少量知识点&#xff0c;无需一次性灌输太多的新知识点。该主题文章主要是围绕前端、全栈开发相关面试常见问题撰写的&#xff0c;希望对诸位有所帮助。 如…

iPaaS集成平台轻量化架构的重要性

在数字化转型的浪潮中&#xff0c;企业对于高效、灵活、可扩展的集成平台的需求日益增长。iPaaS&#xff08;集成平台即服务&#xff09;作为云计算领域的创新解决方案&#xff0c;正逐渐成为企业解决集成难题的首选。而在这其中&#xff0c;轻量化架构成为了iPaaS集成平台的核…

【存储中间件】Redis核心技术与实战(一):Redis入门与应用(常用数据结构:字符串String、哈希Hash、列表List)

文章目录 Redis入门与应用Redis常用数据结构字符串&#xff08;String&#xff09;操作命令set 设置值get 获取值mset 批量设置值mget 批量获取值Incr 数字运算append追加指令strlen 字符串长度getset 设置并返回原值setrange 设置指定位置的字符getrange 截取字符串 命令的时间…

JVM垃圾收集器合集

前言&#xff1a;JVM GC收集器的回顾与比较 JVM&#xff08;Java虚拟机&#xff09;中的垃圾收集器是自动管理内存的重要机制&#xff0c;旨在回收不再使用的对象所占用的内存空间。以下是JVM中几种常见的垃圾收集器的详细介绍&#xff1a; 一、新生代垃圾收集器 1.Serial收集…

【Crypto】CTF 密码学题目解题思路图

CTF密码学题目解题思路图 密码学题目 ├── 1. 编码/转换 │ ├── 1.1 Base64 │ │ └── 步骤&#xff1a;检查填充字符&#xff08;&#xff09;&#xff0c;解码工具&#xff08;CyberChef&#xff09;。 │ ├── 1.2 Hex │ │ └── 步骤&#xff1a…

C++蓝桥杯基础篇(十一)

片头 嗨~小伙伴们&#xff0c;大家好&#xff01;今天我们来学习C蓝桥杯基础篇&#xff08;十一&#xff09;&#xff0c;学习类&#xff0c;结构体&#xff0c;指针相关知识&#xff0c;准备好了吗&#xff1f;咱们开始咯~ 一、类与结构体 类的定义&#xff1a;在C中&#x…