java学习总结3:数据类型


前言

java是一种强类型语言,必须为每一个变量声明类型。java共有八种基本数据类型,4种整型,分别为intshortlongbyte;2种浮点型,floatdouble;1种字符型char,还有boolean类型。

1.整型

类型存储需求取值范围
int4字节略高于20亿
short2字节-32768 ~ 32767
long8字节低于10的19次方
byte1字节-128 ~ 127

在java中, 整型的范围与运行的机器无关,而c和c++程序会针对不同的处理器选择最高效的整型,这导致了在不同的机器上c程序或c++程序运行可能会发生错误。

注:在java中没有无符号形式的int、long、short、或者byte类型。byte表示-128 ~ 127之间的范围,如果想表示0 ~ 255的范围,可以存储在byte中,在使用时,将其转为int类型。基于此,可以将一组连续的256个的数,使用byte存储,设置编码方式,在使用时解码。可以使用Byte.toUnsignedInt()将一个byte类型的数映射为无符号数。

public class Main {
    public static void main(String[] args) {
        byte a = -1;
        byte b = -128;
        byte c = 1;
        byte d = 127;
        int A = Byte.toUnsignedInt(a);
        int B = Byte.toUnsignedInt(b);
        int C = Byte.toUnsignedInt(c);
        int D = Byte.toUnsignedInt(d);
        System.out.println(A);
        System.out.println(B);
        System.out.println(C);
        System.out.println(D);
    }
}

输出:

255
128
1
127

2.浮点型

类型存储需求取值范围
float4字节大约±3.40282347×1038(6~7位有效数字)
double8字节大约±1.79…×10308(15位有效数字)

一般情况下float类型不能满足需求,float类型数值有一个后缀(如,3.24f),没有f后缀的小数默认为double类型

浮点型底层与整形底层是不同的,虽然浮点型表示范围大于整形,但浮点型精度小于整形,float 数值被分为三个部分:符号位、指数部分和尾数部分。这个表示法允许表示非常大或非常小的数值范围,但也引入了精度问题。使用浮点型时需要考虑其带来的误差,特别是在比较问题的时候,由于精度限制,比较两个 float 数值是否相等可能会变得复杂。

浮点数的一般结构如下,其中s表示符号位,m是尾数,一个二进制小数,e是指数,用于表示小数点的位置。

(-1)^s * m * 2^e

3.char类型

char用于表示一个16位的 Unicode 字符。Unicode 是一种字符编码标准,它为世界上几乎所有的字符(包括字母、数字、标点符号、符号、汉字等)提供了唯一的数字标识。

注:强烈建议不要再程序中使用char数据类型,最好将字符串作为抽象数据类型处理。

4.boolean类型

在Java中,boolean 类型是一种基本数据类型,用于表示逻辑值。它只有两个可能的取值:true 和 false,用于表示真和假。

boolean 类型通常用于条件判断、循环控制以及其他需要表示真假状态的情况。例如:

boolean isTrue = true;
boolean isFalse = false;

if (isTrue) {
    System.out.println("This is true.");
} else {
    System.out.println("This is false.");
}

需要注意的是,boolean 类型不同于整数类型,不能直接用数字代表 true 或 false。例如,以下代码是错误的:

boolean incorrect = 0; // This is a compilation error
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值