java数据类型

javaSE 数据类型

基本类型

java共有八种基本类型:

  1. byte:byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一
  2. short:Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一
  3. int:默认的整型类型,存储整数(默认的整数类型)
  4. long:这种类型主要使用在需要比较大整数的系统上
  5. float:32位浮点数,不能用来表示货币这类精确的值
  6. double:64位浮点数,也不能用来表示货币这类精确的值(默认的小数类型)
  7. char:数据类型可以储存任何字符(不是字符串)
  8. boolean:只有两个取值:true 和 false

前四种是整型(装整数的),5、6是浮点型(小数)他们可以做数学运算

	int a = 5;
    double b = 5.2;
    System.out.println(a+b);
    控制台打印值
    10.2

字符串的加法叫做字符串的拼接
这里其实也就是说明java输出可以通过 + 号来拼接字符串
不过不同的是char c = ‘a’ + ‘b’;是a和b的ASCII码相加得到新的字符

	String e = "fghij";
    String d = "abcde";
    System.out.println(d+e);
    控制台打印值
    abcdefghijk

以下是八个类型的最大最小值,通过每个类的MIN_VALUE和MAX_VALUE方法拿到

public class Type {
        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);
        }
}

以下是输出结果可以看到各种类型的最大值和最小值
在这里插入图片描述

引用型数据类型

个人理解就是类似结构体一样已经写好的数据类型,在这个地方要用,就把它引用过来

三种:类 接口 数组

如下就是类的引用类型

	String d = "abcde";

类型转换

boolean型是不能转换的

自动转换

想象成容器,从小的容器倒入大的容器中(每个类型的二进制位数大小不同)
double > float > long > int > short > byte
这些数值型转换的最终结果有下面的情况

  1. 有double就一定是double型
  2. 如没有double有float是float型
  3. 如没有double和float有long是long型
  4. 如前面都没有就一定是int型

不过这个一般在有表达式的来判断,平时的转换自己想转成什么的肯定知道嘛

	//顺序错了编译器就会自动报错
	double a;
    float b;
    long c;
    int d;
    short e;
    byte f = 2;
    e = f; // byte型自动转为short型
    d = e; // short型自动转为int 型
    c = d; // int 型自动转为long 型
    b = c; // long 型自动转为float 型
    a = b; // float 型自动转为double 型
    System.out.println(a);//最后会输出: 2.0

不需要一级一级的转这样写只是方便体现规律,也就是可以直接从小范围转到任意大范围的

	double a;
	float b;
	long c;
	int d;
	short e;
	byte f = 2;
	a = f;//由byte型自动转换为double型
	System.out.println(a);//输出的结果还是: 2.0

对于char型当字符是数字时可以和int、long、float、double进行转换

	double a;
	float b;
	long c;
	int d;
	char e = 2 ; 
	d = e; // char型自动转为int 型
    c = d; // int 型自动转为long 型
    b = c; // long 型自动转为float 型
    a = b; // float 型自动转为double 型
    System.out.println(a);//最后会输出: 2.0
强制转换

如果违背了自动转换的范围大小规定就不能进行转换,但是还是任性一下也是可以的啦,加上强制转换,就可以强制转换成想要的类型,他的格式是这样的:
范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据

	double a = 2;
	float b;
	long c;
	int d;
	short e;
	byte f ;
	b = (float)a; // 将double型的a强制转换为float型再赋值给b
    c = (long)b;  // 将b强制转换为long型再赋值给c
    d = (int)c;   // 将c强制转换为int型再赋值给d
    e = (short)d; // 将d强制转换为short型再赋值给e
    f = (byte)e;  // 将e强制转换为byte型再赋值给f
    System.out.println(f); //最后会输出: 2

同样它也不需要一级一级的转,可以一步到位

	double a = 2;
	float b;
	long c;
	int d;
	short e;
	byte f ;
    f = (byte)a;  // 将double型的a强制转换为byte型再赋值给f
    System.out.println(f); //最后会输出: 2

不过要注意的是需要强制转换的数据范围也是不能超出需要转换到的类型的范围及格式:
范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据
里面数据的实际范围左边大于右边,否则会发生溢出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值