Java笔记入门Day2
一、数据类型
Java中一共8种基本类型,包括4种整型、2种浮点类型、1种字符类型char、1种布尔类型boolean
1.整型
类型 | 储存需求 | 取值范围 |
---|---|---|
int | 4字节 | -2,147,483,648 ~ 2,147,483,647(刚刚超过20亿) |
short | 2字节 | -32,768 ~ 32767 |
long | 8字节 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
byte | 1字节 | -128 ~ 127 |
- 1.byte和short类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵时的大数组;
- 2.由于Java程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定。
长整型数值后缀有L或者l(例如400000000L)多用L表示 更加清楚
十六进制数值有一个前缀0x或者0X(例如 0xCAFE)八进制前缀0(例如 010)
八进制表示法比较容易混淆所以不推荐使用
前缀0b或0B表示二进制,例如0b1001就是十进制的9;
Java中可以通过加下划线使数值更易读,如1_000_000表示100万;
2.浮点类型
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约±3.402 823 47E+38F(有效位数为6~7位) |
double | 8字节 | 大约±1.797 693 134 862 315 70E+308(有效位数为15位) |
float类型的数值后缀F或f(例如3.14F),没加后缀的浮点数值默认为double类型
计算0/0或者负数的平方根结果为NaN
*ATTENTION:浮点数值不适用于无法接受舍入误差的金融计算。例如,命令System.out.println(2.0-1.1)将打印出0.899999999999999999,而不是人们期望的0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。这种就像十进制无法精确地表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类
3.char类型
char类型的字面量值要用单引号括起来。例如:'A’是编码值为65的字符常量。它与"A"不同,"A"是包含一个字符A的字符串。char类型的值可以表示为十六进制,其范围从\u0000到\uFFFF。例如,\u2122表示商标符号(™),\u03C0表示希腊字母π
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
" | 双引号 | \u0022 |
’ | 单引号 | \u0027 |
\ | 反斜杠 | \u005c |
\u005B和\u005D分别是[ ]的编码
- 警告:Unicode转义序列会在解析代码之前得到处理。例如,"\u0022+\u0022"并不是一个由引号(U+0022)包围加号构成的字符串。实际上,\u0022会在解析之前转换为",这会得到" “+” ",也就是一个空串
更隐秘地,一定要当心注释中的\u。注释
// \u000A is a newline
会产生一个语法错误,因为读程序时\u00A0会替换为一个换行符。类似地,下面这个注释
// look inside c:\users
也会产生一个语法错误,因为\u后面并没有