Java数据类型和扩展

数据类型

强类型语言,要求变量的使用要严格符合规定,所有变量都必须定义后才可以使用

 

Java的数据类型主要分为两大类

  • 基本类型(Primitive Type)

    • 数值类型

      • byte占一个字节:-128~127

      • shot占两个字节:-32768~32767

      • int占四个字节:-2147483648~2147483647 常用类型

      • long占八个节:-9223372036854775808~9223372036854775807

    • 浮点类型(也就是小数)

      • float占四个字节

      • double占八个字节 常用类型

    • boolean 类型(布尔类型用于判断对错)

      • 占用一位且值只有两个true(对)false(错)

  • 引用数据类型(Reference Type) 前期只做了解

    • 接口

    • 数组

 public static void main(String[] args) {
        //八大基本类型
       int num1=10;//最常用
       byte num2=20;
       short num3=30;
       long num4=40L;//long类型用的时候加L
       //小数:浮点数
       float num5=50.1f;//float类型使用的时候要加f
       double num6=3.1415926;//最常用
       //字符
       char a='邓';//定义单个字符
       //字符String不是关键字,是类
       String name="邓毅";//String字符串可以定义多个字符
       //布尔值
       boolean b=true;//真
       boolean c=false;//假
  }


 

整数拓展

在计算机中分别有二进制,八进制,十进制和十六进制。

  • 二进制:二进制是计算机可以读懂的进制每逢2进1,在IDEA中以0b开头

     public static void main(String[] args) {
        int a=0b10;//定义a为二进制10
        System.out.println(a);}//输出a的结果
               //运行结果为2
  • 八进制:八进制为每逢8进1,在IDEA中以0开头

    public static void main(String[] args) {
        int b=010;//定义b为八进制10
        System.out.println(b);}//输出b的结果
               //运行结果为8
  • 十进制:十进制为每逢10进1我们平常用的就是十进制而十进制前面则不能其他字符为开头

    public static void main(String[] args) {
        int c=10;//定义c为十进制10
        System.out.println(c);}//输出c的结果
               //运行结果为10
  • 十六进制:十六进制为每逢16进1(0~9,A~F总共十六位)在IDEA中以0x或0X开头

    public static void main(String[] args) {
        int d=0x10;//定义d十六进制10
        System.out.println(c);}//输出d的结果
               //运行结果为16

     

    IDEA运行结果为平时用的十进制

 

浮点数(小数)拓展

上面我们知道浮点数有两个类为float,double

  • 我们来设置 float a=233333.1111111f 和 double b=233333.1111111他们两个的结果都为0.1看他们是不是相等并且输出一行他们的值

    public static void main(String[] args) {
          float f=233333.1111111f;/*定义f为233333.1111111*/
           double d=233333.1111111;/*定义d为233333.1111111*/
           System.out.println(f==d);
           System.out.println(f);
           System.out.println(d);}
             //运行结果为:false
             //         233333.11
             //         233333.1111111
  • 我们在来设置 float b1=233333.1111111f,float b2=0.0000001f,float b3=b1+b2 看看b1是否等于b3并且输出b1和b2

    public static void main(String[] args) {
       float b1=233333.1111111f;/*定义b1为233333.1111111*/
       float b2=0.0000001;//定义b2为0.0000001
               System.out.println(b1==b3);
               System.out.println(b1);
               System.out.println(b3);}
                 //运行结果为teue(真)
                 //       233333.11
                 //       233333.11

从上面两个结果我们可以得出,float和double的精度比较有限,比较的离散而且一般会舍入。

字符拓展

public static void main(String[] args) {
       char c1='a';
       char c2='中';
       System.out.println(c1);
       System.out.println((int)c1);//强制转换为int
       System.out.println(c2);
       System.out.println((int)c2);}//强制转换为int
                 //运行结果为:a
                 //         97
                 //         中
                 //         20013

从上面可以得出,所有字符的本质还是数字。

而且在IDEA中编码Unicode相当于一个表:(97代表字符a),(20013代表字符中)。而他的字节为两个字节 0~65536。并且它的范围是u0000~ufff。而且它在IDEA中以\开头

public static void main(String[] args) {
   char c3='\u0061';//正常的Unicode编码表示
       System.out.println(c3);
                  //运行结果为:a

从这我们可以看出输出Unicode中的0061是字符中的a

下面是我在IDEA中上面讲到的所有代码可以看下

public static void main(String[] args) {
       //整数拓展:二进制 0b 八进制 0 十进制 十六进制0x
       int a=10;//十进制的十
       int b=010;//八进制
       int c=0x10;//十六进制   0~9 A~F
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
       //=====================================================================================
       //浮点数拓展 ? 银行业务怎末表示?钱
       //BigDecimal 这是一个数学工具类这是Java自定义好的可以直接用
       //=======================================================================================
       //float 的小数位是有限的 比较离散一般会四舍五入
       //double 小数位比float长一些但也是有限的
       //最好不要用浮点数去比较
       float f=233333.1111111f;
       double d=233333.1111111;
       System.out.println(f==d);//输出结果为false假
       System.out.println(f);//输出结果为233333.11
       System.out.println(d);//输出结果为233333.1111111
       float d1=233333.1111111f;
       float d2=0.0000001f;
       float d3=d1+d2;
       System.out.println(d1==d3);//输出结果为true真
       System.out.println(d1);//输出结果为233333.11
       System.out.println(d3);//输出结果为233333.11
        //=====================================================================================
       //字符拓展
       //=======================================================================================
       char c1='a';
       char c2='中';
       System.out.println(c1);
       System.out.println((int)c1);//强制转换为int
       System.out.println(c2);
       System.out.println((int)c2);//强制转换为int

       //所有的字符本质还是数字
       //编码 Unicode相当于一个表:97 = a 20013 代表 中   2字节 0 ~ 65536
       //Unicode 的 范围u0000~ufff
       char c3='\u0061';//正常的Unicode编码表示
       System.out.println(c3);//结果输出为字符'a'
  }

 

 

 

posted @ 2021-04-13 22:04  山水有相逢dy  阅读(94)  评论(0)    收藏  举报