Integer.parseInt()和Integer.valueOf()有什么区别
2015-12-26 19:15
513 查看
他们有本质区别
Integer.valueof(Strings)
是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。
而Integer.parseInt(Strings)
只是将是数字的字符串转成数字,注意他返回的是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 的处理中,比如:
处理过程:"Error: " + e ->; "Error: " +e.toString()
如果是 String 和 基本数据类型相加,就先把这个基本数据类型用他的包装类处理。
"String" + 123 ->; "String" +Integer(123) ->; "String" + Integer(123).toString()
String + String 的过程,Java 的内部处理过程(1.4以后)实际上是这样的:
"String1" + "String2" ->; newStringBuffer("String1").append("String2").toString()
先建立一个 StringBuffer, 再用 append 计算,最后把 StringBuffer 转换成 String
原因是 String 是 不可修改的,StringBuffer是可以修改的,字符串计算时还是用
StringBuffer 比较快
所以,数据转换:
Integer.valueof(Strings)
是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。
而Integer.parseInt(Strings)
只是将是数字的字符串转成数字,注意他返回的是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" ->; newStringBuffer("String1").append("String2").toString()
先建立一个 StringBuffer, 再用 append 计算,最后把 StringBuffer 转换成 String
原因是 String 是 不可修改的,StringBuffer是可以修改的,字符串计算时还是用
StringBuffer 比较快
所以,数据转换:
int->; String String newValue = "" + 10; String ->; int inti = (new Integer("10")).intValue(); inti = Integer.parseInt("10");
相关文章推荐
- paip. 混合编程的实现resin4 (自带Quercus ) 配置 php 环境
- php require_once()引入文件后,后面的代码无法执行
- iOS学习笔记之自定义UITextView控件(带有placeholder)
- 一个完整的JENKINS下的ANT BUILD.XML文件(Jenkins可以参考)
- UI弹出键盘和收回键盘
- POJ 2524 :Ubiquitous Religions
- 23种设计模式(4)_创建型_建造者模式(Builder Pattern)
- 【APUE】8、pthread_create函数,创建子线程
- lucene.net 使用过程中的 几个注意事项(含termquery 和QueryParser 的区别)
- iOS8开发之iOS8的UIAlertController
- UITableView 上添加button
- [IOS开发教程] IOS UIDevice & IOS检测屏幕旋转实例
- Educational Codeforces Round 4 C. Replace To Make Regular Bracket Sequence
- LeetCode - N-Queens II
- toString 和String.valueOf
- QueryAddressUtils
- NSString和NSMultableString和NSNumber以及NSValue
- IOS SDK详解之UIAlertController(IOS8之后替代AlertView和ActionSheet)
- LeetCode - N-Queens
- UITextField的属性设置