Java

Java 知识量:11 - 45 - 220

2.2 基本数据类型><

java的数据类型- 2.2.1 -

Java语言包含8种基本的数据类型,这些类型可以被细分为四个类别:整型、浮点型、字符型和布尔型。这些类型被定义为关键字,并且它们的值不能被更改。

1、整型(Integral Types):

  • byte:8位有符号二进制整数。范围从-128到127。

  • short:16位有符号二进制整数。范围从-32768到32767。

  • int:32位有符号二进制整数。范围从-2^31到2^31-1。

  • long:64位有符号二进制整数。范围从-2^63到2^63-1。

2、浮点型(Floating Point Types):

  • float:32位IEEE 754单精度浮点数。

  • double:64位IEEE 754双精度浮点数。

3、字符型(Character Types):

  • char:16位Unicode字符,范围从'\u0000'(即0)到'\uffff'(即65,535)。

4、布尔型(Boolean Types):

  • boolean:只有两个可能的值,true和false。

这些都是Java的基本数据类型。它们有固定的大小,并且不能包含其他复合对象。在实际编程中,选择何种数据类型取决于你的具体需求和数据的性质。

整数类型- 2.2.2 -

Java中有byte、short、int和long这四种整数类型。这些类型都可以进行加、减、乘、除等基本的数学运算。在Java中,整数默认是int类型,如果需要声明一个long类型的整数,就要在数字后面加上一个L或者l。例如:

int a = 10;     // 这是一个int类型的整数  
long b = 10L;   // 这是一个long类型的整数

注意:从Java 7开始,可以使用二进制数字前缀0b或0B来表示一个二进制数,例如int a = 0b10;。同样,也可以使用八进制数字前缀0来表示一个八进制数,例如int a = 010;。另外,还可以使用十六进制数字前缀0x或0X来表示一个十六进制数,例如int a = 0xA;。

浮点数类型- 2.2.3 -

在Java中,有两种主要的浮点数类型:float和double。

  • float: 这是单精度浮点数类型,它有7位有效数字。如果需要更多的精度,应该使用double。float类型的变量需要在数字后面加上F或者f(例如,3.14F)。

  • double: 这是双精度浮点数类型,它有15位有效数字。这比float类型提供了更高的精度。double类型的变量需要在数字后面加上D或者d(例如,3.14D)。然而,如果没有添加这个后缀,Java会默认数字是double类型。

public class Main {  
    public static void main(String[] args) {  
        float floatVar = 3.14F;  
        double doubleVar = 3.14D;  
          
        System.out.println("Float value: " + floatVar);  
        System.out.println("Double value: " + doubleVar);  
    }  
}

在这个例子中,创建了一个float类型的变量floatVar和一个double类型的变量doubleVar,然后打印出它们的值。

字符类型- 2.2.4 -

在Java编程语言中,字符类型主要有两种:char 和 String。

  • char: 这是Java的基本数据类型之一,用于存储单个Unicode字符。在Java中,char 类型的值需要用单引号 ' 包围。例如:char myChar = 'a';。

  • String: 这是一个Java类,用于存储一个字符序列,也就是文本字符串。字符串中的每个字符都是Unicode字符。在Java中,String 类型的值需要用双引号 " 包围。例如:String myString = "Hello, World!";。

这两种类型的主要区别在于,char 是基本数据类型,适合存储单个字符,而 String 是对象类型,适合存储一系列字符。

转义序列- 2.2.5 -

转义序列在Java中的作用主要有以下几点:

  • 编码句法实体:有些字符在编程语言或数据格式中无法直接表示,例如设备命令或者特殊数据。这时,可以使用转义序列来编码这些句法实体,使它们能够在程序或数据中正常工作。

  • 字符引用:有些字符在当前上下文中可能会产生不期望的含义,或者无法直接输入,例如字符串中的回车符、引号等。这时,可以使用转义序列来引用这些字符,以避免错误。

  • 增强可读性:使用转义序列可以增加代码的可读性。例如,使用\n代替 可以让代码更清晰,更容易理解。

  • 方便正则表达式:在正则表达式中,转义序列可以方便地匹配特定的字符。例如,\d可以匹配任何数字字符。

以下是Java中的一些常见转义序列:

  1. 换行符:\n

  2. 制表符:\t

  3. 反斜杠:\

  4. 单引号:'

  5. 双引号:"

  6. 回车符:\r

  7. 换页符:\f

  8. 垂直制表符:\v

  9. 八进制转义序列:\ooo(其中ooo是八进制数字)

  10. 十六进制转义序列:\xhh(其中hh是十六进制数字)

  11. Unicode转义序列:\uhhhh(其中hhhh是十六进制数字)

字符串字面量- 2.2.6 -

在Java中,字符串字面量是由双引号包围的字符序列。例如:

String greeting = "Hello, world!";

在上面的例子中,"Hello, world!"就是一个字符串字面量。

Java中的字符串字面量有以下几个特点:

  • 不可变:一旦创建,字符串字面量就不能被修改。如果尝试修改它,Java将会抛出一个UnsupportedOperationException异常。

  • 存在于字符串常量池中:字符串常量池是Java堆内存中的一个特殊存储区域,当创建一个字符串字面量时,Java会首先在字符串常量池中查找是否已存在与该字面量内容相同的字符串。如果存在,Java会返回对应的引用;否则,Java会在字符串常量池中创建一个新的字符串对象,并返回其引用。

  • 可以包含转义字符:Java字符串字面量可以包含转义字符,例如\n表示换行,\t表示制表符等。

下面是一些包含转义字符的字符串字面量的例子:

String newLine = "Hello\nworld!";  
String tab = "Hello\tworld!";

在这些例子中,"Hello\nworld!"表示一个包含换行符的字符串,"Hello\tworld!"表示一个包含制表符的字符串。

基本类型之间的转换- 2.2.7 -

Java基本类型之间的转换主要有以下几种:

1、自动类型转换:Java可以自动将一种数据类型转换为另一种数据类型,这种转换是自动的,不需要程序员进行任何操作。例如,将一个int类型的变量赋值给一个double类型的变量,Java会自动将int类型的变量转换为double类型的变量。

int i = 10;  
double d = i; //自动类型转换

2、强制类型转换:Java也可以将一种数据类型强制转换为另一种数据类型,这种转换需要程序员显式地进行操作。例如,将一个double类型的变量赋值给一个int类型的变量,Java会将double类型的变量强制转换为int类型的变量,可能会导致精度损失。

double d = 10.5;  
int i = (int)d; //强制类型转换

3、字符串类型转换:Java可以将一个字符串类型转换为基本类型,这种转换需要程序员使用parseInt()或parseDouble()方法。例如,将一个字符串类型的变量转换为int类型的变量,可以使用Integer.parseInt()方法。

String s = "10";  
int i = Integer.parseInt(s); //字符串类型转换为int类型

4、基本类型之间的转换:Java可以将一种基本类型转换为另一种基本类型,这种转换需要程序员显式地进行操作。例如,将一个int类型的变量转换为float类型的变量,可以使用强制类型转换。

int i = 10;  
float f = (float)i; //int类型转换为float类型