java八大基本数据类型及类型转换

版权声明:本文为博主原创文章,转载请声明出处并添加原文链接。 https://blog.csdn.net/azsx02/article/details/78401879

整数类型

java整型默认为int型,声明long可以后加’l’或’L’

byte –> 1字节

short –>2字节

int –> 4字节

long –> 8字节

BigInteger: 更大的整数

BigDecimal:更大的小数

进制
  • 八进制: 0开头,如 int c = 011;
  • 十六进制: 0x开头,如int d = 0xf1;
  • 进制转换
Integer.toBinaryString()
Integer.toHexString()
类型自动转换,变量与常量
  • 若数据大小没有超过byte/short/char的表述范围,则自动转型,==它们可以自动转成int==
  • long a = 123456789124 ,变量a, 常量123456789124默认int型,超出int范围。

浮点型

float –> 4字节 –> +-3.403e38 都是4字节,和int对比

double –> 8字节 –> +-1.9e308

浮点数存在舍入误差,许多小数不能精确表示,若要无误差计算,需要使用BigDecimal

注意浮点数比较大小,有误差,可能不相等

浮点数值默认采用double型,要变为float需要加F/f

浮点类型两种表示方法:
- 科学计数法 314e2 , 314E2, 314e-2
- 十进制表示法 3.14

字符型和Boolean型

  • 字符型
    1. ’a’是字符, “a”是字符串
    2. 两个字节 0-65535 Unicode
    3. char = ‘\t’; 转义字符
    4. char 0-65535 可以当整数来运算
    5. 0-65535的整数也可以直接转型为char,但注意强制类型转换,因为char只 要2字节
char c5 = (char)99;  //强制转型,char 2字节,输出a
  • Boolean型
    1. 占一位,不是一个字节
    2. 不要这样写if(b==true&&done=false),直接if(b&&!done)

自动转型和强制转型

package trans_type_10;
//测试自动转型和强制转型
public class TestTransType {
    public static void main(String[] args){
        byte b = 123; //可以转
        // byte b2 = 300; //不可转
        // char c = -3;
        char c2 = 'a';
        int i = c2;
        long l = 133124;
        float f = l;
        System.out.println(f);

        //强制转型
        int i2 = -100;
        char c3 = (char)i2; //-100超过char的表述范围,所以转换成无意义的值
        System.out.println(c3);

        //表达式中的类型提升问题
        int aa = 3;
        long bb = 4;
        double dd = 5.5;
        int cc = (int)(aa+bb); //做所有的二元运算(+-*/%),类型提升
        float ff = (float)(aa+dd);

        int money = 1000000000; //10亿
        int years = 20;
        // int total = money*years;  //返回是负数
        long total = (long)money*years;

        //一个人70年心跳多少次
        long time = 70l*60*24*365*70; //尽量放在前面转型
    }

}

二进制整数和下划线分隔符

package 二进制整数_下划线分隔符;

public class TestBinaryNum {
    public static void main(String[] args){
        int a = 0b0000_0000_0000_0000_0000_0000_0000_0011;
        int b = 1_3254_3235;
        System.out.println(a);  //输出3
        System.out.println(b);
    }
}

猜你喜欢

转载自blog.csdn.net/azsx02/article/details/78401879