Java中的数据类型

分类

占字节数

类型占字节数
byte1
short2
int4
long8
float4
double8
char2
boolean1
class4
interface4
数组4

整数类型

byte

  1. 占用存储空间:1 字节
  2. 表数范围:-128 ~ 127

short

  1. 占用存储空间:2 字节
  2. 表数范围:-32768 ~ 32767

int

  1. 占用存储空间:4 字节
  2. 表数范围:-2147483648 ~ 2147483647

long

  1. 占用存储空间:8 字节
  2. 表数范围:-263 ~ 263-1

表现形式

  1. 十进制:默认

  2. 八进制:以 0 开头,例:051

  3. 十六进制:以 0x 开头,例:0x2A

  4. 二进制:以 0b 开头,例 0b0100

  5. 代码

    public class Index {
        public static void main(String[] args) {
            int a = 10;
            int b = 051;
            int c = 0x2A;
            int d = 0b0100;
            System.out.println("十进制数:" + a);
            System.out.println("八进制数转十进制数:" + b);
            System.out.println("十六进制数转十进制数:" + c);
            System.out.println("二进制数转十进制数:" + d);
        }
    }
    
  6. 运行结果

注意

  1. 在声明长整型 long 数据时,默认类型为 int,若数据过大编辑器可能报语法错误,如下图:

  2. 为解决这样的问题,建议声明长整形数时,在末尾加一个L,来表示长整型数。

浮点类型

float

  1. 占用存储空间:4 字节
  2. 表数范围:-3.403E38 ~ 3.403E38

double

  1. 占用存储空间:8 字节
  2. 表数范围:-1.798E308 ~ 1.798E308

表现形式

  1. 十进制:3.14、0.314

  2. 科学计数法:3.14E2、0.314E-2

  3. 代码

    public class Index {
        public static void main(String[] args) {
            double a = 3.14;
            double b = 0.314E2;
            double c = 3.14E-2;
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
        }
    }
    
  4. 运行结果

数据不精确

  1. 浮点数不精确,尽量不要用于比较。具体看下面的例子

  2. 例 1

    public class Index {
        public static void main(String[] args) {
            float a = 0.1F;
            double b = 1.0 / 10;
            System.out.println(b);
            System.out.println(a == b);
        }
    }
    

  3. 例 2

    public class Index {
        public static void main(String[] args) {
            float a = 112312123F;
            float b = a + 1;
            System.out.println(a == b);
        }
    }
    

引入计算包

  1. 可以引用 java.math 包里的两个类:BigInteger 和 BigDecimal,这两个类可以处理任何长度的数值。

  2. BigInteger:实现任意精度的整数运算。

  3. BigDecimal:实现任意精度的浮点运算。

  4. 代码实现

    import java.math.*;
    
    public class Index {
        public static void main(String[] args) {
            double a = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1;
    
            BigDecimal bd = BigDecimal.valueOf(1.0);
            bd = bd.subtract(BigDecimal.valueOf(0.1));
            bd = bd.subtract(BigDecimal.valueOf(0.1));
            bd = bd.subtract(BigDecimal.valueOf(0.1));
            bd = bd.subtract(BigDecimal.valueOf(0.1));
            bd = bd.subtract(BigDecimal.valueOf(0.1));
    
            System.out.println(a);
            System.out.println(bd);
        }
    }
    

  5. 代码的 7 ~ 12 行是借助 BigDecimal 类对一个数值进行减法,每次减 0.1。

字符型

char

  1. 占用存储空间:2 字节
  2. char 类型用来表示在 Unicode 编码表中的字符。

定义字符

char a = 'a';
char b = '中';

十六进制字符

  1. 在 Unicode 编码表中可以使用十六进制表示一个字符,例:

  2. 代码

    public class Index {
        public static void main(String[] args) {
            char varName = '\u0070';
            System.out.println(varName);
        }
    }
    

  3. 十六进制 0070 表示字母 p。\u 表示转义字符。

转义字符

  1. 转义字符表

    转义符含义Unicode值
    \b退格\u0008
    \n换行\u000a
    \r回车\u000b
    \t制表符\u0009
    \ "双引号\u0022
    \ ’单引号\u0027
    \ \反斜线\u005c
  2. 代码实现

    public class Index {
        public static void main(String[] args) {
            char a = '\u0061';
            char b = '\u0062';
            System.out.println("第一次输出\n" + a + '\b' + b);
            System.out.println("第二次输出\n" + a + '\n' + b);
            System.out.println("第三次输出\n" + a + '\r' + b);
            System.out.println("第四次输出\n" + a + '\t' + b);
            System.out.println("第五次输出\n" + a + '\"' + b);
            System.out.println("第六次输出\n" + a + '\'' + b);
            System.out.println("第七次输出\n" + a + '\\' + b);
        }
    }
    

布尔值

Boolean

  1. 占用存储空间:1 位(不是 1 个字节)
  2. 值:True-真,False-假
  3. Java 中布尔值与数字 1 0 无关

使用场景

  1. 一般用于条件判断,if 语句。

  2. 关系表达式、条件表达式及逻辑运算最终的运算结果是一个布尔值。

  3. 代码

    public class Index {
        public static void main(String[] args) {
            if(true) System.out.println(true);
            if(10 > 1) System.out.println(true);
            if(10 > 1 && 1 > 0) System.out.println(true);
        }
    }
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

iGma_e

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

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

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

打赏作者

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

抵扣说明:

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

余额充值