20171227遗忘知识回顾

Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型。

数据类型分类

A:基本数据类型

B:引用数据类型(类,接口,数值)

基本数据类型:4类8种

A:整数   占用字节数

      byte          1

      short         2

      int             4

      long          8

B:浮点数    占用字节数

      float           4

      double       8

C:字符       占用字节数

     char            2

D:布尔       占用字节数

     boolean      1

Attention!

整数默认类型为Int,浮点数默认类型为double。

长整型后缀用L或者l来标记,建议使用L。

单精度浮点数用F或者f来标记,建议使用F。


数据类型的转换:(要注意的是boolean类型不能转换成其它的数据类型。)

默认转换(从小到大的转换)

A:byte,short,char-int-long-float-double

B:  byte,short,char相互之间不转换,如果它们要参与运算首先转换为Int类型

小问题:long是8个字节,float是4个字节,既然是从小到大转换为什么确是long向float转换呢?

答:A:它们底层的存储结构不同 B:float表示的数据范围比long的范围大得多

强制转换(从大到小的转换)

格式:目标数据类型 变量=(目标数据类型)(被转换的数据)

Attention!

请不要随意地去使用强制转换,因为它隐含了精度损失问题。


字符串数据与其他数据做“+”,结果是字符串类型。这里的“+”不是加法,而是字符串连接符号。

例如:

System.out.println("5+5="+5+5);//结果为5+5=55,这里“+”位于“”后面,不是作加法而是做字符串连接
System.out.println(5+5+"5+5");//结果为10=5+5


Java语言采用的是Unicode编码,每个字符占用两个字节,所以可以存储一个中文汉字。


short s=1;
s+=1;
并不等于
short s=1;
s=s+1;

而等价于

short s=1;
s=(是的数据类型)(s+1);
 解释: 

扩展的赋值运算符其实隐含了一个强制类型转换。
s=s+1;这句代码其实它的实现过程是这样的:1为默认的int类型,所以s+1的运算中,short类型的s被默认转为int类型,又将两者的相加值赋值给一个short类型的变量s,这里发生了截取转换,由int类型的值转换为short,可能发生数据丢失,所以会发生如下报错。


修改后成功运行:



&&与&的区别?同理||与|的区别?
A:其实最终效果是一样的
B:&&具有短路的效果,即如果&&左边已经能够判断出结果,则不再去判断右边。


生命不止,奋斗不息!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值