Skip to content

数据类型(Data Type)

字数
1970 字
阅读时间
9 分钟

告诉计算机你要处理的是什么类型的数据。

不同的数据类型决定了变量可以存储什么样的值,以及可以对这个值进行哪些操作。

两大分类

类型名称说明
基本数据类型(Primitive Data Types)byte, short, int, long
float, double
char, boolean
Java 内置的最基础的数据类型
引用数据类型(Reference Data Types)String, 数组, 类, 接口等指向对象的数据类型

8种基本数据类型

一、整数(表示整数)

  • byte 占用内存:1 字节(8位)
  • short 占用内存:2 字节(16位)
  • int 最常用、4 字节(32位)
  • long 占用内存:8 字节(64位)
点我查看代码
js
byte age = 20;
short year = 2024;
int score = 95;
long population = 8000000000L;/*注意要加L

二、浮点类型(表示带小数的数字)

  • float 表示单精度浮点数
  • double 表示双精度浮点数,精度更高
  • char 表示一个 Unicode 字符(字母、汉字、符号等都可以)
点我查看代码
js
float price = 9.99F;
double height = 1.75;
char grade = 'A';
char chinese = '中';

三、字符类型

  • char 表示一个 Unicode 字符(字母、汉字、符号等都可以)
点我查看代码
js
char grade = 'A';
char chinese = '中';

四、布尔类型

  • boolean 常用语判断条件,只有两个值:true(真)和 false(假)
点我查看代码
js
boolean 不合格 = true;
boolean 合格 = false;

小练习

简单的个人信息展示程序

学生信息展示程序

定义需要的变量,将一个同学的基本信息打印出来 姓名:如花;年龄:15;体重:166;性别:男

示例代码
js
public class test1 {  
    public static class Student {  
        static String name;  
        int age;  
        double height;  
        char sex;  
    }  
    public static void main(String[] args) {  
        Student s1 = new Student();  
        // 创建对象变量  
        s1.name = "如花";  
        s1.age = 15;  
        s1.height = 166;  
        s1.sex = '男';  
        //打印对象变量  
        System.out.println("学生姓名:" + s1.name);  
        System.out.println("学生年龄:" + s1.age);  
        System.out.println("学生身高:" + s1.height);  
        System.out.println("学生性别:" + s1.sex);  
    }  
}

引用数据类型

在 Java 中,引用数据类型是指那些指向对象(Object)的变量类型。 它们不像基本数据类型那样直接存储值,而是存储对象在内存中的地址(即“引用”),通过这个地址可以访问到实际的对象。

常见的引用数据类型

  • Spring 字符串,是 Java 中最常用的引用类型之一
  • Array 数组,存储相同类型的数据集合
  • Class 自定义的类,如 Student、Person 等
  • Interface 定义行为规范,具体实现由其他类完成
  • Enum 枚举,特殊的类,表示一组固定的常量值

案例

String类型

js
public class TestReference {
    public static void main(String[] args) {
        String name = "小明"; // String 是引用类型
        System.out.println("姓名:" + name);
    }
}
小练习

🎯目标: 定义一个 Book 类,包含 title书名和 author作者。 打印书籍信息。

示例代码
js
public class book {
    String title;
    String author;
    
    public static void main(String[] args) {
        Book b = new Book();
        b.title = "Java从入门到放弃";
        b.author = "lihua";

		System.out.println("书名:" + b.titel);
		System.out.println("作者:" + B.author);
    }
}

数组

为什么需要引用数据类型?

封装复杂逻辑:可以将多个属性和方法组织在一个类中,便于管理。 提高代码复用性:可以创建多个对象,复用相同的结构和行为。 支持面向对象编程(OOP):Java 是面向对象的语言,引用类型是 OOP 的基础。 灵活处理数据集合:数组、集合类等都可以通过引用操作大量数据。

js
public class TestReference {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5}; // 将数据存到一个组
        System.out.println("第一个元素是:" + numbers[0]);
    }
}
小练习

🎯目标: 定义一个 int 类型数组,并使用循环打印出每个元素。

示例代码
js
public class test1 {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
		//遍历数组内容
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("第 " + (i + 1) + " 个元素是:" + numbers[i]);
        }
    }
}
项目说明
引用数据类型指向对象,而不是直接存储
常见类型String、数组、类、接口、枚举等
使用方式通过new创建对象,引用变量指向对象
优势支持面向对象编程,封装性强,易于维护和扩展

运算符(Data Type)

告诉计算机你要处理的是什么类型的数据。

不同的数据类型决定了变量可以存储什么样的值,以及可以对这个值进行哪些操作。

算术运算符

用于基本的数学运算

  • + 加法
  • - 减法
  • * 乘法
  • / 除法(注意,在Java中两个整数相处结果还是整数)
  • % 取模(求余数)
  • ++ 自增:放在某个变量的前面或是后面,表示对变量的自身值+1
  • -- 自减:放在某个变量的前面或是后面,表示对变量的自身值-1

关系, 三元运算符

  • = 等于
  • != 不等于
  • > 大于
  • < 小于
  • >= 大于等于
  • <= 小于等于

逻辑运算符

用于结合布尔表达式的结果

  • && 逻辑与
  • || 逻辑或
  • ! 逻辑非

赋值运算符

  • = 直接赋值
  • += 加后赋值
  • -= 减后赋值
  • *= 乘后赋值
  • /= 除后赋值
  • %= 模后赋值
  • &= 按位与后赋值
  • |= 按位或后赋值
  • ^= 按位异或后赋值
  • <<= 左移后赋值
  • >>= 右移后赋值
  • >>>= 无符号右移后赋值
示例代码
js
public class OperatorExample {
    public static void main(String[] args) {
        // 定义几个变量
        int a = 10; // 声明并初始化整数变量a为10
        int b = 3;  // 声明并初始化整数变量b为3

        // 算术运算符
        System.out.println("a + b = " + (a + b)); // 输出a和b的加法结果
        System.out.println("a - b = " + (a - b)); // 输出a和b的减法结果
        System.out.println("a * b = " + (a * b)); // 输出a和b的乘法结果
        System.out.println("a / b = " + (a / b)); // 输出a和b的除法结果(整数除法)
        System.out.println("a % b = " + (a % b)); // 输出a和b的取模结果

        // 关系运算符
        boolean isEqual = (a == b); // 判断a是否等于b,并将结果存储在isEqual中
        System.out.println("a == b is " + isEqual); // 输出isEqual的值

        // 逻辑运算符
        boolean andResult = (a > 5 && b < 5); // 判断a大于5且b小于5,并将结果存储在andResult中
        System.out.println("(a > 5 && b < 5) is " + andResult); // 输出andResult的值

        // 赋值运算符
        int c = a; // 将a的值赋给c
        c += b; // 等价于 c = c + b,即将b的值加到c上
        System.out.println("c after c += b is " + c); // 输出c的新值

        // 条件运算符
        String result = (a > b) ? "a is greater than b" : "b is greater than or equal to a"; // 根据条件选择字符串赋值给result
        System.out.println(result); // 输出result的值

        // instanceof 运算符(虽然在这个例子中没有用到实例化的类,但为了完整性还是展示一下)
        if (result instanceof String) { // 检查result是否是String类型的实例
            System.out.println("result is an instance of String"); // 如果是,则输出这条消息
        }
    }
}

贡献者

撰写