Java基础语法2-数据类型

2.数据类型

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

String name = "miyazhu";
int age = 18;

弱类型语言:VB、JavaScript

Java的数据类型分为两大类:基本类型、引用类型

基本类型 primitive type

数值类型

  • 整数类型
    • byte,占一个字节范围: -128~127,一个字节占8位,2的8次方
    • short,占2个字节范围:-32768~32767,2的16次方
    • int,占4个字节范围: -2147483648~2147483647,2的32次方
    • long,占8个字节范围:-9223372036854775808~9223372036854775807,2的64次方
  • 浮点类型
    • float占4个字节
    • double占8个字节
  • 字符类型char,占2个字节

boolean类型-占1位其值只有true和false两个

public class Demo1 {
    public static void main(String[] args) {
        // 整数
        int num1 = 10; // 最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 40L; // Long类型要在数字后加L

        // 小数:浮点数
        float num5 = 50.1f; // 浮点数要在数字后加f
        double num6 = 63.345;

        // 字符类型
        char name = '朱';
        char name2 = 'm';

        // 字符串, String不是关键字,是类,不属于八大基本类型
        // String words = "hello,little mm";

        // 布尔值:是与否
        boolean flag1 = true;
        boolean flag2 = false;

    }
}

整数拓展-进制
public class Demo2 {
    public static void main(String[] args) {
        int num1 = 12;  // 默认十进制
        int num2 = 012; // 0 八进制
        int num3 = 0x12; // 0x 十六进制
        int num4 = 0b1100; // 0b 二进制
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
    }
}

结果显示:

12
10
18
12

浮点数拓展
public class Demo3 {
    public static void main(String[] args) {
        // 银行业务怎么表示?后续可用:BigDecimal,数学工具类
        float num1 = 0.1f;
        double num2 = 1.0/10;
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num1==num2);  // 结果为false,无限接近却不等于
        System.out.println("=======");

        float dec1 = 2391231231415926f;
        float dec2 = dec1 + 1;

        System.out.println(dec1);
        System.out.println(dec2);
        System.out.println(dec1==dec2);  // 结果为true,因为数据超限导致的舍入误差
    }
}

字符拓展
public class Demo4 {
    public static void main(String[] args) {
        char c1 = 'a';
        char c2 = 'A';
        char c3 = '1';
        char c4 = '朱';
        // 所有字符本质都是数字,根据Unicode表 97对应a  65对应A 26417对应汉字:朱  2字节 0-65536  = 2的2字节*8位次方,即2的16次方
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        System.out.println(c4);
        System.out.println((int)c1);
        System.out.println((int)c2);
        System.out.println((int)c3);
        System.out.println((int)c4);
        System.out.println("========");
        // Unicode表范围:U0000 ~ UFFFF,即0~16*16*16*16,0~2的16次方
        int num16 = 0x61;  // 定义十六进制的61
        System.out.println(num16);  // 97
        char ch1 = '\u0061';  // 十六进制的61为十进制的97,为字符:a
        System.out.println(ch1);
        System.out.println("========");
        // 转义字符
        // \t 制表符
        // \n 换行
        // 等...
        System.out.println("\t1.第一点\nHelloWorld");
    }
}

显示如下:

a
A
1
朱
97
65
49
26417
========
97
a
========
	1.第一点
HelloWorld

关于字符串的一个知识点

public class Demo5 {

    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";
        System.out.println(s1==s2);  // 结果:true

        String sb1 = new String("hello");
        String sb2 = new String("hello");
        System.out.println(sb1==sb2);  // 结果:false
    }
}

引用类型 reference type

类、接口、数组

posted @ 2022-05-06 09:47  浅浅水声  阅读(67)  评论(0编辑  收藏  举报