java基础整理之--基本数据类型

一,基本数据类型 java中包含了 九种基本类型 ,具体如下表所示:

基本类型大小最小值最大值包装器类型
boolean------Boolean
char16 bitsUnicode 0Unicode 2Character
byte8 bits-128127Byte
short16 bits-2^15-2^15-1Short
int32 bits-2^31+2^31-1Integer
long64 bits-2^63+2^63-1Long
float32 bitsIEEE754IEEE754Float
double64 bitsIEEE754IEEE754Double
void------Void

如上表中所示 java中

   1,任何的数值类型都有正负号 ,不存在 像c那样 具有无符号类型的数值类型

   2,boolean类型所做占有的存储空间大小没有明确的指定 ,仅仅定义为能够取字面值 true或false

   3,void也是一种基本数据类型

   4,标有指定大小空间的类型,其大小空间都是一样的, 不会随着机器硬件的变化而变化。

 

高精度数字

    java还提供类两种高精度计算的:BigInteger和 BigDecimal,但它们不属于基本数据类型。

 

基本数据类型的默认值

    众所周字,java在构建一个对象时(类的构建流程以后再写),会给指定对象的所有成员域分配空间,同时没个分配的空间都会用二进字码中的0填充。

所以各个对象的成员域就有默认值,由于都是填充的0,所以,对于数字基本类型的成员域,其初始值为0。但对于boolean的 域,其初始化的值 为false;

    在java中,数字基本类型的变量的初始化值为0,boolean类型的变量初始化值为0,这句话对么 ?

    也许很多的初学者看到这句话会觉得是对的,但实际上不是的。正如我们前面提到的,java只是在给 对象的成员域分配空间,便初始化其值。

也就是说如果是函数内部的变量,java是不会给它初始化默认值。但所幸的是,如果你在函数中定义了一个变量,在其没有初始话的情况下访问该对象编译器是会报错的。

    如:

    

class testClass{
    private int i;
   private float b;

    public void  f(){
          int v;

          System.out.println("i "+i +" b "+b); //输出i 0 b 0
          //System.out.println("v "+ v); 编译不通过 
    }
}

    

数据类型转换的截尾与舍入

   

double a=0.7;
float b=0.4;
System.out.pringtln("(int)a "+(int)a); //输出(int)a 0;
System.out.pringtln("(int)b "+(int)b); //输出(int)b 0;

 按照我们传统的思想,数据的转换,应当按照四舍五入的方式进行,但从输出的结果来看, 我们发现事实便非如此。

java对double,float转型为整型时,总是对该数字执行截尾,如果想要得到舍入的结果,应当使用 java.lang.Math的round()方法

double a=0.7;
float b=0.4;
System.out.pringtln("Math.round(a) "+Math.round(a)); //输出Math.round(a) 1;
System.out.pringtln("(Math.round(b) "+Math.round(b)); //输出Math.round(b) 0;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值