企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 一、概述 ![](http://cndpic.dodoke.com/93b94c9d1aadd7281c01e71006630388) Java 是一种面向对象的编程语言,其数据类型如上图所示。其中基本数据类型是不具备对象特征的,即无法像对象一样拥有属性和方法以及对象化的进行交互。 ## 二、包装类与基本数据类型 为了能将基本类型视为对象处理,并能连接相关方法,Java 为每个基本类型都提供了包装类。 | 基本类型 | 包装类 | | :-: | :-: | | byte | Byte | | short | Short | | int | Integer | | long | Long | | float | Float | | double | Double | | char | Character | | boolean | Boolean | 【选择】Java 中提供了名为()的包装类来包装字符类型。(选择一项) ``` A Integer B String C Character D Char ``` 【选择】以下哪个选项不是基本数据类型()(选择一项) ``` A boolean B float C Integer D char ``` 【选择】下列关于基本类型和包装类的叙述中错误的是()(选择两项) ``` A Java 中的数据类型包括基本数据类型和引用类型 B Byte 是基本数据类型 C 基本数据类型可以调用方法 D 每个基本数据类型都有对应的包装类 ``` ## 三、包装类 ### 3.1 Integer 类 #### 3.1.1 构造方法 * Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。 * Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。 ``` Integer i1 = new Integer(100); // 以 int 型变量作为参数创建 Integer 对象 Integer i2 = new Integer("200"); // 以 String 型变量作为参数创建 Integer 对象 ``` #### 3.1.2 常用方法 * `byte byteValue()`:以 byte 类型返回该 Integer 的值。 * `short shortValue()`:以 short 类型返回该 Integer 的值。 * `int intValue()`:以 int 类型返回该 Integer 的值。 * `String toString()`:返回一个表示该 Integer 值的 String 对象。 * `boolean equals(Object obj)`:比较此对象与指定对象是否相等。 * `int compareTo(Integer anotherInteger)`:在数字上比较两个 Integer 对象,如相等,则返回 0;如调用对象的数值小于 anotherlnteger 的数值,则返回负值;如调用对象的数值大于 anotherlnteger 的数值,则返回正值。 * `Integer valueOf(String s)`:返回保存指定的 String 值的 Integer 对象。 * `int parseInt(String s)`:将数字字符串转换为 int 数值。 【例题】编写一个程序,在程序中创建一个 String 类型变量,然后将它转换为二进制、八进制、十进制和十六进制输出。 ``` public static void main(String[] args) { int num = 40; String str = Integer.toString(num); // 将数字转换成字符串 String str1 = Integer.toBinaryString(num); // 将数字转换成二进制 String str2 = Integer.toHexString(num); // 将数字转换成八进制 String str3 = Integer.toOctalString(num); // 将数字转换成十六进制 System.out.println(str + "的二进制数是:" + str1); System.out.println(str + "的八进制数是:" + str3); System.out.println(str + "的十进制数是:" + str); System.out.println(str + "的十六进制数是:" + str2); } ``` #### 3.1.3 常用常量 * `MAX_VALUE`:值为 2^31-1 的常量,它表示 int 类型能够表示的最大值。 * `MIN_VALUE`:值为 -2^31的常量,它表示 int 类型能够表示的最小值。 ``` int max_value = Integer.MAX_VALUE; // 获取 int 类型可取的最大值 int min_value = Integer.MIN_VALUE; // 获取 int 类型可取的最小值 ``` ### 3.2 Float 类 #### 3.2.1 构造方法 * `Float(double value)`:构造一个新分配的 Float 对象,它表示转换为 float 类型的参数。 * `Float(float value)`:构造一个新分配的 Float 对象,它表示基本的 float 参数。 * `Float(String s)`:构造一个新分配的 Float 对象,它表示 String 参数所指示的 float 值。 ``` Float float1 = new Float(3.14145); // 以 double 类型的变量作为参数创建 Float 对象 Float float2 = new Float(6.5); // 以 float 类型的变量作为参数创建 Float 对象 Float float3 = new Float("3.1415"); // 以 String 类型的变量作为参数创建 Float 对象 ``` #### 3.2.2 常用方法 * `byte byteValue()`:以 byte 类型返回该 Float 的值 * `double doubleValue()`:以 double 类型返回该 Float 的值 * `float floatValue()`:以 float 类型返回该 Float 的值 * `int intValue()`:以 int 类型返回该 Float 的值(强制转换为 int 类型) * `long longValue()`:以 long 类型返回该 Float 的值(强制转换为 long 类型) * `short shortValue()`:以 short 类型返回该 Float 的值(强制转换为 short 类型) * `boolean isNaN()`:如果此 Float 值是一个非数字值,则返回 true,否则返回 false * `boolean isNaN(float v)`:如果指定的参数是一个非数字值,则返回 true,否则返回 false * `String toString()`:返回一个表示该 Float 值的 String 对象 * `Float valueOf(String s)`:返回保存指定的 String 值的 Float 对象 * `float parseFloat(String s)`:将数字字符串转换为 float 数值 【例题】将字符串 456.7 转换为 float 类型的数值,或者将 float 类型的数值 123.4 转换为对应的字符串。 ``` String str = "456.7"; float num = Float.parseFloat(str); // 将字符串转换为 float 类型的数值 float f = 123.4f; String s = Float.toString(f); // 将 float 类型的数值转换为字符串 ``` #### 3.2.3 常用常量 * `MAX_VALUE`:值为 1.4E38 的常量,它表示 float 类型能够表示的最大值。 * `MIN_VALUE`:值为 3.4E-45 的常量,它表示 float 类型能够表示的最小值。 ``` float max_value = Float.MAX_VALUE; // 获取 float 类型可取的最大值 float min_value = Float.MIN_VALUE; // 获取 float 类型可取的最小值 ``` ### 3.3 Character 类 #### 3.3.1 构造方法 * `Chatacter(char value)`:构造一个新分配的 Character 对象,用以表示指定的 char 值 #### 3.3.2 常用方法 * `char charValue()`:返回此 Character 对象的值,此对象表示基本 char 值 * `int compareTo(Character anotherCharacter)`:根据数字比较两个 Character 对象 * `boolean equals(Character anotherCharacter)`:将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象包含相同 char 值的 Character 对象时, 结果才是 true。 * `boolean isLowerCase(char ch)`:确定指定字符是否为小写字母 * `boolean isUpperCase(char ch)`:确定指定字符是否为大写字母 * `char toLowerCase(char ch)`:使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写 * `char toUpperCase(char ch)`:使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写 ``` Character character = new Character('A'); int result1 = character.compareTo(new Character('V')); System.out.println(result1); // 输出:0 int result2 = character.compareTo(new Character('B')); System.out.println(resuit2); // 输出:-1 int result3 = character.compareTo(new Character('1')); System.out.println(result3); // 输出:-2 ``` ### 3.4 Boolean 类 #### 3.4.1 构造方法 * `Boolean(boolean boolValue)`:通过 boolean 类型值来构建对象,其中 boolValue 必须是 true 或 false(不区分大小写) * `Boolean(String boolString)`:通过 String 类型值来构建对象,boolString 包含字符串 true(不区分大小写) ``` public static void main(String[] args) { Boolean b1 = new Boolean(true); Boolean b2 = new Boolean("ok"); Boolean b3 = new Boolean("true"); System.out.println("b1 转换为 boolean 值是:" + b1); System.out.println("b2 转换为 boolean 值是:" + b2); System.out.println("b3 转换为 boolean 值是:" + b3); } ``` #### 3.4.2 常用方法 * `boolean booleanValue()`:将 Boolean 对象的值以对应的 boolean 值返回 * `boolean equals(Object obj)`:判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true * `boolean parseBoolean(String s)`:将字符串参数解析为 boolean 值 * `String toString()`:返回表示该 boolean 值的 String 对象 * `boolean valueOf(String s)`:返回一个用指定的字符串表示的 boolean 值 #### 3.4.3 常用常量 * `TRUE`:对应基值 true 的 Boolean 对象。 * `FALSE`:对应基值 false 的 Boolean 对象。 【选择】Double 类,Math 类,System 类分别存储于()哪个包中?(选择一项) ``` A java.io, java.io, java.lang B java.io, java.util, java.lang C java.io, java.io, java.util D java.lang, java.lang, java.lang ``` 【选择】下列选项中继承自 Number 的是()(选择一项) ``` A Integer 和 long B Character 和 Integer C Byte 和 Integer D long 和 Short ``` ## 四、基本数据类型和包装类之间的转换 * 自动装箱:即将基本数据类型转化成包装类类型,使用静态`valueOf()`方法。 * 自动拆箱:即将包装类类型转化成基本数据类型,使用成员方法`xxxValue()`。 【阅读】下面代码运行的正确结果是() ``` public class BuildStuff { int test(Boolean b, int i) { if (b) return i / 7; return i / 49; } public static void main(String[] args) { Boolean bool = new Boolean(true); Integer x = 343; Integer y = new BuildStuff().test(bool, x); System.out.println(y); } } ``` 【编程】请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据饿类型和包装类之间的转换。程序运行参考效果图如下: ``` score对应的Integer类型结果为:100 score对应的double类型结果为:100.0 score对应的long类型结果为:100 重新由Integer转换为int类型的结果为:100 ``` ``` public class HelloWorld { public static void main(String[] args) { // 定义 int 类型变量,值为100 // 创建 Integer 包装类对象,表示变量 score1 的值 // 将 Integer 包装类转换为 double 类型 // 将 Integer 包装类转换为 long 类型 // 将 Integer 包装类转换为 int 类型 // 打印输出 } } ``` ## 五、基本数据类型和字符串之间的转换 在实际的编程过程中,经常将字符串转换为 int 类型的数值,或者将 int 类型的数值转换为对应的字符串。 ``` String str = "456"; int num = Integer.parseInt(str); // 将字符串转换为 int 类型的数值 int i = 789; String s = Integer.toString(i); // 将 int 类型的数值转换为字符串 ``` > 注意:在实现将字符串转换为 int 类型数值的过程中,如果字符串中包含非数值类型的字符,则程序执行将出现异常。 【编程】在对应的空白区域填写对应的代码,完成基本数据类型和包装类之间的转换。程序运行参考效果图如下: ``` a 转换为 String 型后+10的结果为:12.510 str 转换为 double 型后+10的结果为:12.8 ``` ``` public class StringUse { public static void main(String[] args) { double a = 12.5; // 将基本类型转换为字符串 String str1 = System.out.println("a 转换为 String 型后+10的结果为:" + ); String str = "2.8"; // 将字符串转换为基本类型 double b = System.out.println("str 转换为 double 型后+10的结果为:" + ); } } ``` 【阅读】下面代码运行的正确结果是() ``` public class Wrap { Integer i; int x; public Wrap(int y) { x = i + y; System.out.println(x); } public static void main(String[] args) { new Wrap(new Integer(4)); } } ``` 【选择】下列关于 Integer 类中常用方法的描述中,错误的是()(选择一项) ``` A byteValue() 以 byte 类型返回该 Integer 的值 B equals(Object IntegerObj) 比较此地址与指定地址是否相等 C intValue() 以 int 型返回 Integer 的值 D shortValue() 以 short 型返回 Integer 的值 ``` 【阅读】下面代码运行的结果是() ``` public static void main(String[] args) { Integer i = new Integer(1) + new Integer(2); switch(i) { case 3: System.out.println("hello"); default: System.out.println("baby"); break; } } ``` 【编程】在对应的空白区域填写对应的代码,完成基本数据类型和字符串之间的转换。程序运行参考效果图如下: ``` f1 转换为 String 型后与整数20的求和结果为:88.9920 str 转换为 double 型后与整数20的求和结果为:208.55 ``` ``` public class HelloWorld { // 定义 float 类型变量,赋值为88.99 float f1 = ; // 将基本类型转换为字符串 // 打印输出 // 定义 String 类型变量,赋值为"188.55" String str = ; // 将字符串转换为基本类型 double // 打印输出 } ```