创建Short对象 valueOf
Short类是Java中short基本数据类型的包装类,它提供了一种将short值转换为Short对象的方法,以及将字符串转换为short值的功能。
如果不需要新的Short实例,则通常应优先使用该方法,而不是构造方法Short(Short),因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。
✍方法声明
public static Short valueOf(Short s);
- 📥入参:s为一个Short值。
- 🪐返回值:表示 s 的 Short 实例。
public static void main(String[] args) {
short st = 123;
Short num = Short.valueOf(st);
}
✍方法声明
public static Short valueOf(String s) throws NumberFormatException;
- 📥入参:s为要解析的字符串。
- 🪐返回值:保持字符串参数所表示的值的Short对象。
- 🐛抛出异常NumberFormatException:如果字符串不能解析为一个Short。
返回一个保持指定String所给出的值的Short对象。该参数被解释为表示一个有符号的十进制short,此值与用该参数作为参数的parseShort(java.lang.String)
方法得到的值相同。
结果是一个表示该字符串所指定的short值的Short对象。
public static void main(String[] args) {
short st = 123;
Short num = Short.valueOf(st);
Short num1 = Short.valueOf("123");
System.out.println(num.equals(num1));
System.out.println(num == num1);
}
这里使用两种方式创建 Short 对象,通过 equals() 比较两个对象,其值相等。因为 ShortCache 存在,两个对象的地址也相等。
true
public static void main(String[] args) {
short st = 1234;
Short num = Short.valueOf(st);
Short num1 = Short.valueOf("1234");
System.out.println(num.equals(num1));
System.out.println(num == num1);
}
ShortCache范围在 -128~127 之间,超过范围会创建不同的对象。
false
✍方法声明
public static Short valueOf(String s,int radix) throws NumberFormatException
- 📥入参:S:要解析的字符串。radix:解释s时使用的基数。
- 🪐返回值:保持指定基数中的字符串参数所表示的值的Short对象。
- 🐛抛出异常NumberFormatException:如果字符串不能解析为一个short。
返回从指定的String中提取的值的Short对象,并通过第二个参数指定基数。其方法内部调用了 parseShort(java.lang.String, int)
。
public static void main(String[] args) {
Short num1 = Short.valueOf("110", 2);
Short num2 = Short.valueOf("1F", 16);
short num3 = Short.parseShort("110", 2);
}
📝总结
Short类的valueOf方法提供了一种创建Short对象的有效方式,特别是当处理频繁出现的short数值时。
通过使用valueOf方法,可以减少对象的创建,从而提高性能。此外,Short类还提供了将字符串转换为short值的功能,这在解析用户输入或配置文件时非常有用。
需要注意的是,当字符串表示的数值超出short类型的范围时,或者格式不正确时,会抛出NumberFormatException异常。开发者在使用这些方法时应该确保处理这些潜在的异常情况。