JAVA基本数据类型

JAVA基本数据类型

     基本数据类型分为四类八种

类型    字节对应包装类取值范围注意事项
整型    
byte  1Byte-128~127 
short2Short-32768 ~ 32767 
int4Integer -2^31-1~2^31 java中默认整数类型为int
long8Long-2^63~2^63-1

当声明long类型变量时后面要加L

              例 : long l = 789456123L;

浮点型    
float4Float3 .4e-45~1.4e38 

定义float变量时后面要加F

           例 : float f = 23.561F;

double8Double4.9e-324~1.8e308默认浮点类型为double
字符型    
char2Character  0~65535 
布尔型    
boolean Booleantrue/false java规范中,没有明确指出boolean的大小

                        


                                                                                             

基本数据类型的一些知识

  •   long类型

                     定义long类型变量的时候为什么后面要加一个大写L呢?

                                  1.方便区分数据类型

                                2.因为整数默认数据类型为int,int占4个字节,double占8个字节,定义一个变量当范围超过int数据类型 的时候如果不在数据后面加一个L编译器就会报错,加L就是把int数据类型强转成long类型。

  •    float类型

                  定义float类型变量为什么要在参数后面加上F呢?

                             1.方便区分

                             2.因为浮点型默认为double,而double占8个字节,而float占4个字节,而Java中大的数据类型转小的数据类型需要强转,所以后面要加一个F强转。

  •     其他知识

                    java中小的数据类型转大的数据类型可以直接赋值,而大的数据类型转小的数据类型需要强转,

                     注意:浮点类型不能直接赋值给整数类型,不管占的字节大小,浮点型转整数类型都需要强转,

                       注意:强转一个数据类型可能会损失这个数的精度,谨慎使用


java基本数据类型运算的一些注意事项

                例1:

byte b = 1;

byte b1 = 2;
byte b2 = b+b1;//编译不通过
  •    问题:

                1.默认整数类型为int,int大小为4个字节,而byte类型大小为1个字节,为什么1可以直接赋值给b呢?

                2.b和b1进行运算而为什么不能直接赋值给同一种类型的变量呢?

  •    答:

                1.因为java自动进行了底层转换,效果和byte b=(byte)1;是一样的。

                2.因为b+b2的结果被Java虚拟机转成了int类型,所以不能直接赋值给b2,需要强转。   

 

            例2:

float f = 1.2F;

float f1 = 2.4F;
float f2 = f+f1;   //编译成功运行不报错
  •   问题:

                 1.默认浮动数为double,double的大小为8个字节,同样都是基本数据类型为什么整型不需要强转,而浮点型需要?而运算的时候f+f1浮点型不需要强转,而整型需要呢?

                    (我找了好久才找到一个觉得比较可靠的一个答案)

  •   答:

                虽然整型和浮点型都是基本数据类型,但是他们的处理机制不一样。

如果我的文章有什么错误,或者你有什么好的意见或者是建议,或者有什么不明白,有Java问题需要讨论都可以联系我

                                                                                                                                                           QQ : 1833784239

                                                                                                                                                         我用java书写人生。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值