2021-06-29

Java核心技术 数据类型

文章内容来自于《Java核心技术 卷1》,如有错误欢迎评论区指出。

Java 有一个能够表示任意精度的算术包, 通常称为“ 大数值”( bignumber)。 虽然
被称为大数值, 但它并不是一种新的Java 类型, 而是一个Java 对象。

int 4 字节 范围包括 -2 147 483 648 - 2 147 483 647 ( 正好超过20 亿)
short 2 字节 范围包括 -32 768 - 32 767
long 8 字节 范围包括 -9 223 372 036 854 775 B08 - 9 223 372 036 854 775 807
byte 1字节 范围包括 -128 - 127
float 4字节 范围包括 大约± 3.402 823 47E+38F (有效位数为6 ~ 7 位)
double 8字节 范围包括 大约± 1.797 693 134 862 315 70E+308 (有效位数为15 位)

int 类型最常用。但如果表示星球上的居住人数, 就需要使用long 类型
了。byte 和short 类型主要用于特定的应用场合, 例如, 底层的文件处理或者需要控制占用
存储空间量的大数组。

double 表示这种类型的数值精度是float 类型的两倍(有人称之为双精度数值)。绝大部
分应用程序都采用double 类型。在很多情况下,float 类型的精度很难满足需求。实际上,只
有很少的情况适合使用float 类型,例如,需要单精度数据的库, 或者需要存储大量数据。
float 类型的数值有一个后缀F 或f ( 例如, 3.14F)。没有后缀F 的浮点数值(如3.14 ) 默
认为double 类型。当然,也可以在浮点数值后面添加后缀D 或d ( 例如,3.14D)。
在这里插入图片描述
注释: 可以使用十六进制表示浮点数值。例如, 0.125=2—3 可以表示成0xl.0p-3。在十六
进制表示法中, 使用p 表示指数, 而不是e。注意, 尾数采用十六进制, 指数采用十进
制。指数的基数是2, 而不是10。

char 类型原本用于表示单个字符。不过, 现在情况已经有所变化。如今, 有些Unicode
字符可以用一个chai•值描述, 另外一些Unicode 字符则需要两个char 值。有关的详细信息请
阅读下一节。
char 类型的字面量值要用单引号括起来。例如:W 是编码值为65 所对应的字符常量。
它与"A" 不同,“A” 是包含一个字符A 的字符串, char 类型的值可以表示为十六进制值,其
范围从\u0000 到\Uffff。例如:W2122 表示注册符号( ), \u03C0 表示希腊字母it。
除了转义序列\u 之外, 还有一些用于表示特殊字符的转义序列, 请参看表3-3。所有这
些转义序列都可以出现在加引号的字符字面量或字符串中。例如,’\02丨22’ 或"1 110\11”。转
义序列\u 还可以出现在加引号的字符常量或字符串之外(而其他所有转义序列不可以)。例
如:
转义序列 名称 Unicode值
\b 退格 \u0008
\t 制表 \u0009
\n 换行 \u000a
\r 回车 \u000d
\ " 双引号 \u0022
\’ 单引号 \u0027
\ \ 反斜杠 \u005c

警告: Unicode 转义序列会在解析代码之前得到处理。例如,"\u0022+\u0022” 并不是一
个由引号(U+0022) 包围加号构成的字符串。实际上, \u0022 会在解析之前转换为", 这
会得到也就是一个空串。
更隐秘地, 一定要当心注释中的\u。注释
// \u00A0 is a newline
会产生一个语法错误, 因为读程序时\u00A0 会替换为一个换行符类似地, 下面这
个注释
// Look inside c:\users
也会产生一个语法错误, 因为\u 后面并未跟着4 个十六进制数, ,

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

在Java 中, 利用关键字final 指示常量。例如:

public class Constants
{
public static void main(String[] args)
{
final double CM_PER_INCH = 2.54;
double paperWidth = 8.5;
double paperHeight = 11;
System,out.println("Paper size in centimeters: "

  • paperWidth * CM PER INCH + " by " + paperHeight * CM.PER.INCH);
    }
    }
    关键字final 表示这个变量只能被赋值一次。一旦被赋值之后, 就不能够再更改了。习惯上,
    常量名使用全大写。

在Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为
类常量。可以使用关键字static fina丨设置一个类常量。下面是使用类常量的示例:
public cl ass Constants〗
{
public static final double CM_PER_INCH = 2.54;
public static void main(Stringn args)
{
double paperWidth = 8.5;
double paperHeight = 11;
System.out.println("Paper size in centimeters: "

  • paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ;
    }
    }
    需要注意, 类常量的定义位于maiii 方法的外部。因此, 在同一个类的其他方法中也可
    以使用这个常量。而且, 如果一个常量被声明为public, 那么其他类的方法也可以使用这个
    常fi。在这个示例中,Constants2.CM_PER-INCH 就是这样一个常童。

在Java 中,使用算术运算符+、-、*、/ 表示加、减、乘、除运算。当参与/ 运算的两个
操作数都是整数时, 表示整数除法;否则, 表示浮点除法。整数的求余操作(有时称为取模)
用% 表示。例如, 15/2 等于7, 15%2 等于1 , 15.0/2 等于7.50
需要注意, 整数被0 除将会产生一个异常, 而浮点数被0 除将会得到无穷大或NaN 结果。

注释: 可移植性是Java 语言的设计目标之一, 无论在哪个虚拟机上运行, 同一运算应该
得到同样的结果3 对于浮点数的算术运算, 实现这样的可移植性是相当困难的。double
类型使用64 位存储一个数值, 而有些处理器使用80 位浮点寄存器这些寄存器增加了
中间过程的计算精度. 例如, 以下运算:
double w = x * y / z;

在Math 类中, 包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函
数也不同。
要想计算一个数值的平方根, 可以使用sqrt 方法:
double x = 4;
double y = Math.sqrt(x);
System.out.println(y);

prints 2.0println 方法和sqrt 方法存在微小的差异。println 方法处理System.out 对象。但是,
Math 类中的sqrt 方法处理的不是对象, 这样的方法被称为静态方法。有关静态方法的详
细内容请参看第4 章。
在Java 中,没有幂运算, 因此需要借助于Math 类的pow 方法。语句:
double y = Math.pow(x, a) ;
将y 的值设置为x 的a 次幂( xa)。pow 方法有两个double 类型的参数, 其返回结果也为
double 类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值