程序员

【JAVA程序设计】基本数据类型

作者:admin 2021-04-21 我要评论

Java基本数据类型 摘要 每个数据类型都有它的取值范围。编译器会根据每个变量或常量的数据类型为其分配内存空间。Java为数值、字符值和布尔值数据提供了八种基本...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

Java基本数据类型

摘要:

每个数据类型都有它的取值范围。编译器会根据每个变量或常量的数据类型为其分配内存空间。Java为数值、字符值和布尔值数据提供了八种基本数据类型。

在这里插入图片描述

一、整数类型

整型于表示没有小数部分的数值,它可以是负数。

类型存储需求取值范围数值
byte1字节 ? 2 7 -2^7 ?27 ~ 2 7 ? 1 2^7-1 27?1 (-128 ~ 127)8 位带符号数
short2字节 ? 2 15 -2^{15} ?215 ~ ? 2 15 ? 1 -2^{15}-1 ?215?1 (-32 768 ~ 32 767)16 位带符号数
int4字节 ? 2 31 -2^{31} ?231 ~ ? 2 31 ? 1 -2^{31}-1 ?231?1 ((-2 147 483 648 ~ 2 147 483 647)32 位带符号败
long8字节 ? 2 63 -2^{63} ?263 ~ ? 2 63 ? 1 -2^{63}-1 ?263?1 (即 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 8077)64 位带符号数

1.数值前缀和后缀

  • 十六进制数值有 0x0X前缀
  • 八进制数值有前缀0
  • 二进制数值有前缀0b0B
  • 可以为数值增加下划线:如1_000_000,0b1111_0100_1111
  • 长整型数值有后缀Ll

2.Java&C++提示

1.Java中, 整型的范围与运行 Java 代码的机器无关。
2. Java 没有任何元符号 unsigned 形式 int long short byte 类型

二、浮点类型

浮点类型用于表示有小数部分的数值

类型存储需求取值范围数值有效数位
float4字节负数范围: ? 3.4028235 × 1 0 + 38 -3.4028235\times10^{+38} ?3.4028235×10+38~ ? 1.4 × 1 0 ? 45 -1.4\times10^{-45} ?1.4×10?45 正数范围: 1.4 × 1 0 ? 45 1.4\times10^{-45} 1.4×10?45 ~ 3.4028235 × 1 0 + 38 3.4028235\times10^{+38} 3.4028235×10+3832 位,标准 IEEE 754(有效位数为6 - 7位)
double8字节负数范围: ? 1.7976931348623157 × 1 0 + 308 -1.7976931348623157\times10^{+308} ?1.7976931348623157×10+308~ ? 4.9 × 1 0 ? 324 -4.9\times10^{-324} ?4.9×10?324 正数范围: 4.9 × 1 0 ? 324 4.9\times10^{-324} 4.9×10?324 ~ 1.7976931348623157 × 1 0 + 308 1.7976931348623157\times10^{+308} 1.7976931348623157×10+30864 位,标准 IEEE 754(有效位数为 15 位)

浮点数值不适用于无法接受舍入误差的计算中,如果在数值计算中不允许有任何舍入误差,应该使用 BigDecimal 类

1.double&float

  • double 型是 float 型的两倍。所以,double 型又称为双精度 (double precision), 而 float 称为单精度 ( single precision)。
  • 在很多情况下, float 类型 的精度很难满足需求,通常情况下,应该使用 double 型。

2.浮点数值的后缀

  • float 类型的数值有Ff后缀
  • double 类型的可以有Dd后缀
  • 没有后缀的浮点数值默认为 double 类型

3.浮点数的表示

科学计数法表示:

1.23456 × 1 0 2 1.23456 \times 10^2 1.23456×102 可以写成 1.23456E2 或者 l.23456E+2

  • 浮点型直接量可以用 a × 1 0 b a\times10^b a×10b 形式的科学记数法表示
  • E (或 e) 表示指数,既可以是大写的也可以是小写的

十六进制数表示:

0.125 × 2 ? 3 \times2^{-3} ×2?3 可以表示成 0x1.0p-3

  • 在十六进制表示法中,使用 p表示指数
  • 尾数采用十六进制,指数采用十进制
  • 指数的基数是 2, 而不10

3.三个特殊的浮点数值

  1. 正无穷大 Double.POSITIV E_INFINITYFloat.POSITIVE_INFINITY

  2. 负无穷大 Double.NEGATIV_INFINlTYFloat.NEGATIV_INFINlTY

  3. NaN(不是一个数字) Double.NaNFloat.NaN

注:不能这样桧测一个特定值是否等于 Double.NaN,可以使用 Double.isNaN 方法

if (x == Double.NaN) // is never true
if (Double.isNaN(x)) // check whe ther x is "not a number"

三、字符类型

字符数据类型表示单个字符,一些Unicode字符需要两个char值

1.字符的表示

  • 字符型直接量用单引号括住

    char letter = 'A';
    

    字符串直接量必须括在双引号中。而字符直接量是括在单引号中的单个字符。

2.Unicode 和 ASCII 码

编码(encoding):将字符映射到它的二进制形式的过程。 编码表(encoding scheme)
scheme):字符有多种不同的编码方式,编码表定义该如何编码每个字符。

  • ASCII 码(美国标准信息交换码)是表示所有大小写字母、数字、标点符号和控制字符的 8 位编码表

  • 16 位 Unicode 码 占 两 个 字 节,用 以 \u 开头的 4 位 十六进制数表示,范围从 ‘\u0000’ 到 ’\UFFFF’。(Unicode 码包括ASCII码)

    一个 16 位的编码所能产生的字符只有 65 536 个,它是不足以表示全世界所有字符的。因此,Unicode 标准被扩展为 1 112 064 个字符。这些字符都远远超过了原来 16 位的限制,它们称为补充字符(supplementary character)

