您的位置:首页 > 产品设计 > UI/UE

Integer.parseInt()和Integer.valueOf()有什么区别

2015-11-07 20:31 645 查看
他们有本质区别,Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。

而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性

Integer.parseInt()把String 型转换为Int型,

Integer.valueOf()把String 型转换为Integer对象。

大概知道一点了,就是说Integer.valueOf(S)是针对包装类来说的,而Integer.parseInt(s) 是针对变量而言

不是很复杂,知道以下的知识就够了:

1.Java 包括两种数据类型:

原始数据类型(primitive data type):int, byte, float, long, boolean ...

对象(Object):其他的都是对象,包括数组。

2.每种 原始数据类型 都有一个相对应的包装类(Wrapper Class):

如 int 对应 Integer, float 对应 Float,有如下特性:

1)包装类里的数值是无法修改的

2)都有一个 构造方法,参数为 对应的原始数据类型,比如:

new Integer (10), new Boolean (true)

3)都有一个 构造方法,参数为一个字符串,把字符串转换为值,比如:

new Integer ("10"), new Boolean ("true")

4)有一个方法,可以把存在包装类里的值取出来:

Integer.intValue(), Float.floatValue();

5)有一个静态方法,不用创建一个对象就可以把字符串转换为值,比如:

int i = Integer.parseInt("10");

3.String 和 StringBuffer

每一个 Object 都有一个 toString() 函数。

Java 里使用 操作符重载的地方只有一个: + 操作:

如果两个操作数中有一个是 String,就调用另一个操作数的 toString,结果就变成

两个 String 的相加。

常用在 Exception 的处理中,比如:

try {

}catch (Exception e){

System.out.println ("Error: " + e);

}

处理过程:"Error: " + e ->; "Error: " + e.toString()

如果是 String 和 基本数据类型相加,就先把这个基本数据类型用他的包装类处理。

"String" + 123 ->; "String" + Integer(123) ->; "String" + Integer(123).toString()

String + String 的过程,Java 的内部处理过程(1.4以后)实际上是这样的:

"String1" + "String2" ->; new StringBuffer("String1").append("String2").toString()

先建立一个 StringBuffer, 再用 append 计算,最后把 StringBuffer 转换成 String

原因是 String 是 不可修改的,StringBuffer 是可以修改的,字符串计算时还是用

StringBuffer 比较快

所以,数据转换:

int ->; String

String newValue = "" + 10;

String ->; int

int i = (new Integer("10")).intValue();

int i = Integer.parseInt("10");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: