JAVA基本数据类型

1.java有哪些基本数据类型

2.为什么要有这么多数据类型?

计算机的内存空间有限,所以在使用数据类型中要量入为出

类型大小示例取值范围
boolean1字节,8位truetrue false
\byte1字节,8位有符号数-100-128~+127
short2字节,16位有符号数100-32768~+32767
int4字节,32位有符号数150-2147483648~+2147483647
long8字节,64位有符号数10000-2*63~+ 2 *63-1
char2字节,16位unicode字符'a'0~65535
float4字节,32位有符号数3.14f-3.4E38~3.4E38
double8字节,64位有符号数2.4e3d-1.7E308~1.7E308

3.为什么float4个字节比long8个字节所表示的数值范围还大?

long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是负2的63次方到正2的63次方-1。

而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:

V=(-1)^s * M * 2^E

浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。

其中第1位,符号位,即S。接下来的8位,指数域,即E。剩下的23位,小数域,即M,M的取值范围为[1,2)或[0,1)。

也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。

4.字符类型(char)

  • char占两个字节

  • 只能存贮一个字符

  • 可以是中文,也可以用数字赋值

  • 和String的区别,String用双引号,char用单引号

5.布尔类型

  • TRUE

  • FALSE

6.数据类型转换

7种数据类型直接可以互转,Boolean是无法直接和其他基本数据类型互转

  • 默认转换

  • 赋值操作:小的数据类型可以默认转换为大的(float比long大,这里的大小就是表示范围,而不是占用空间)

public class DataTypeDemo1{   
 public static void main(String[] args){        
     byte byte1=1;         
     short short1=byte1;         
     System.out.println(short1);    
 }
}
  • 运算(小转大,小的数据类型会向大数据类型转换,然后进行计算。)

(特例,见串得串,即和字符串连接会转化为字符串)

byte byte2=int1+byte1;//错误
int int2=int1+byte1;//正确
//因为int比byte大
  • 默认(自动)提升(比int小的数据类型(byte,short,char),在运算过程中,会转化成int,再进行运算。)

byte byte3=(byte)(byte1+bytr2);
  • 强制转换

大的数据类型转换为小的数据类型需要强制转换,但是有可能会损失精度。

public class DataTypeDemo2{
 public static void main(String[] args){
     short short1=1;
     byte byte1=(byte)short1;//括号,强转运算
      System.out.println(short1);
 }
}

常量

常量可理解为立即量,编译过程中就能确实的值。

  • 分类:

    int1234默认整数
    long12345678901L大小写L都行
    double3.14默认小数
    float3.14F大小写F都行
    String"字符串常量"
    booleantrue/false
    Objetnull标识没有对象
  • 根据合理的场景选择数据类型

    1标识人类年龄int
    2商品的价格(分)int/long
    3泰国人的性别(强调的值域有扩展的可能char/byte/int/boolean

    合理选择数据类型

    • 使用场景,用户需求(例如第一问,是成年人,还是不满一岁的幼儿)

    • 合理的值域

    • 操作的方便性,资源稀缺性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷亚文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值