Java基本数据类型和非基本数据类型

Java是一种面向对象的编程语言,它提供了丰富的数据类型来支持不同类型的数据操作。在Java中,数据类型分为基本数据类型和非基本数据类型,每种数据类型都具有不同的特点和用法。

基本数据类型

Java的基本数据类型是用于存储简单数据值的。它们是在内存中直接存储值,而不是存储对象的引用。Java提供了8种基本数据类型,分别是byteshortintlongfloatdoublecharboolean

下表列出了Java的基本数据类型以及它们的存储范围和默认值:

数据类型 存储范围 默认值
byte -128到127
short -32768到32767
int -2147483648到2147483647
long -9223372036854775808到9223372036854775807 0L
float 1.4E-45到3.4028235E38 0.0f
double 4.9E-324到1.7976931348623157E308 0.0
char Unicode字符集的字符 '\u0000'
boolean true或false false

示例代码

// 基本数据类型示例代码
public class BasicDataTypeExample {
    public static void main(String[] args) {
        byte a = 10;
        short b = 200;
        int c = 1000;
        long d = 1000000L;
        float e = 3.14f;
        double f = 3.14159;
        char g = 'A';
        boolean h = true;

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
    }
}

上述代码中,我们声明了不同类型的变量,并将它们赋予了不同的值。然后,通过使用System.out.println()方法,将每个变量的值打印到控制台。

非基本数据类型

Java的非基本数据类型是用于存储复杂数据结构的。它们是通过对象来表示的,存储的是对象的引用。Java中的非基本数据类型包括类、接口、数组等。

在Java中,类是一种自定义的数据类型,用于定义对象的属性和行为。类是创建对象的蓝图,它包含了对象的状态和行为。

下面是一个简单的类的示例代码:

// 类示例代码
class Person {
    String name;
    int age;

    void sayHello() {
        System.out.println("Hello, my name is " + name + ". I'm " + age + " years old.");
    }
}

public class ClassExample {
    public static void main(String[] args) {
        // 创建一个Person对象
        Person person = new Person();
        person.name = "John";
        person.age = 20;

        // 调用对象的方法
        person.sayHello();
    }
}

上述代码中,我们定义了一个Person类,它有两个属性:nameage,以及一个方法sayHello(),用于打印对象的信息。然后,我们创建一个Person对象,并设置它的属性值,最后调用对象的方法。

接口

接口是一种抽象的数据类型,用于定义类的行为。接口包含了一组抽象方法和常量,类可以实现一个或多个接口,并实现接口中定义的方法。

下面是一个接口的示例代码:

// 接口示例代码
interface Shape {
    double getArea();
    double getPerimeter();
}

class Circle implements Shape {
    double radius;

    Circle(double radius) {
        this.radius = radius;
    }

    public double getArea() {
        return Math.PI * radius * radius;
    }

    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

public class InterfaceExample {
    public static void main(String[] args) {