Java基本数据类型

Java 数据类型分为两大类:

  • 基本数据类型(primitive data type)
  • 引用数据类型(reference data type)

在这里插入图片描述

整型

类型占用存储空间存储大小表数范围
byte1字节( 2 8 = 256 2^8=256 28=256)8位带符号数-128~127
short2字节( 2 16 = 65536 2^{16}=65536 216=65536)16位带符号数-32768~32767
int4字节( 2 32 约 42.9 亿 2^{32}约42.9亿 23242.9亿)32位带符号数-约21亿~21亿
long8字节( 2 64 2^{64} 264)64位带符号数- 2 63 2^{63} 263~ 2 63 2^{63} 263-1
Java 语言整型常量的四种表示形式
二进制数,要求 0b 或 0B 开头,如:0b01110011
十进制整数,如:99, -500, 0
八进制整数,要求以 0 开头,如:015
十六进制数,要求 0x 或 0X 开头,如:0x15

Java 语言的整型常数默认为 int 型,声明 long 型常量可以后加’l’或’L’。

浮点型

类型占用存储空间存储大小表数范围
float4字节32位,标准IEEE754-3.403E38~3.403E38
double8字节64位,标准IEEE754-1.798E308~1.798E308
  1. float 类型又被称作单精度类型,尾数可以精确到 7 位有效数字。

  2. double 表示这种类型的数值精度约是 float 类型的两倍,又被称作双精度类型,绝大部分应用程序都采用 double 类型。

  3. Java 浮点类型常量有两种表示形式

    (1) 十进制数形式 例: 3.14 314.0 0.314

    (2) 科学记数法形式 例:3.14e0 3.14E2 3.14E-1

  4. 浮点型不精确,不要用于比较浮点数存在舍入误差,数字不能精确表示。浮点数适合普通的科学 和工程计算,精度足够; 但不适合精度要求非常高的商业计算,这时候要使用 BigDecimal 进行 运算和比较。

  5. 浮点常量默认类型是 double,要改成 float 可以后面加 ‘f’ 或 ‘F’

float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也 可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

【示例】float 类型常量的写法及变量的声明

float f = 3.14F;//float 类型赋值时需要添加后缀 F/f
double d1= 3.14;
double d2 = 3.14D;

java.math 包下面的两个有用的类:BigInteger 和 BigDecimal,这两个类可以处理任 意长度的数值。BigInteger 实现了任意精度的整数运算。BigDecimal 实现了任意精度的浮 点运算。

字符型

在这里插入图片描述

​ 如果有一种统一的字符集,将世界上所有语言字符都纳入其中,每一个字符都给予一个 全球独一无二的编码,那么乱码问题就会消失。于是,全球所有国家和民族使用的所有语言 字符的统一字符集诞生了,这就是 Unicode 字符集。

​ Unicode 字符集是为了给全世界所有字符一个唯一的编码,“唯一”对应的英文为 Unique,而编码的英文为 code。

Unicode 采用了字符集和编码分开的策略。Unicode 之前,Unicode 诞生之前可以将 字符集和字符编码混为一谈,而在 Unicode 中必须严格区分开。

Unicode 字符集统一采用两个字节表示一个字符,包括英文字母。但是,由于英文占据 互联网信息的绝大部分。真实存储和传输时,会造成极大的浪费;因此,目前主要采用 UTF8 编码来实现具体的存储和传输。

UTF-8 是变长编码,用 1-6 个字节编码 Unicode 字符。西欧字符仍然是 1 个字节,汉字 3 个字节。

字符型在内存中占 2 个字节,在 Java 中使用单引号来表示字符常量。例如’A’是一 个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。

char 类型用来表示在 Unicode 编码表中的字符。Unicode 编码被设计用来处理各种 语言的文字,它占 2 个字节,可允许有 65536 个字符。

【示例】字符型演示

char eChar = 'a'; 
char cChar ='中';

Unicode 具有从 0 到 65535 之间的编码,他们通常用从’\u0000’到’\uFFFF’之 间的十六进制值来表示(前缀为 u 表示 Unicode)

【示例】字符型的十六进制值表示方法

char c = '\u0061';

Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。

转义符含义Unicode值
\b退格(backspace)\u0008
\n换行\u000a
\r回车\u000d
\t制表符(tab)\u0009
\"双引号\u0022
\’单引号\u0027
\\反斜杠\u005c

以后我们学的 String 类,其实是字符序列(char sequence), 本质是 char 字符组成的数组。

布尔型

  1. boolean 类型有两个常量值,true 和 false。
  2. 在内存中占一个字节(boolean数组)或 4个字节(boolean),不可以使用 0 或非 0 的整数替代 true 和 false , 这点和 C 语言不同。

【注意点】

​ JVM 规范指出 boolean 当做 int 处理,也就是 4 字节,boolean 数组当做 byte 数组处理,这样我 们可以得出 boolean 类型占了单独使用是 4 个字节,在数组中是确定的 1 个字节。

boolean flag = true;//或者 flag=false;
if(flag) {
	// true 分支
} else {
	// false 分支
} 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bestkain233

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值