数据类型(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"); // 如果是,则输出这条消息
}
}
}