1. Java基本数据类型
Java中有8种基本数据类型,这8种基本数据类型又可以再分类为如下三类:
a). 数值类型
类型名 | 范围 | 存储大小 |
---|---|---|
byte | -128 ~ 127 | 8位带符号数 |
short | -32768 ~ 32767 | 16位带符号数 |
int | -2147483648 ~ 2147483647 | 32位带符号数 |
long | -9223372036854775808 ~ 9223372036854775807 | 64位带符号数 |
float | 负数:-3.4028235E+38 ~ 1.4E-45 正数:1.4E-45 ~ 3.4028235E+38 | 32位,标准IEEE 754 |
double | 负数:-1.7976931348623157E+308 ~ -4.9E-324 正数范围: 4.9E-324 ~ 1.7976931348623157E+308 | 64位,标准IEEE 754 |
b). 字符值类型
类型名 | 描述 |
---|---|
char | 字符,用单引号包围 |
c). 布尔值类型
类型名 | 描述 |
---|---|
boolean | true 和 false 两种值 |
2. Java字符编码
ASCII
8位编码表,使用ASCII编码定义字符方式:
char letter = 'A';
Unicode
最初是16位编码表,能够表示65536个字符,后来进行了扩展,能够表示1112064个字符。Unicode编码包含了ASCII编码
使用方式:
char letter = '\u0041';
3.Java最小化数值错误
在Java使用浮点数计算时,可能存在一些误差,导致这个误差最根本的原因是计算机中浮点数用近似值表示,当一个大的浮点数加上一个小的浮点数时,按照近似值表示方法,增加的小浮点数有时候会被忽略。
所以,在处理浮点数加法运算时,先将小的浮点数加起来,将其结果再去加大的浮点数,这样有助于提高运算精度。
public class DemoOne {
public static void doubleAdd() {
double sum = 0.0;
for(double i = 0; i <= 1; i= i+0.01){
sum += 0.01;
}
System.out.println(sum);
}
public static void floatAdd() {
float sum = 0.0f;
for(float i = 0; i <= 1; i=i+0.01f){
sum += 0.01f;
}
System.out.println(sum);
}
public static void main(String args[]){
doubleAdd();
floatAdd();
}
}
// 输出信息:
// 1.0000000000000007
// 1.0099994