目录
Java 数据类型包装器
Java数据类型教程 - Java数据类型包装器
方法
例子
valueOf()
Java 数字数据类型
Java数据类型教程 - Java数字数据类型
例子
方法
值
Java 字符数据类型
Java数据类型教程 - Java字符数据类型
例子
Java Boolean包装类
Java数据类型教程 - Java Boolean包装类
例子
Java 数据类型包装器
Java数据类型教程 - Java数据类型包装器
Java库在java.lang包中提供了八个类来表示八种基本类型中的每一种。
这些类称为包装类,因为它们在对象中包装原始值。
下表列出了原始类型及其相应的包装类。
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
方法
所有包装类都是不可变的。它们提供了两种方法来创建它们的对象:
- 使用构造函数
- 使用valueOf()工厂方法
除了Character之外,每个包装类都提供至少两个构造函数:一个采用对应基本类型的值,另一个采用String。
Character类只提供一个接受char的构造函数。
例子
以下代码创建一些包装类的对象:
public class Main {public static void staticMethod() {// Creates an Integer object from an intInteger intObj1 = new Integer(100);// Creates an Integer object from a StringInteger intObj2 = new Integer("1969");// Creates a Double object from a doubleDouble doubleObj1 = new Double(10.45);// Creates a Double object from a StringDouble doubleObj2 = new Double("234.60");// Creates a Character object from a charCharacter charObj1 = new Character("A");// Creates a Boolean object from a booleanBoolean booleanObj1 = new Boolean(true);// Creates Boolean objects from StringsBoolean booleanTrue = new Boolean("true");Boolean booleanFalse = new Boolean("false");} }
valueOf()
创建包装类对象的另一种方法是使用它们的valueOf()方法。
valueOf()方法是静态的。
下面的代码使用它们的valueOf()方法创建一些包装器类的对象:
public class Main {public static void staticMethod() {Integer intObj1 = Integer.valueOf(100); Integer intObj2 = Integer.valueOf("2014"); Double doubleObj1 = Double.valueOf(10.45); Double doubleObj2 = Double.valueOf("234.56"); Character charObj1 = Character.valueOf("A");} }
Java 数字数据类型
Java数据类型教程 - Java数字数据类型
字节,短整数,整数,长整数,浮点数和双精度类是数字包装类。
它们都继承自抽象的Number类。我们不能创建Number类的对象。然而,er可以声明Number类的引用变量。
我们可以将六个数值包装类中的任何一个的对象引用分配给Number类的引用。
Number类包含六个方法。它们被命名为xxxValue(),其中xxx是六种基本数据类型之一(byte,short,int,long,float和double)。
方法的返回类型与xxx相同。
例子
以下代码显示如何从数值包装器对象检索不同的primate类型值:
public class Main {public static void main(String[] args) {Integer intObj = Integer.valueOf(100);// Gets byte from Integerbyte b = intObj.byteValue();// Gets double from Integerdouble dd = intObj.doubleValue();System.out.println("intObj = " + intObj);System.out.println("byte from intObj = " + b);System.out.println("double from intObj = " + dd);// Creates a Double objectDouble doubleObj = Double.valueOf("123.45");// Gets different types of primitive values from Doubledouble d = doubleObj.doubleValue();float f = doubleObj.floatValue();int i = doubleObj.intValue();long l = doubleObj.longValue();System.out.println("doubleObj = " + doubleObj);System.out.println("double from doubleObj = " + d);System.out.println("float from doubleObj = " + f);System.out.println("int from doubleObj = " + i);System.out.println("long from doubleObj = " + l);} }
上面的代码生成以下结果。
方法
Java 8在一些数值包装类(如Integer,Long,Float和Double)中添加了一些方法,如sum(),max()和min()。
例如,Integer.sum(10,20)简单地返回10 + 20的结果。
它们的引用用于使用集合的lambda表达式。
包装器类帮助处理包含原始值的字符串。
- 使用valueOf()方法将字符串转换为包装器对象。
- 使用parseXxx()方法将字符串转换为原始值。
字节,短整型,整型,长整型,浮点型和双精度型分别包含parseByte(),parseShort(),parseInt(),parseLong(),parseFloat()和parseDouble
以下代码将包含二进制格式的整数的字符串转换为Integer对象和int值:
public class Main {public static void main(String[] args) {String str = "01111111";int radix = 2;// Creates an Integer object from the stringInteger intObject = Integer.valueOf(str, radix);// Extracts the int value from the stringint intValue = Integer.parseInt(str, 2);System.out.println("str = " + str);System.out.println("intObject = " + intObject);System.out.println("intValue = " + intValue);} }
上面的代码生成以下结果。
值
所有数值包装类都包含几个有用的常量。它们的MIN_VALUE和MAX_VALUE个常数表示最小值和最大值。它们还具有SIZE常数,其表示对应原始类型的变量占据的位的大小。
以下代码尝试将两个字符串解析为双精度值。
第一个字符串包含有效的double,第二个字符串包含无效的double。当调用parseDouble()方法来解析第二个字符串时,抛出NumberFormatException。
public class Main {public static void main(String[] args) {String str1 = "123.45";try {double value1 = Double.parseDouble(str1);System.out.println("value1 = " + value1);} catch (NumberFormatException e) {System.out.println("Error in parsing " + str1);}String str2 = "8H.9"; // An invalid doubletry {double value2 = Double.parseDouble(str2);System.out.println("value2 = " + value2);} catch (NumberFormatException e) {System.out.println("Error in parsing " + str2);}} }
上面的代码生成以下结果。
Java 字符数据类型
Java数据类型教程 - Java字符数据类型
Character类的一个对象包装一个char值。
字符类包含isLetter()和isDigit()方法来检查字符是否为字母和数字。
toUpperCase()和toLowerCase()方法将字符转换为大写和小写。
该类提供了一个构造函数和一个工厂valueOf()方法来从char创建对象。
charValue()方法返回对象包装的char。
例子
以下代码显示了如何创建Character对象以及如何使用它们的一些方法:
public class Main {public static void main(String[] args) {// Using the constructorCharacter c1 = new Character("A");// Using the factory method - preferredCharacter c2 = Character.valueOf("2");Character c3 = Character.valueOf("-");// Getting the wrapped char valueschar cc1 = c1.charValue();char cc2 = c2.charValue();char cc3 = c3.charValue();System.out.println("c1 = " + c1);System.out.println("c2 = " + c2);System.out.println("c3 = " + c3);// Using some Character class methods on c1System.out.println("isLowerCase c1 = " + Character.isLowerCase(cc1));System.out.println("isDigit c1 = " + Character.isDigit(cc1));System.out.println("isLetter c1 = " + Character.isLetter(cc1));System.out.println("Lowercase of c1 = " + Character.toLowerCase(cc1));// Using some Character class methods on c2System.out.println("isLowerCase c2 = " + Character.isLowerCase(cc2));System.out.println("isDigit c2 = " + Character.isDigit(cc2));System.out.println("isLetter c2 = " + Character.isLetter(cc2));System.out.println("Lowercase of c2 = " + Character.toLowerCase(cc2));System.out.println("Uppercase of c3 = " + Character.toUpperCase(cc3));} }
上面的代码生成以下结果。
Java Boolean包装类
Java数据类型教程 - Java Boolean包装类
布尔类的对象包装一个布尔值。
Boolean.TRUE和Boolean.FALSE是布尔类型的两个常量,用于表示布尔值true和false值。
我们可以使用构造函数或valueOf()工厂方法创建一个布尔对象。
当解析字符串时,此类将处理“true”,忽略所有字符的情况为true,任何其他字符串为false。
例子
下面的代码显示了如何使用Boolean类。
public class Main {public static void main(String[] args) {// Using constructorsBoolean b1True = new Boolean(true);Boolean b2True = new Boolean("true");Boolean b3True = new Boolean("tRuE");Boolean b4False = new Boolean("false");Boolean b5False = new Boolean("how is this"); // false// Using the factory methodsBoolean b6True = Boolean.valueOf(true);Boolean b7True = Boolean.valueOf("true");Boolean b8True = Boolean.valueOf("tRuE");Boolean b9False = Boolean.valueOf("false");Boolean b10False = Boolean.valueOf("how is this"); // false// Getting a boolean value from a Boolean objectboolean bbTrue = b8True.booleanValue();boolean bTrue = Boolean.parseBoolean("true");boolean bFalse = Boolean.parseBoolean("This string evaluates to false");Boolean bcTrue = Boolean.TRUE;Boolean bcFalse = Boolean.FALSE;System.out.println("bcTrue = " + bcTrue);System.out.println("bcFalse = " + bcFalse);} }
上面的代码生成以下结果。