Java的数据类型
基本数据类型
| 类别 |数据类型| 包装类 | 默认值 |
|数值类型|整数类型| byte |Byte | 0|
|数值类型|整数类型|short |Short | 0|
|数值类型|整数类型|int |Integer | 0|
|数值类型|整数类型|long |Long |0L |
|数值类型|浮点类型|float |Float |0.0f |
|字符 |类型 |char |Character |\u0000 |
|布尔 |类型 |Boolean|Boolean |false |
引用数据类型:Java中除了8个基本数据类型以外的数据类型都属于引用数据类型
··Java中的引用类型主要有三种,分别是类(class)、接口(interface)和数组
·引用类型指向一个对象,指向对象的变量就是引用变量
·引用变量由类的构造方法创建,可以使用引用变量来访问它们所指向的对象
·对象、数组都是引用数据类型。所有引用类型的默认值都是null (空引用)
·一个引用变量可以用来引用任何与之兼容的类型
··Java把内存分为:栈内存(stack)和堆内存(heap)。基本数据类型的存储空间在栈中,而引用类型有两块存储空间,一块在栈中,一块在堆中
⁕栈内存
·在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
·当在一段代码中定义一个变量时,Java就在栈中为这个变量分配内存空间
·当超过变量的作用域后,Java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用
⁕堆内存
·堆内存用于存放由new创建的对象和数组
·在堆中分配的内存,由Java虚拟机自动垃圾回收器来管理
·在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者
对象,的引用变量,以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象
·栈中的引用变量指向堆中的数组或对象,相当于是Java中的指针
基本数据类型的类型转换:类型转换就是将一个值从一种数据类型更改为另一种数据类型的过程。数据类型转换有两种方式:
·自动转换:从低级类型向高级类型的转换,系统将自动执行,程序员无需进行任何操作,又被称为隐式转换。基本数据类型(不包括布尔型)按精度从低到高的排列顺序为:
byte<short<int<long<float<double,其中char类型比较特殊,它可以与部分int型数字兼容,且精度不会发生变化
·强制转换:当把高精度变量的值赋给低精度变量时,必须使用强制类型转换(又称显式转换)。执行强制类型转换时可能会导致精度丢失。强制转换的语法: (类型名)要转换的变量或值
byte a=3;
float b=3.14f;
int c=a; //自动转型 低转高自动
int d=(int)b; //强制转型 高转低需要强转