3.转义字符

转义序列名称Unicode码十进制数值
\b退格键\u00088
\tTab 键\u00099
\n换行符\u000A10
\f换页符\u000C12
\r回车符\u000D13
\\反斜杠\u005C92
\"双引号\u002234

4.字符型数据与数值型数据之间的转换

  • char 型数据可以转换成任意一种数值类型,反之亦然。将整数转换成 char 型数据时,只用到该数据的低十六位,其余部分都被忽略
  • 要将一个浮点值转换成 char 型时,首先将浮点值转换成 int 型,然后将这个整型值转换为 char 型
  • 如果转换结果适用于目标变量(范围不大于),就可以使用隐式转换方式;否则,必须使用显式转换方式
  • 0~FFFF 的任何一个十六进制正整数都可以隐式地转换成字符型数据。而不在此范围内的任何其他数值都必须显式地转换为 char 型
  • 所有数值操作符都可以用在 char 型操作数上。如果另一个操作数是一个数字或字符,那么 char 型操作数就会被自动转换成一个数字

Unicode 转义序列会在解析代码之前得到处理:
“\u0022+\ u0022” 并不是个由引号 (\U 0022) 包围加号构成 的字符串,实际 上, \u0022 会在解析之前转换为" ,这会得到“+“ ,要当心注释中的 \u:
// \u000A is a newline
语法错误 因为读程序时 \u000A会替换为一个换行符

5.字符的比较和测试

  • 两个字符可以使用关系操作符进行比较,如同比较两个数字一样。这是通过比较两个字符的 Unicode 值实现的。
  • 程序中需要测试一个字符是数字、字母;大写字母,还是小写字母,为了方便,Java 的 Character 类提供了下列方法用于进行字符测试:
    方法描述
    isDigit(ch)如果指定的字符是一个数字,返冋 true
    isLetter(ch)如果指定的字符是一个字母,返冋 true
    isLetterOrDigit(ch)如果指定的字符是一个字母或者数字,返回 true
    isLowerCase(ch)如果指定的字符是一个小写字母,返冋 true
    isUpperCase(ch)如果指定的字符是一个大写字母,返冋 true
    toLowerCase(ch)返回指定的字符的小写形式
    toUpperCase(ch)返回指定的宇符的大写形式

四、布尔类型

boolean 数据类型声明一个具有值 true 或者 false 的变量

  • 布尔类型用来判定逻辑条件,整型值和布尔值之间不能进行相互转换

    在C++中,数值甚至指针可以代替 boolean,值0相当于false,Java中不行

;原文链接:https://blog.csdn.net/BlacKingZ/article/details/115407760

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 【JAVA程序设计】基本数据类型

    【JAVA程序设计】基本数据类型

  • Vue实现圆环进度条的示例

    Vue实现圆环进度条的示例

  • 如何封装Vue Element的table表格组件

    如何封装Vue Element的table表格组件

  • 解决vue项目本地启动时无法携带cookie

    解决vue项目本地启动时无法携带cookie

腾讯云代理商
海外云服务器