java基础02:数据类型

一、数据类型

  1. java是一种强类型语言,所有变量都必须先定义后才能使用。变量使用要严格符合规定。

  2. Java数据类型分为两大类

    • 基本类型

    • 引用类型

       

  1. 八大基本数据类型

    • 整数

    int   num1 = 10;//不超过21亿
    byte  num2 = 120;//不能超过127
    short num3 = 111111;//不能超过5位数
    long  num4 = 40L;(long类型要在数字后面加L)
    • 小数:浮点数

      float :单精度浮点数在机内占 4 个字节,用 32 位二进制描述。

      double :双精度浮点数在机内占 8 个字节,用 64 位二进制描述。精度高

      float num5 = 50.1F;(float类型要在数字后面加F)
      double  num6 = 3.1415926535897932384625;
    • 字符

      char name = '贾';//一个字母或一个汉字

      String nam = “贾鑫鑫”;//字符串String不是关键字,是类

    • 布尔值: 是非

      boolean flag = true;
      boolean fla = false;

       

二、科普: 字节

 

三、拓展

  1. 整数拓展: 进制:二进制0b,八进制0,十进制,十六进制0x

int a = 10; //十进制

int b = 010; //八进制,0开头

int c = 0x10; //十六进制,0x开头。

  1. 浮点数:有限,离散,舍入误差,大约,接近但不等于。

    最好完全避免使用浮点数进行比较
  2. 所有字符的本质还是数字

  3. 转义字符

    • \t 制表符

    • \n 换行

    •  

  4. 布尔值扩展

    boolean flag = true;

    if(flag ==true){} //新手

    if(flag ){} //老手

    代码要精简易读

四、类型转换

  1. Java是强类型转换,所以要进行有些运算的时候,需要用到类型转换。

  2. 运算中,不同类型的数据先转化为同一类型,然后进行运算。
  3. 低------------------------------------------------------->高

    byte,short,char—>int—>long—>float—>doule

  4. 强制转换(高到低)

    格式:(类型)变量名。

    例子:int

  5. 内存溢出问题内存溢出

    代码:

    public class day1 {
       public static void main(String[] args) {
           int i=128;
           byte b=(byte)i;//内存溢出
           System.out.println(i);
           System.out.println(b);
      }
    }

结果:128

         -128

  1. 自动转换(低到高)

  2. 注意点:
    • 不能对布尔值进行转换
    • 不能把对象类型转换为不相干类型
    • 在把高容量转换到低容量的时候,强制转换
    • 转换的时候可能出现内存溢出,或者精度问题!
  3. 例:

    public class day1 {
       public static void main(String[] args) {
           //操作比较大的数时,注意溢出问题
           //数字之间可以用下划线分割
           int money=10_0000_0000;
           byte year = 20;
           int sun1 =money*year;//计算的时候溢出了
           long sun2 =money*year;//两个数默认时int,转换之前已经存在问题
           long sun3 =money*((long)year);//先把一个数转为long
           System.out.println(sun1);
           System.out.println(sun2);
           System.out.println(sun3);
      }
    }

结果:-1474836480

-1474836480

20000000000

posted @ 2021-09-29 23:03  Joan鑫  阅读(48)  评论(0)    收藏  举报