手记

Java技术之数据类型

Java技术之数据类型

4种整型,2种浮点类型,1种Unicode编码的字符单元的字符类型char和1种boolean类型

  • 注意:BigIntege和BigDecimal等,不是数据类型,而是Java对象

  • Java的数据类型所占的字节数与平台无关

整型

类型 转储需求 取值范围
byte 1字节 -128 ~ 127
short 2字节 -32768 ~ 32767
int 4字节 -2147483648~2147483647(正好超过20亿)
long 8字节 -9223372036854775808~9223372036854775807

类型转储需求取值范围byte1字节-128 ~ 127short2字节-32768 ~ 32767int4字节-21474836482147483647(正好超过20亿)long8字节-92233720368547758089223372036854775807

Java7开始可以用前缀0b或0B写二进制数,例如0b1001 就是9 为数字字面值加下划线,例如1_000_000(0b1111_0100_0010_0100_000) Java编译器会去除"_"

浮点类型

类型 转储需求 取值范围
float 4字节 ±3.40282347E+38F(有效位数为6-7位)
double 8字节 ±1.79769313486231570E+308(有效位数为15位)

类型转储需求取值范围float4字节±3.40282347E+38F(有效位数为6-7位)double8字节±1.79769313486231570E+308(有效位数为15位)

浮点数值三个特殊值 NaN表示不是一个数字,例如负数平方根,0/0的结果等,而正整数/0则表示正无穷大

  • 正无穷大

  • 负无穷大

  • NaN

public class Note {
  public static void main(String[] args) {
//注释后面为输出结果,正无穷大,负无穷大和NaN
    System.out.println(Double.POSITIVE_INFINITY); //Infinity
    System.out.println(Double.NEGATIVE_INFINITY); //-Infinity
    System.out.println(Double.NaN); //NaN
    System.out.println(Double.isNaN(Math.sqrt(-2))); //true,判断一个浮点数值是否是NaN
  }
}

指数计数法与科学计数法

  • 在科学与工程领域 "e"代表自然对数的基数

  • 但JAVA中e或E指的10为底的幂数

  • 为避免混淆可以使用大写E

0x1.0p-3 e不能表示指数,大写E表示科学计数法,一般使用大写,请尽量不要使用小写

public class Note {
  public static void main(String[] args) {
    float expFloat = 1.39e-43f;
    //1.39E-43
    System.out.println(expFloat);
    expFloat = 1.39E-43f;
    //1.39E-43
    System.out.println(expFloat);
    double expDouble = 47e47d;
    double expDouble2 = 47e47;
    //4.7E48
    System.out.println(expDouble);
    System.out.println(expDouble2);
    //科学与工程领域 2.718281828459045
    System.out.println(Math.E);
  }
}

char类型

类型 转储需求 取值范围
\b 退格 \u0008
\t 制表 \u0009
\n 换行 \u000a
\r 回车 \u000d
\" 双引号 \u0022
\’ 单引号 \u0027
\\ 反斜杠 \u005c

Unicode和char类型

Unicode 1.0:65536个,十六进制,前缀U+,码点可以分成17个代码级别 码点:一个编码表中的某个字符对应的代码值 char类型尽量不要使用,而应当使用字符串作为抽象数据的处理

boolean类型

boolean类型只有两个值:true和false Java基础知识之运算符,也可以叫操作符

public class Note {
  public static void main(String[] args) {
//算术运算符:+,-,*,/  分别表示加减乘除
//整数除法:整数/整数
//浮点除法:非整数/非整数,整数/非整数,非整数/整数
//求余操作:% 也可以叫取模
    System.out.println(15/7);//输出结果:2
    System.out.println(15%2);//输出结果:1
    System.out.println(15.0/2);//输出结果:7.5
//整数/0 报错
//浮点数/0 无穷大或NaN
//System.out.println(15/0);//输出报错: Exception in thread "main" java.lang.ArithmeticException: / by zero
    System.out.println(15.0/0);//输出结果:Infinity
    System.out.println(0.0/0);//输出结果:NaN
  }
}
0人推荐
随时随地看视频
慕课网APP