Java 小知识(三)

2017-11-19  本文已影响0人  hzwy23

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
上一篇下一篇

猜你喜欢

热点阅读