java基础数据类型

基础数据类型 java中的8种基本数据类型
java里面只有两种数据类型: 基本数据类型 引用数据类型

为什么要分数据类型:
	1. 方便运算
	2. 方便存储 节省内存
取值范围 反应 存储的时候内存的大小
内存的单位:
1T = 1024G
1G = 1024MB
1MB = 1024KB
1KB = 1024B
B  字节单位
1B = 8个二进制位  二进制的数有8位

**数值类型**

		**整型类型**
			byte  [-128,127]  [-2^7,(2^7)-1];                  8个二进制位
			short [-2^15,(2^15)-1]  [-32768,32767]             16个二进制位     2字节
			int   [-2^31,(2^31)-1]  [-2147483648,2147483647]    4字节
			long  [-2^63,(2^63)-1]      8字节
			
			**注意**:
				浮点类型都是不精确的数值
		**浮点类型**(小数) 存储方式和整数类型不一样  用指数记数法
			float    单精度浮点类型   取值范围  +-3.4*10^38  次方
				4字节  32个二进制位  表示最大的精度范围  6-7位
				最高位是符号位  
				1个符号位,8个指数位,23个小数位 
				
				任何一个小数都能够表示成为:
					1.1010101101 *10 ^n
				    二进制*10^n 
					
				0.5 二进制   0.1  1*(2)^-1
				0.25  二进制  0.01
				0.125         0.001
				3.125         011.001  --> 1.1001 * 10^1
				1.111111111111111111111111  ~ 2
				1/2+1/4+1/8
			double   双精度浮点类型
				8字节   64个二进制
				1个符号位 11个指数位,52个小数位   +-1.79*10^308
				表示最大的精度范围   15-16位
		
		对于一个float类型的数据  是否等于0
		float f = 0;
		(-0.0000001,0.0000001) 区间范围都表示0

	**注意**:
		1.在java中,直接给出的整数直接值默认是int类型,如果需要表示超出int表示范围的整数时,需要加L/l	
		2.在java中,直接给出的浮点类型数值为double类型
		如果想要表示一个直接值是float类型,那和需要在该浮点值之后加f/F

**字符类型**
		char  一个字母 或者一个汉字    
		用单引号引起来的
		2个字节  本质上是一个无符号的整数类型 [0,65535]  [0,2^16-1]
		16个进制  1111 1111 1111 1111 ==  0xffff
		char c = '中'
		char c1 = 20013;
		char c2 = '\u4e2d'
			都表示'中'
			底层中都是 100111000101101 这样一串二进制
		
**布尔类型**
		boolean   1个字节    8个二进制位
			boolean类型只有两个取值   true  false

**数据类型转换**:

**隐式类型转换**:
byte char short  int  给一个取值范围之内数值是可以直接赋值的
byte->short->int->long->float->double  反之则不行
	   char->int

但是不能将一个int变量的值赋值给byte、char、short,即使是在该变量的取值范围之内也不行

**强制类型转换**:
	不能进行隐式转换时可以进行强制类型转换
	目标类型 变量 = (目标类型)变量;
	double d = 3.1415926734;
	float f = (float)d;//强制类型转换
	
	强制类型转换可能造成
		1.精度缺失
		2.数据溢出

提前预测数据类型,避免没必要的类型转换	

计算机中保存数据是以补码的形式存储

二进制分为原码、反码、补码
原码: 整数转换成二进制  最高位为符号位 0正1负   其它位为数值位
反码: 针对负数而言  符号位不变 其它位按位取反  满足正数加负数
补码:  针对负数而言  负数的补码=其原码符号位(始终不变)不变,其它位按位取反加1

正数的原码、反码、补码都是自己本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值