Java——数据类型

对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

0.变量的分类:

变量按数据类型分:

  • 基本数据类型:(8中)
    • 数值型
      • 整数类型
        • byte
        • short
        • int
        • long
      • 浮点类型
        • float
        • double
    • 字符型:char
    • 布尔型:boolean
  • 引用数据类型:
    • 类:class      <——字符串在这
    • 接口:interface
    • 数组:[](array)

变量按类中声明的位置分:

  • 成员变量
  • 局部变量

1.整数类型:

  

2.浮点型:

  

 浮点型的存储

3.字符类型:

  

  • char类型变量,通常使用一对'',内部只能写一个字符,也可以填转义字符

4.布尔类型:

只能取两个值:true、false

5.字符串类型:String

  • String不是基本数据类型,属于引用数据类型
  • 使用方式与基本数据类型一致。如:String str=“abc”;
  • 一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。如:str=str+"abc"; str=str+100;
  •  String可以和8种基本数据类型变量做运算的。结果用String接着

5.数据类型转换

(1)基本数据类型之间的运算规则:

这里讨论7种基本数据类型变量之间的运算(不包含布尔类型)

① 自动类型提升:

  当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

  byte、char、short>int>long>float>double

注意:当byte,char,short三种类型的变量做运算时,结果为int类型。

② 强制类型转换:

  自动类型提升的逆运算

double d1=12.2;  // 截断操作
int i1=(int)d1;

 注意:强制类型转换可能导致精度损失

没有精度损失:

long l1=123;
short s1=(short)l1;

 有精度损失:

int i1=128;
byte b=(byte)i1;    // -128

 6.特殊情况

特殊情况1:如:

long l=123123;

此时没有加(l、L)不会报错,因为自动类型提升,将其转换成了int类型,没有超出范围,所以不会报错。

但是如果数值过大:

long l=1231231231231231231231312;    // x
long l=1231231231231231231231312L;    //

特殊情况2

byte b=12;
byte b1=b+1;

此时编译会报错:因为整型常量,默认类型为int型,浮点型常量默认类型为double型

原文地址:https://www.cnblogs.com/codexlx/p/13502505.html