当前位置: 首页 > news >正文

Java 中的数据类型有哪些?

Java中主要有八种基本数据类型:

1、整型:byte、short、int、long

2、字符型:char

3、浮点型:float、double

4、布尔型:boolean

一、整型

Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,补码=源码取反 + 1。

1、byte

8位、有符号的以二进制补码表示的整数。

min:-128(-2^7)

max:127(2^7-1)

默认值:0

包装类:Byte

2、short

16位、有符号的以二进制补码表示的整数。

min:-32768(-2^15)

max:32767(2^15-1)

默认值:0

包装类:Short

3、int

32位、有符号的以二进制补码表示的整数。

min:-2,147,483,648(-2^31)

max:2,147,483,647(2^31-1)

默认值:0

包装类:Integer

4、long

64位、有符号的以二进制补码表示的整数。

min:-9,233,372,036,854,775,808(-2^63)

max:9,223,372,036,854,775,807(2^63-1)

默认值:0

包装类:Long

二、浮点型

Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准。

1、float

单精度、32位、符合IEEE 754标准的浮点数。

float在储存大型浮点数组的时候可节省内存空间

浮点数不能用来表示精确的值,如货币

默认值:0.0f

包装类:Float

2、double

双精度、64位、IEEE 754标准的浮点数。

浮点数的默认类型为double类型

double类型同样不能表示精确值,如货币

默认值:0.0d

包装类:Double

三、字符型

char

char类型是一个单一的16位Unicode字符。

min:\u0000(即为0)

max:\uffff(即为65,535)

char数据类型可以储存任何字符

包装类:Character

四、布尔型

在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组会被编译成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit。

boolean

boolean数据类型表示一位的信息。

只有两个取值:true和false

这种类型只作为一种标志来记录true/false情况

默认值:false

包装类:Boolean

自动类型转换

指不需要编写代码,有系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所有Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。

转换规则:从存储范围小的类型到存储范围大的类型。

具体规则:byte -> short(char)-> int -> long -> float -> double。

举例说明:byte类型的变量可以自动转换为short类型,

byte b = 11;

short sh = b;

这里在给sh赋值时,JVM首先将变量b的值转换成short类型然后再赋值给sh。

当然,在类型转换的时候可以跳跃,也就是byte可以自动转换为int类型,

注意,在整数之间进行类型转换时数值不会发生变化,但是当将整数类型特别是比较大的整数类型转换成小数类型时,由于存储精度不同,可能会存在数据精度的损失。

黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

黑马程序员Java零基础视频教程_下部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

http://www.lryc.cn/news/220939.html

相关文章:

  • 基于SSM的大学学生成长系统
  • 369B1860G0028 44A730240-G01 IC697ACC722B
  • 系列十一、拦截器(二)#案例演示
  • 数据分析实战 | 关联规则分析——购物车分析
  • maven 添加 checkstyle 插件约束代码规范
  • 什么是MySQL的执行计划(Explain关键字)?
  • 编码格式科普ASCII unicode utf-8 usc-2 GB2312
  • Pycharm中新建一个文件夹下__init__.py文件有什么用
  • OracleBulkCopy c#批量插入oracle数据库的方法
  • 046_第三代软件开发-虚拟屏幕键盘
  • MySQL主从搭建,实现读写分离(基于docker)
  • uni-app android picker选择默认月份
  • Go 接口-契约介绍
  • 变压器试验VR虚拟仿真操作培训提升受训者技能水平
  • Mastering Makefile:模块化编程技巧与经验分享
  • el-input输入校验插件(正则表达式)
  • 【Matplotlib】plt.plot() X轴横坐标展示完整整数坐标
  • 左手 Jira,右手 Polarion,驶入互联网和制造业十字路口的新能源汽车
  • 网络安全(黑客)-0基础小白自学
  • ActiveMQ、RabbitMQ、RocketMQ、Kafka介绍
  • unity打AB包,AssetBundle预制体与图集(二)
  • 【网络安全 --- web服务器解析漏洞】IIS,Apache,Nginx中间件常见解析漏洞
  • Python基础——注释、缩进、语法、标识符、关键字
  • 排序算法的分析及实现
  • rancher或者其他容器平台使用非root用户启动jar
  • Scrapy使用和学习笔记
  • <sa8650> sa8650介绍
  • [架构之路-244]:目标系统 - 设计方法 - 软件工程 - 软件开发方法:结构化、面向对象、面向服务、面向组件的开发方法
  • Qt窗体自动销毁
  • 制造业企业设备管理常见的三个问题及对应的解决方案