JAVA数据类型

数据类型概述

Java是一种强类型语言,这就意味着必须为每一个变量声明一种类型。
在Java中,一共有8种基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicade编码的字符单元的字符类型(char)和一种表示真值得boolean类型。

整型

  • 基本概念
类型存储需求取值范围
int4字节-2147483648~2147483647
short2字节-32768~32767
long8字节-9223372036854775808~9223372036854775807
byte1字节-128~127
  • 注意点
    • 在c和c++中,需要针对不同的处理器选择最为高效的整型。但是在Java中,由于必须要保证在所有机器上面都获得同一个成果,所以各种数据结构的取值范围必须固定。因此整型的范围与Java代码的机器无关。
    • Java中也没有无符号的int、long、short或byte类型

浮点类型

  • 基本概念
类型存储需求取值范围
float4字节大约在 ± 3.402 823 47E+38F(有效位数为 6 ~ 7 位)
double8 字节大约 ± 1.797 693 134 862 315 70E+308 (有效位数为 15 位)
  • 注意点
    • double 表示这种类型的数值精度是 float 类型的两倍。
    • float 类型的数值有一个后缀 F 或 f (例如, 3.14F)。没有后缀 F 的浮点数值(如 3.14 ) 默认为 double 类型
    • 有三个特殊的浮点数值可以用于表示溢出和出错情况
类型表示用法
正无穷大Double_POSITIVE_INFINITYDouble.IsPositiveInfinity(4.0 / 0)
负无穷大Double.NEGATIVEJNFINITYDouble.IsPositiveInfinity(-4.0 / 0)
不是一个数字Double.NaNDouble.isNaN(x)
  • 浮点数是如何表示和存储的

    • float
      在这里插入图片描述
    • double
      double存储
  • 浮点类型之间如何比较

    • 比较值是否相同,
      使用BigDecimal来进行比较
     BigDecimal b1 = new BigDecimal(Double.toString(v1));
     BigDecimal b2 = new BigDecimal(Double.toString(v2));
     return b1.compareTo(b2)
    
    • 比较对象是否相同
      对象相同和值严格相同是不一样的,原因是java遵循IEEE 754浮点数标准,在这个标准中规定NaN与任何值比较皆不等,如果double_x与double_y的值都NaN,这个时候他们是相同的对象,但double_x == double_y会返回false。因此需要使用一下方法来进行比较:
    if(Double.doubleToLongBits(double_x) == Double.doubleToLongBits(double_y))
    

char类型

  • 概念
    char 类型的字面量值要用单引号括起来。 例如: W 是编码值为 65 所对应的字符常量。它与 “A” 不同,“A” 是包含一个字符 A 的字符串。
    除此之外,还有一些特殊的字符表示转义序列。
转移序列名称Unicode值
\b退格\u0008
\t制表u0009
\n换行u000a
\r回车\u000d
\"双引号\u0022
\’单引号\u0027
\\反斜杠\u005c
  • 注意点
    • Unicode 转义序列会在解析代码之前得到处理。
      例如,"\u0022+\u0022” ,\u0022 会在解析之前转换为 ",这会得到也就是一个空串。

Unicode和char类型

  • Unicode是什么
    在 Unicode 出现之前, 已经有许多种不同的标准:美国的 ASCII, 西欧语言中的,中国的 GB 18030 和 BIG-5 等。这样就产生了下面两个问题:一个是对于任意给定的代码值, 在不同的编码方案下有可能对应不同的字母;二是采用大字符集的语言其编码长度有可能不同。
    例如,有些常用的字符采用单字节编码, 而另一些字符则需要两个或更多个字节。设计 Unicode 编码的目的就是要解决这些问题。
  • 何时使用char
    在 Java 中,char 类型描述了 UTF-16 编码中的一个代码单兀。
    强烈建议不要在程序中使用 char 类型, 除非确实需要处理 UTF-16 代码单元。最好将字符串作为抽象数据类型处理。

boolean类型

boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件。整型值和布尔值之间不能进行相互转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值