Java中的基本数据类型和引用数据类型

前提介绍

java是一种强类型语言,这就意味着在编译的时候,所有的变量的数据类型都必须明确指定,并且类型系统会强制执行类型检查

数据类型的作用

在java中,数据类型决定了变量中可以存储值的类型

让不同大小的数据存储在适合的类型里,以节省计算机的内存存储空间

数据类型的分类

(1)基本数据类型(四类八种)

小数默认是double类型,float number = 2.2;这样是错的!

示例代码:

复制代码
public class PrimitiveDataTypesExample {
    public static void main(String[] args) {
        // 整型
        byte byteValue = 100; // 8位有符号整数
        short shortValue = 200; // 16位有符号整数
        int intValue = 30000; // 32位有符号整数
        long longValue = 400000L; // 64位有符号整数,L表示这是一个长整型常量

        // 浮点型
        float floatValue = 1.23f; // 32位单精度浮点数,f表示这是一个浮点型常量
        double doubleValue = 2.34; // 64位双精度浮点数

        // 字符型
        char charValue = 'A'; // Unicode字符

        // 布尔型
        boolean booleanValue = true; // 布尔值

        // 打印输出
        System.out.println("Byte value: " + byteValue);
        System.out.println("Short value: " + shortValue);
        System.out.println("Integer value: " + intValue);
        System.out.println("Long value: " + longValue);
        System.out.println("Float value: " + floatValue);
        System.out.println("Double value: " + doubleValue);
        System.out.println("Char value: " + charValue);
        System.out.println("Boolean value: " + booleanValue);
    }
}

注意:

  • 整型变量可以直接赋值,注意long类型需要在数值后加Ll来表示。

  • 浮点型变量在赋值时,float类型需要在数值后加fF来表示。

  • 字符型变量使用单引号来赋值。

  • 布尔型变量只有两个可能的值:truefalse

(2)引用数据类型

定义:在栈内存中声明了一个引用数据类型的变量之后,变量中存储的不是具体的数据,而是堆内存中的地址,在堆内存地址中来存储具体的数据

在Java中,引用数据类型的默认初始值是null。这意味着当你声明一个引用类型的变量而没有初始化时,它不会指向任何对象实例,直到你显式地创建该类型的对象并将其赋值给变量。

具体内存图如下:

在Java中,引用数据类型包括类(Class)、接口(Interface)、数组(Array)和字符串(String)。

以下是一些示例代码,展示了如何使用这些引用数据类型:

类(Class)
复制代码
javapublic class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void introduce() {
        System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        person.introduce();
    }
}
接口(Interface)
复制代码
javapublic interface Vehicle {
    void start();
    void stop();
}

public class Car implements Vehicle {
    private String brand;

    public Car(String brand) {
        this.brand = brand;
    }

    @Override
    public void start() {
        System.out.println(brand + " car is starting.");
    }

    @Override
    public void stop() {
        System.out.println(brand + " car is stopping.");
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car("Toyota");
        car.start();
        car.stop();
    }
}
数组(Array)
复制代码
javapublic class ArrayExample {
    public static void main(String[] args) {
        int[] numbers = new int[5]; // 创建一个整型数组
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;

        for (int number : numbers) {
            System.out.println(number);
        }
    }
}
字符串(String)
复制代码
javapublic class StringExample {
    public static void main(String[] args) {
        String str = "Hello, World!";
        System.out.println(str);

        String reversed = new StringBuilder(str).reverse().toString();
        System.out.println(reversed);
    }
}
枚举(Enum)
复制代码
public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

public class EnumExample {
    public static void main(String[] args) {
        for (Day day : Day.values()) {
            System.out.println(day);
        }
    }
}

枚举是一个特殊的类,用来定义固定数量的常量,使用关键字enum

特别是需要一组固定常量的情况下,如表示方向、星期、月份、命令状态等。

使用枚举可以提高代码的可读性和可维护性。

posted @   Molina  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示