java的数据类型

1、java的数据类型分类

整数类型

byte:  可以说是java中最少的数据类型了,它在内存中占用1个字节,也就是8位(bit),值得范围是:-128~127,也就是-2的7次方到2的7次方减一,默认值是0.

short:  短整型,它在内存中占用的是2个字节,16位,值得取值范围是-32768~32767,也就是-2的15次方到2的15次方减一,默认值也是0.

int:  整型,在内存中占4个字节,32位,值得取值范围是-2147483648~2147483647,也就是-2的31次方到2的31次方减一,默认值还是0。

long: 长整型,在内存中占8个字节,64位,值的取值范围是-2的63次方到2的63次方减一,默认值要注意了,因为是长整型, 所以默认是虽说是0,但是准确的说是0L,必须要加上L来表示它是long类型,不加就成了int类型了.

数据类型可以从低精度转向高精度,但返之则不可  byte<short<int<long<float<double

注意:在声明long类型的常量时,通常在后面加上l或者L(通常用L,因为l会误认为数据1),如果没有声明的话,默认会是INT类型

字符串类型

char 字符类型,它在内存中占用2个字节,也就是16 bit,因为java本身的字符集不是用ASCII码来存储的, 而是用的16位的Unicode字符集,所以它的字符存储范围也就是'u0000 -- uffff',默认值呢?就是'u0000'

 示例: 

int res = 'a' + 'b';   会把所对应的字符串转化成ASCII码进行计算  得出的结果是195

char res = 'a' + 'b'; 结果输出 ? 计算过程会把a与b转成ASCII码计算得出195,但是ascii码中没有对应的195的字符,所以返回的是?

注意:这里的char表示一个字符,是用来表示Unicode里的字节通常用单引号 ''来表示; char在计算的时候通常会转成ascii码进行计算,所以可以当成整型进行处理,而string是用来表示字符串通常用双引号 ""  来表示具体示例如下,

public class Hello {
    public static void main (String args[]) {
        String A = "this is test";  //字符串
        char b = 'a';  //字符
    }
}

浮点类型

不声明小数类型的情况下,默认为double

float :  单精度浮点型, 在内存中占4个字节,32位,主要用来存储小数的,但是有限制,有效小数位只有7位,默认是0.0f ,取值范围是:3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示 乘以10的负45次方) =》 不能表示一个精确的值, 会损失精度。

double:  双精度浮点型,在内存中占8个字节,64位,也是用来存储小数的,精度是float的两倍,默认是0.0,取值范围是1.797693e+308 到4.9000000e-324(e+308表示是乘以10的308次方,同样,e-324表示乘以10的负324次方)

注意: 浮点默认为double,如果需要变为float, 需要在后面加F/f如果3.14f;

浮点数存在舍入误差,很多数字不能精确表示,如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

布尔数据类型

boolean 存储的时候占一位

boolean有两个值:true 和 false;

boolean用来判断逻辑条件,一般用于程序流程控制

原文地址:https://www.cnblogs.com/rickyctbu/p/13252193.html