java parseInt 和 valueof 的区别
2015-08-11 11:46
615 查看
static int parseInt(String s)将字符串参数作为有符号的十进制整数进行分析。
static Integer valueOf(int i)返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)返回保持指定的 String 的值的 Integer 对象。从返回值可以看出他们的区别 parseInt()返回的是基本类型int而valueOf()返回的是包装类Integer Integer是可以使用对象方法的 而int类型就不能和Object类型进行互相转换
示例1:
示例2
结果: false false
这是因为parseInt返回的是一个有符号的Integer数值,而Valueof返回是一个实例,更根本原因是对象池中数字是一个8bit有符号型,也就是说,数字大小在-128--127之内,valueof对于相同的数字返回的id是一致的,但是超过了这个范围,就会新开辟一块区域
示例3:
结果:true false
示例4:
结果:true true
123
123
123
综合示例:对一个对象数组排序
疑问点:在sort排序中函数参数为(Comparable[] list),而在printlist函数参数为(Object[ ] list)
直接利用java本身提供的对任意对象的数组进行排序的静态方法
static Integer valueOf(int i)返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)返回保持指定的 String 的值的 Integer 对象。从返回值可以看出他们的区别 parseInt()返回的是基本类型int而valueOf()返回的是包装类Integer Integer是可以使用对象方法的 而int类型就不能和Object类型进行互相转换
示例1:
package helloworld; public class Myexception { public static void main(String[] args){ int i1 = Integer.parseInt("256"); int i2 = Integer.parseInt("256"); int i3 = Integer.valueOf(256); int i4 = Integer.valueOf(256); System.out.println(i1==i2); System.out.println(i3==i4); } }结果:true true
示例2
package helloworld; public class Myexception { public static void main(String[] args){ Integer i1 = Integer.parseInt("256"); Integer i2 = Integer.parseInt("256"); Integer i3 = Integer.valueOf(256); Integer i4 = Integer.valueOf(256); System.out.println(i1==i2); System.out.println(i3==i4); } }
结果: false false
这是因为parseInt返回的是一个有符号的Integer数值,而Valueof返回是一个实例,更根本原因是对象池中数字是一个8bit有符号型,也就是说,数字大小在-128--127之内,valueof对于相同的数字返回的id是一致的,但是超过了这个范围,就会新开辟一块区域
示例3:
package helloworld; public class Myexception { public static void main(String[] args){ Integer i1 = Integer.parseInt("56"); Integer i2 = Integer.parseInt("56"); Integer i3 = Integer.valueOf(256); Integer i4 = Integer.valueOf(256); System.out.println(i1==i2); System.out.println(i3==i4); } }
结果:true false
示例4:
package helloworld; public class Myexception { public static void main(String[] args){ int i1 = Integer.parseInt("56"); Integer i2 = Integer.parseInt("56"); int i3 = Integer.valueOf(256); Integer i4 = Integer.valueOf(256); System.out.println(i1==i2); System.out.println(i3==i4); } }
结果:true true
package helloworld; public class Myexception { public static void main(String[] args){ // 第一个不常用 Integer a_=new Integer(123); // a_是Integer类型 int a=a_.intValue(); // 转化为int类型 System.out.println(a); String b = "123"; // 一个string int b_=Integer.parseInt(b); // 把string转化成int System.out.println(b_); int c_=123; String c=String.valueOf(c_); System.out.println(c); } }
123
123
123
综合示例:对一个对象数组排序
package helloworld; import javax.naming.ldap.SortControl; //对一个对象数组排序 public class Myexception { public static void main(String[] args){ // java会自动对基本类型以及相应的包装类型进行转换 Integer[] intArray ={new Integer(2),new Integer(4),new Integer(1)}; Double[] doubleArray ={new Double(3.4),new Double(1.3),new Double(-2.1)}; Character[] charArray = {new Character('a'),new Character('j'),new Character('r')}; String[] stringArray = {"tom","john","fred"}; sort(intArray); sort(doubleArray); sort(charArray); sort(stringArray); System.out.print("sort 1:"); printlist(intArray); System.out.print("sort 2:"); printlist(doubleArray); System.out.print("sort 3:"); printlist(charArray); System.out.print("sort 4:"); printlist(stringArray); } //sort an array of comparable objects //因为上面都实现了comparable接口,因此可以直接使用compareto方法 //选择排序 public static void sort(Comparable[] list){ Comparable currentmin; int currentminindex; for(int i=0;i<list.length-1;i++) { currentmin=list[i]; currentminindex=i; for(int j=i+1;j<list.length;j++) { if(currentmin.compareTo(list[j])>0) { currentmin=list[j]; currentminindex=j; } } if(currentminindex!=i) list[currentminindex]=list[i]; list[i]=currentmin; } } public static void printlist(Object[] list){ for(int i=0;i<list.length;i++) System.out.print(list[i]+" "); System.out.println(); } }
疑问点:在sort排序中函数参数为(Comparable[] list),而在printlist函数参数为(Object[ ] list)
直接利用java本身提供的对任意对象的数组进行排序的静态方法
package helloworld; import javax.naming.ldap.SortControl; //对一个对象数组排序 public class Myexception { public static void main(String[] args){ Integer[] intArray ={new Integer(2),new Integer(4),new Integer(1)}; Double[] doubleArray ={new Double(3.4),new Double(1.3),new Double(-2.1)}; Character[] charArray = {new Character('a'),new Character('j'),new Character('r')}; String[] stringArray = {"tom","john","fred"}; java.util.Arrays.sort(intArray); java.util.Arrays.sort(doubleArray); java.util.Arrays.sort(charArray); java.util.Arrays.sort(stringArray); System.out.print("sort 1:"); printlist(intArray); System.out.print("sort 2:"); printlist(doubleArray); System.out.print("sort 3:"); printlist(charArray); System.out.print("sort 4:"); printlist(stringArray); } //sort an array of comparable objects //因为上面都实现了comparable接口,因此可以直接使用compareto方法 //选择排序 /* public static void sort(Comparable[] list){ Comparable currentmin; int currentminindex; for(int i=0;i<list.length-1;i++) { currentmin=list[i]; currentminindex=i; for(int j=i+1;j<list.length;j++) { if(currentmin.compareTo(list[j])>0) { currentmin=list[j]; currentminindex=j; } } if(currentminindex!=i) list[currentminindex]=list[i]; list[i]=currentmin; } }*/ public static void printlist(Object[] list){ for(int i=0;i<list.length;i++) System.out.print(list[i]+" "); System.out.println(); } }
相关文章推荐
- HDU - 1815 Building roads (2-SAT)
- 死磕Visual Studio 2010 unsuccessfulbuild因为AlwaysCreate顽疾
- 动态改变cell的高度&beginUpdates和endUpdates-实现UITableView的动画块
- git fork,pull request 参与团队代码开发
- iOS基础-UIKit框架-基础视图-UIScrollView
- 谈论multistage text input(中国输入法)下一个UITextView内容长度的限制
- [LeetCode] Implement Stack using Queues
- NGUI研究院之UISprite和UITexture浅谈(十二)(图片大小优化)
- 在线画时序图的工具:Web Sequence Diagrams ,支持实时生成预览图
- HDU 4740 The Donkey of Gui Zhou
- RabbitMq的整理 exchange、route、queue关系
- UITableView的创建与使用
- String、StringBuffer与StringBuilder之间区别
- request.setAttribute()、session.setAttribute()和request.getParameter()的联系与区别
- 图片
- Leetcode#4||Median of Two Sorted Arrays
- android调用相机ACTION_IMAGE_CAPTURE后返回requestCode 在变化
- [转]iOS UILabel自定义行间距时获取高度
- UIViewAnimation动画与Core Animation的CATransition类动画
- poj 2031 Building a Space Station【最小生成树prime】【模板题】