【Java基础——03 数据类型】

Java 是一种强类型语言,这意味着在编写代码时必须明确声明变量的数据类型。Java 有八种基本数据类型(也称为原始数据类型),分为四类:整数类型浮点类型字符类型布尔类型

除了八种基本数据类型,Java 还有引用数据类型

基本数据类型

数据类型描述默认值位数范围
byte字节类型08-128 到 127
short短整型016-32,768 到 32,767
int整型032-2^31 到 2^31-1
long长整型0L64-2^63 到 2^63-1
float单精度浮点型0.0f32约为 1.4E-45 到 3.4E+38
double双精度浮点型0.0d64约为 4.9E-324 到 1.8E+308
char字符类型'\u0000'160 到 65,535(基本的UTF-16编码单元)
boolean布尔类型false1(理论上)true 或 false

扩展:less is more

整数表示

  1. 十进制:默认的表示方式,如 int num = 10;
  2. 二进制:以 0b0B 开头,如 int num = 0b1010; 表示十进制的 10。
  3. 八进制:以 0 开头,如 int num = 012; 表示十进制的 10。
  4. 十六进制:以 0x0X 开头,如 int num = 0xA; 表示十进制的 10。
int decimal = 10;    // 十进制
int binary = 0b1010; // 二进制,表示十进制的 10
int octal = 012;     // 八进制,表示十进制的 10
int hexadecimal = 0xA; // 十六进制,表示十进制的 10

System.out.println("Decimal: " + decimal);
System.out.println("Binary: " + binary);
System.out.println("Octal: " + octal);
System.out.println("Hexadecimal: " + hexadecimal);

创建字符

  • 直接赋值:可以直接将字符放在单引号内赋值给 char 类型变量,如 char ch = 'A';
  • 转义字符:除了常规字符外,还可以使用转义字符表示特殊字符,如 '\n' 表示换行符、'\t' 表示制表符等。

Unicode字符集

  • 支持Unicode字符:Java中的 char 类型支持Unicode字符集,因此可以表示各种语言的字符、符号和图形。

字符运算

  • 基本运算char 类型可以进行基本的算术运算,如加减乘除,但一般用途较少,通常用于字符编码相关的操作。
  • 位运算:与其他整数类型一样,char 类型也支持位运算操作,如位与、位或、位异或等。

注意

在Java中,基本数据类型具有不可变性,这意味着一旦创建后,它们的值不能被修改。

引用类型

数据类型描述默认值
String字符串类型null
数组可以存储同类型的数据null
类的实例null
接口实现接口的类实例null

String 注意事项

  1. 字符串池:Java 中的字符串常量池是一块特殊的内存区域,可以提高字符串对象的重用率。相同的字符串常量只会在内存中存储一份。
  2. 字符串操作效率:由于字符串不可变性,频繁的字符串拼接操作会产生大量的临时对象,影响性能。

 

特殊类型

数据类型描述
void表示无返回值的方法

枚举类型

数据类型描述
enum枚举类型,用于定义一组常量
/** 示例代码
*/
public class DataTypes {
    public static void main(String[] args) {
        byte byteVar = 100;
        short shortVar = 10000;
        int intVar = 100000;
        long longVar = 100000L;

        float floatVar = 234.5f;
        double doubleVar = 123.4;

        char charVar = 'A';
        boolean booleanVar = true;

        System.out.println("byte : " + byteVar);
        System.out.println("short : " + shortVar);
        System.out.println("int : " + intVar);
        System.out.println("long : " + longVar);
        System.out.println("float : " + floatVar);
        System.out.println("double : " + doubleVar);
        System.out.println("char : " + charVar);
        System.out.println("boolean : " + booleanVar);
    }
}

数值类

这些类主要用于更复杂的数值操作和表示,比基本数据类型提供了更多的功能。

类名描述
BigInteger用于表示任意精度的整数
BigDecimal用于表示任意精度的浮点数
示例代码

以下是使用一些这些类的示例代码:

// 使用基本数据类型的包装类
Integer intObject = Integer.valueOf(42);
Double doubleObject = Double.valueOf(3.14);

// 使用 BigInteger 表示大整数
BigInteger bigInt = new BigInteger("12345678901234567890");

// 使用 BigDecimal 表示高精度浮点数
BigDecimal bigDec = new BigDecimal("12345.67890");

// 进行数值运算
BigInteger sum = bigInt.add(new BigInteger("10"));
BigDecimal product = bigDec.multiply(new BigDecimal("2.5"));

System.out.println("Integer value: " + intObject);
System.out.println("Double value: " + doubleObject);
System.out.println("BigInteger sum: " + sum);
System.out.println("BigDecimal product: " + product);

类型转换

隐式类型转换(自动类型转换)

转化从低级到高级:byte,short,char(三者同级)—> int —> long—> float —> double

隐式类型转换是指数据类型之间的转换,由编译器自动完成,无需程序员手动干预。隐式类型转换遵循以下规则:

  1. 小类型转换为大类型:在数据类型范围小的类型转换为大的数据类型时,会自动完成转换,例如将 int 转换为 long
  2. 整数转浮点数:整数类型可以自动转换为浮点数类型,例如将 int 转换为 double
  3. 字面量常量转换:字面量常量(如整数常量、浮点数常量)的类型可以自动转换,例如 int 类型的整数常量可以赋值给 long 类型。

显式类型转换(强制类型转换)

显式类型转换是由程序员手动进行的类型转换,也称为强制类型转换。在需要将大范围类型转换为小范围类型时,需要使用强制类型转换。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值