2024-11-08
基本数据类型是最基础的数据单位,存储的是具体的值。常见的基本数据类型包括:int, float, char, boolean等。
基本数据类型直接存储在内存栈中,操作它们时直接访问数据的值,通常在栈上分配内存,效率较高。
引用数据类型存储的是数据的引用(或地址),而不是数据本身。引用数据类型的例子包括:Array, Class, Interface, String(某些语言是基本数据类型)等。
引用数据类型在内存中存储的是对象的地址,实际数据存储在堆内存中。引用数据类型允许更多的灵活性和复杂的数据结构,但访问和操作时需要额外的内存操作(例如指针引用)。
Java有8种基本数据类型:byte, short, char, int, long, float, double, boolean
byte
short
int
long
byte(1 byte) short(2 bytes) int(4 bytes) long(8 bytes)

一般都用int
,如果int搞不定了,采用long.
声明long类型时,需要l或者L作为后缀
long l1 = 123123123L
float(4 byte) double(8 byte)
定义float类型时,需要f或者F作为后缀
定义浮点类型时,一般都用double
,因为精度更高。

浮点类型float、double的数据不适合在不容许舍入误差的金融计算领域。如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类。
占用2个字节。
三种形式:
占用4个字节。因为true会看成1,false看成0,和int类型一样。
只有true和false
可以做运算的是7种类型,不包含boolean类型
容量小的变量与容量大的变量运算时,容量小的自动提升成容量大的数据类型。
byte、short、char —> int —> long —> float —> double
特别的:byte、short、char类型之间的变量做运算,结果是int类型。
注意:容量大小并非指占用内存空间的大小,而是指表示数据范围的大小。
比如,浮点型float(4 bytes)表示的数据范围比整型long(8 bytes)大。
常用场景:将容量大的变量转换成容量小的。
注意:可能有精度丢失的问题。
double d1 = 12;
int i1 = (int)d1;
System.out.println(i1)
empty_value = None
my_list = [1, 2, 3]
my_tuple = (1, 2, 3)
my_set = {1, 2, 3}
my_dict = {'name': 'Alice', 'age': 30}
用于存储整数,分为有符号和无符号两种,每种类型根据大小有不同的位数(8、16、32、64、128位),还有isize和usize两种根据平台大小自动调整的整型。
let a: i32 = 42; // 有符号32位整数
let b: u64 = 123; // 无符号64位整数
用于存储带小数的数字,有f32和f64两种精度。
let x: f32 = 3.14; // 32位浮点数
let y: f64 = 2.718; // 64位浮点数(默认类型)
用于表示逻辑值,只有true和false两个值。
let is_active: bool = true;
用于表示单个字符,支持Unicode字符,用char表示,占4个字节。
let letter: char = 'A';
let emoji: char = '😊';
用作空值类似物,表示空的返回值,使用()表示。
let unit: () = ();
用于存储固定长度的同种类型数据。数组的长度是固定的,一旦定义不可更改。
let numbers: [i32; 3] = [1, 2, 3];
用于存储多种类型的固定长度数据结构。
let person: (i32, &str, bool) = (30, "Alice", true);