初识Java数据类型

初识Java数据类型

什么是数据类型

不同的数据,内存空间不一样,为了节约内存及后续操作,JAVA对数据进行了分类

java中的两大数据类型:

​ 基本数据类型: 8种,存的是数据值

​ 引用数据类型: 存的是保存该数据的内存地址

1. 基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔类型

对于数值类型的基本类型的取值范围,无需强制记忆,因为它们的值都可以通过相应的类查询,超出范围报错时,改变定义的类型即可,需要注意默认类型和后缀.

 // int  
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);//对应类.属性名查询
        System.out.println("包装类:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
		//MIN_VALUE属性常量,规范大写,提醒注意,不用更改,区别变量
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默认值是 0;
  • 例子:byte a = 100,byte b = -50

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • 默认值是 0;

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般整型变量,默认为 int 类型;
  • 默认值是 0 ;

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;

  • 最小值是 -9,223,372,036,854,775,808(-2^63);

  • 最大值是 9,223,372,036,854,775,807(2^63 -1);

  • 这种类型主要使用在需要比较大整数的系统上;

  • 默认值是 0L;

    l"容易与数字"1"混淆,不容易分辩。所以最好大写"L"。

    例子:long a =6666666L

注意: 超出long范围的时候 ,java提供了处理超大数的类 BigInteger ,需新建对象 再赋值

float:

  • float 数据类型是单精度、32位;

  • float 在储存大型浮点数组的时候可节省内存空间;

  • 默认值是 0.0f;

  • 浮点数不能用来表示精确的值,如货币;

  • 例子:float f1 = 3.14f;

    ​ 1 / (0.0) = 无穷大; 0.0 代表无限接近0,不准确的数字

double:

  • double 数据类型是双精度、64 位;
  • 浮点数的默认类型,为double类型;
  • 默认值是 0.0d;

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 默认值是 false;

char:

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符(含特殊字符);
  • 例子:char c = ‘65’; //65 会自动调用ASCII码 进行转换,实际还是一个字符, 符号为单引号

1.1 数据类型的转换

数据类型转换必须满足如下规则:

总的来说 就是考虑存放空间 及 内容正负(如 short与char均16位,不能转)

​ 1.不能对boolean类型(1位存放)进行类型转换

​ 2.不能把对象类型转换成不相关类的对象

​ 3.转换过程中可能导致溢出或损失精度

​ 4.大转小类型时必须使用强制类型转换

​ 5.浮点数转整数直接舍弃小数, int i = 7 / 3 ; 结果是2

自动类型转换

小转大: 做运算的时候 ,自动转为表达式中最高的类型进行计算 ,其接收结果必须是最大的类型,(隐式转换)

例 : float f1 = 1+ 3.14 + 5.2f; //会报错,右边结果为double型

​ char转高时,先转成ASCII码

强制类型转换

转换的类型之间,必须兼容

格式: float f1 = (float)(1+3.14) ;

2.引用数据类型

  • java中,用new 关键字 声明的都是引用类型 ,变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。

你可能感兴趣的:(java)