Java数据类型

数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。

一、数值型

1. 整型使用细节

  • java整型常量默认int类型,声明long型常量需后加"l"或"L"
  • java程序中变量常声明为int型,除非不足以表示大数,才使用long
  • bit计算机中最小存储单位,byte计算机中基本存储单元。1byte=8bit

2.浮点数

  • 表示小数
  • 浮点数在机器中的存放形式。浮点数=符号位+指数位+尾数位,尾数部分可能丢失,造成精度损失(小数都是近似值)。

使用细节:

  • java浮点型常量默认double类型,声明float型常量需后加"f"或"F"
  • 通常情况下应使用double,因为比float更精确
  • 对运算结果是小数的进行相等判断时,要小心。应该是以两个数差值的绝对值,在某个精度范围内判断。
Public class judge{
    public static void main(String[] args){
        double num1 = 2.7;//2.7
        double num2 = 8.1 / 3 ;//2.699999
        //正确的判断方式,Math.abs()是计算两数差值的绝对值
        if(Math.abs(num1-num2)<0.000001){

        }
    }    
}
  • 如果是查询得到的小数或赋值得到的,可以判断相等

二、字符型

  • 表示单个字符,一个char占两个字节
  • 可以存放汉字
  • 可以直接存放一个数字,如 c = 97,输出时会输出97代表的字符a

1、字符类型使用细节

Public class char{
    public static void main(String[] args){
        //1、字符常量是用单引号括起来的单个字符,必须是单引号!
        //2、允许使用转义字符\,将其后字符转变为特殊字符型常量
        char c = '\t';
        //3、在Java中char的本质是一个整数,默认输出Unicode码对应的字符
        //要输出对应的数字,可以(int)字符
        char c1 = 97;
        System.out.println(c1);//输出a
        //4、char类型是可以进行运算的,相当于一个整数
        System.out.println('a' + 10);//先转换成数字然后相加
        //输出107
    }
}

2、字符型本质

  • 字符型存储到计算机中,需要将字符对应的码值(整数)找出来。
/*
比如'a'
存储:'a'---->码值97---->二进制110 00001---->存储
读取:二进制110 0001--->码值97--->'a'---->显示
*/
  • 字符和码值的对应关系是通过字符编码表决定的
    • ASCII码表(一个字节,里面一共有128个字符,实际上可以表示256个字符但是只用了128个)
    • Unicode(固定大小的编码,使用两个字节表示字符,汉字和字母统一都是占两个字节,这样浪费空间,Unicode码兼容ASCII码)
    • UTF-8(大小可变的编码,字母一个字节表示,汉字三个字节,对Unicode的改进)
    • gbk(可以表示汉字且范围更广,字母一个字节,汉字两个字节)
    • big5(繁体)

三、布尔型

  • 布尔类型也叫Boolean类型,数据只允许取值true或false,无null
  • 布尔类型占一个字节
  • 适用于逻辑运算,一般用于程序流程控制
  • 注意:不能用0或非0的整数代替false和true,和C语言不同

本文章使用limfx的vscode插件快速发布