Java有两种数据类型
基本数据类型
即int/char等这样的数值类型,共8种 。
- 基本数据类型的属猪类型和取值范围
-
数据类型 位数 取值范围 boolean 1 true byte 8 -128~127 short 16 -32768~32767 int 32 -2e31~2e31-1 long 64 -2e63~2e63-1 float 32 ? double 64 ? char 16 0-65535 ‘\u0000’~‘\uFFFF’ - -
引用类型
除了基本数据类型之外都是引用类型。
包括API中的类,比如String、File。
也包括自定义的类。
包括数组。
基本类型和引用类型的区别
基本数据类型 | 引用数据类型 | |
---|---|---|
概念 | 变量(单纯的值) | 对象(引用) |
存储位置 | 在栈中存值 | 在栈中存引用,在堆中存具体对象的属性值 |
赋值方 | 直接赋值 | new ,String类和包装器类可以直接赋值 |
类型转换
- 隐式类型转换
规则
- 类型兼容
- 目标类型大于源类型
byte < short < int < long <float < double [ char < int < long < float <double]
数值型表达式的转换
- 有double 则结果为duoble
- 有float 结果为float
- 有 long 结果为long
- 其他结果为int
强制类型转换 数值型的
- 大的类型转换成小的类型,需要使用(类型名)进行强制转换
- 强制转换可能会精度丢失
- char可以与整数型进行互转
引用数据类
- 非基本数据类型
使用方式和基本数据类型完全一样
- 属性
- 参数
- 返回值
实例
public class PrimitiveTypeTest {
public static void main(String[] args) {
// byte
System.out.println(“基本类型:byte 二进制位数:” + Byte.SIZE);
System.out.println(“包装类:java.lang.Byte”);
System.out.println(“最小值:Byte.MIN_VALUE=” + Byte.MIN_VALUE);
System.out.println(“最大值:Byte.MAX_VALUE=” + Byte.MAX_VALUE);
System.out.println();// short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);