【JavaSE】【基础语法03】数据类型

一、数据类型

在这里插入图片描述
byte 1个字节(8bit),取值范围-128~127,默认值0
short 2个字节(16bit),取值范围-32768~32717,默认值0
int 4个字节(32bit),取值范围-2147483648~2147483647,默认值0
long 8个字节(64bit),-263~ 263-1,默认值0L
float 4个字节(32bit),用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double 8个字节(64bit),双精度浮点型,默认值0
char 2个字节(16bit),字符型,用于存储单个字符,无负数,取值范围0~65535,默认值为空
boolean 布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

  • long型时,需要在值后面加L或l
  • float型常量,须后加‘f’或‘F’
  • float可以保证十进制科学计数法小数点后6位有效精度和第7位的部分精度。double可以保证十进制科学计数法小数点后15位有效精度和第16位的部分精度。
  • 字符型的值必须使用单引号,只能而且必须存储单个字符,不能是空单引号。
  • 字符型使用Unicode编码(ASCII,特殊字符,中文、日文、韩文…)
    Java中每一个字符,都有一个唯一的Unicode编码值,知道字符的Unicode编码后,可以等价写成
char c = '\u5c1a';//Unicode编码值的十六进制形式
  • String是引用数据类型,String的常量值必须使用双引号。单独的双引号也是一个字符串值

1.1 基本数据类型转换

1.小容量转大容量,自动转
byte,short,char --> int -->long -->float -->double

byte b = 127; //把127赋值给b,存储到b变量中
int num = b; //把变量b中的值复制一份给num,也是说把变量b中的值赋值给num

2.大容量转小容量,强制转换,按低位截取

int age = 130;
byte bb = (byte)age;//溢出
System.out.println("bb = " + bb);

自动转和强制转换的意思是 是否需要在变量前面加上(数据类型) 来对变量进行转换;
从上面看自动转不需要,但是强转需要


3.byte,short,char之间运算统统转为int
三者之间是互不转换的,包括byte+byte等运算也会变成int
三者之间不进行运算,若运算都将自动升级为int再做运算


4.Java中一元运算符不会进行自动类型转换

	byte b =127;
	b++;
	System.out.println(b); //-128

这里 b++ 等价于 byte(127 + 1) = -128
整个执行过程如下:

	byte(127)      			                         0111 1111
															+
	int(1)             0000 0000 0000 0000 0000 0000 0000 0001
	----------------------------------------------------------
	=                  0000 0000 0000 0000 0000 0000 1000 0000
	----------------------------------------------------------
	(byte)向下转换
	最终的结果:                                       1000 0000

1.2 引用数据类型转换

引用数据类型转换要有前提,必须有父子关系;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值