java基础_基本数据类型

介绍

鄙人才疏学浅,如有谬论,敬请指教。

计算机储存容量单位讲解

计算机储存容量基本单位就是字节(Byte),而字节下面还有一个比特>(bit),对应关系是一个字节 = 八个比特,比特(bit)是计算机储存最>小单位
总体换算关系是:
1B(字节) = 8bit(位),
1KB(千字节) = 1024B,
1MB(兆字节 简称“兆”) = 1024KB,
1GB(吉字节 又称“千兆”) = 1024MB,
1TB(万亿字节 太字节) = 1024GB,
1PB(千万亿字节 拍字节) = 1024TB。
以上参考的文章

基本数据类型

1.数值型

  • 整数类型:byte[1],short[2],int[4],long[8]。
  • 浮点类型(其实可以理解为小数):float[4],double[8]。

2.字符型(char[2])

存放单个字符。

3.布尔型(boolean[1])

存放true和flase。

整数类型

  • Java的整形常量默认为int型,声明long型常量需在后面加上 ' L ' 或 ' l '。(建议使用大写)
  • Java各整数类型有固定的范围和字段长度,不受操作系统[OS]影响,以此保证java可移植性。(说实话不是特别累理解)
  • byte,short,int 默认值是 0 ,long 默认值是 0L 。
    byte a ;//byte的大小
        System.out.println(Byte.SIZE);
    short b ;//short的大小
        System.out.println(Short.SIZE);
    int c ;//int的大小
        System.out.println(Integer.SIZE);
    long d ;//long的大小
        System.out.println(Long.SIZE);

浮点类型

  • Java的浮点型常量默认为double型,声明float型常量需在后面加上 ' f ' 或 ' F '。(建议使用大写)
  • 浮点数陷阱
  • 通常情况下,使用double,因为double比float更加精确。(但我感觉比较占内存吧)
  • float 默认值是 0.0f , double 默认值是 0.0d(我也不知道为啥后面要缀一个d)。
    float a;//float的大小
    System.out.println( Float.SIZE);
    double b;//double的大小
    System.out.println(Double.SIZE);

字符类型

  • 字符类型可以表示单个字符,多个字符需要用字符串String
  • 字符常量是用单引号''(切英文shift + “)括起来的字符。
  • Java中char本质上是一个整数,在输出时,是unicode码对应的字符。
  • 可以直接给char赋一个整数,会按照对应的Unicode字符输出。
  • char类型是可以进行运算,相当于一个整数。
    char a = 97 ;//char本质是一个整数
    System.out.println(a);
    char b = 'b' ;//char的大小
    System.out.println(Character.SIZE);
    System.out.println(a + b);//两个字符串运算

布尔类型

  • boolean类型数据只允许取值true和flase,没有null。
  • 布尔类型适合于逻辑运算,一般用于程序流程控制。
  • 不可以0或者非0的整数替代false和true。这和C语言不相同。(目前恰好只学了C语言)
        if (true){
            System.out.println("基尼太美");
        }
        if (false){
            System.out.println("滚啊!小黑子");
        }

自动类型转换

当Java程序在进行赋值或运算时,精度小(禁止开车哈)的类型自动转换为精度大的数据类型,这就是自动类型转换:
char --> int --> long --> float --> double
低---------------------------------------------->高
byte --> short -->int --> long --> float --> double

  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大那种的那种数据类型,然后再计算。
        int a = 123;
        float b = 4.6F;
        double c = 1.23;
        System.out.println(a + b);
        System.out.println(a + c);
        //感兴趣的可以试下b + c 的值是否等于5.83
  • (byte , short)和char 之间不会相互自动转换。
  • byte,short,char三者可以计算,但在计算时首先转换为int类型
        byte a = 12;
        short b = 45;
        char c = 'c';
        short d = a + b + c;//错误
        System.out.println(d);
        int e = a + b + c;//正确
        System.out.println(e);
  • 布尔类型不参与转换(个人感觉它也计算不了啊)。
        int a = 'a';//char --> int
        double b = 125;//int -->double
        System.out.println("a=" + a +"\t"+ "b=" + b);

强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出。

  • 当进行数据大小从大到小就要使用强制转换
  • 强制符号只针对于最近的操作数有效,往往会使用小括号提升优先级。
//        int a = (int)12 * 2.0 + 1.1;
//        System.out.println(a);
        int b = (int)(12 * 2.0 + 1.1);
        System.out.println(b);
  • char类型可以保存int的常量值,但不能保存int的变量值,需要强转。
    ** byte和short类型在进行运算时,当做int类型处理。

万金买高爵,来何处买青春?

热门相关:帝少的专属:小甜心,太缠人   天启预报   网游之逆天飞扬   薄先生,情不由己   仗剑高歌