Java数据类型

java中数据类型主要分为两类

        {基本数据类型 引用数据类型}

        基本数据类型四类八种

                {整型 浮点型 字符型 布尔型}

                {数据类型         关键字         内存占用                         范围

                字节型               byte            1字节                           -128~127

                短整型               short           2字节                         -32768~32767

                整型         ​​​​​​​          int         ​​​​​​​      4字节                          2^31~(2^31)-1

                长整型         ​​​​​​​       long         ​​​​​​​   8字节         ​​​​​​​        ​​​​​​​        ​​​​​​​-2^63~(2^63)-1

                单精度浮点数     float         ​​​​​​​   4字节         ​​​​​​​        ​​​​​​​        ​​​​​​​ 有范围不关注

                双精度浮点数     double        8字节         ​​​​​​​        ​​​​​​​          有范围不关注

                字符型         ​​​​​​​       char         ​​​​​​​   2字节         ​​​​​​​        ​​​​​​​        ​​​​​​​      0~65535

                布尔型                boolean      没有明确规定         ​​​​​​​        ​​​​​​​true和flase}

关于boolean内存占用:

       JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

//int  4个字节 32个比特位 符号位占1位 数值位占31位
		//最小的数	符号位1 数值位31
		//最大的数	符号位0 数值位31
		System.out.println(Integer.MAX_VALUE);//int类型的最大值	2147483647
		System.out.println(Integer.MIN_VALUE);//int类型的最小值	-2147483648
		//Integer	包装类	可以暂时理解为int类型的plus版

                        

//长整型 8字节 64比特位
		long b = 10L;
		System.out.println(b);//	10
		System.out.println(Long.MAX_VALUE);//	9223372036854775807
		System.out.println(Long.MIN_VALUE);//	-9223372036854775808
		//封装类型 Long
 //短整型 2字节 16比特位
		short e = 10;
		System.out.println(e);//	10
		System.out.println(Short.MAX_VALUE);//	32767
		System.out.println(Short.MIN_VALUE);//	-32768
		//封装类型 Short
//字节类型 1字节8比特位
		byte c = 10;
		System.out.println(c);//	10
		System.out.println(Byte.MAX_VALUE);//	127
		System.out.println(Byte.MIN_VALUE);//	-128
		//0 111 1111	--	127 -- (2^7)-1
		//1 111 1111	--	-128 -- -2^7
		/*byte d = 128;
		System.out.println(d);*/    //安全性 当给定的数据超过当前数据类型给定的最大值时 编译器报错
		//封装类型 Byte	
//单精度浮点数
		float o = 1.2f;
		System.out.println(o);//	1.2
		//指定float数据要加f或者进行强转
		//不进行以上操作会报错,编译器默认为double类型
		//封装类型 Float		

//双精度浮点型
		double f = 3.14;
		System.out.println(f);//	3.14
        //封装类型 Double		

一些神奇的代码:

        //*1
		int g = 1;
		int h = 2;
		System.out.println(g/h);//	0
		//int除以int的值仍是int 直接舍弃小数部分

		//*2
		double l = 1.0;
		double m = 2.0;
		System.out.println(l/m);//	0.5

		//*3
		double n = 1.1;
		System.out.println(n*n);//	1.2100000000000002 
		//1.1 * 1.1 = 1.21
		//输出的值为什么不一致?
		//小数在计算机中 没有非常完全的表示 只能说是精确到某一位
		//浮点数与整数在内存中的存储方式不同,不能单纯使用2的n次方进行计算		
        //double类型的内存布局遵循IEEE 754标准(和c一样),尝试使用有限的内存空间表示可能无限的小数,势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值		
        
//字符类型 2字节
		char p = 'A';
		System.out.println(p);//	A
		char ch = ‘中’;
		System.out.println(ch);//	中
		//可以表示中文
		//使用unicode编码
		//计算机中 字符本质上是一个整数 c中使用ASCII表示字符 Java中使用Unicode表示字符
		//一个字符占用2个字节 表示的字符种类更多
		//封装类型 Character	
//布尔类型
		boolean flag = false;
		System.out.println(flag);
		//布尔类型 只有true false 不能与int类型互换
		//1不能表示true 0也不能表示false
		//未明确规定boolean占几个字节
		//封装类型Boolean	
        //字符串类型
		String s1 = "hello";
		String s2 = "world";
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s1+s2);//s1+s2 拼接s1和s2

 

注意

        不论16位系统还是32位系统 int都占用4个字节 long都占用8个字节

        整型和浮点型都是带有符号的

        整型默认为int型 浮点型默认为double

        字符串属于引用类型

        Java中不区分有符号无符号


​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值