Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先来看段代码
千家信息网最后更新 2026年11月04日Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些
小编给大家分享一下Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
先来看段代码
public class IntegerDemo { public static void main(String[] args) { String num = null; System.out.println( Integer.parseInt(num));// Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num));// Exception java.lang.NumberFormatException System.out.println( String.valueOf(num)); //输出null num = ""; System.out.println( Integer.parseInt(num)); // Exception java.lang.NumberFormatException System.out.println( Integer.valueOf(num)); // Exception java.lang.NumberFormatException System.out.println( String.valueOf(num));//空串,啥也不输出 }}先看一下 String.valueOf() 里面是怎么写的

String.valueOf() 在遇到 null 和 空串的情况下 ,都能正常输出,所以不抛错
再来看下 包装类型 Integer里面又是如何处理的

这两个方法里面都需要先 parseInt( s,10),就是将字符串s先转成 十进制的 int基本类型,,但是 valueOf()会根据int范围从[-127,127]的内部缓存中去取(用到设计模式中的 享元模式)
一起来看下 parseInt(s, 10),,在方法里面会判断字符串是否是合法的数字,会去校验null, 空串等其他格式,所以会抛错
public static int parseInt(String s, int radix) throws NumberFormatException { /* * WARNING: This method may be invoked early during VM initialization * before IntegerCache is initialized. Care must be taken to not use * the valueOf method. */ if (s == null) { throw new NumberFormatException("null"); } if (radix < Character.MIN_RADIX) { throw new NumberFormatException("radix " + radix + " less than Character.MIN_RADIX"); } if (radix > Character.MAX_RADIX) { throw new NumberFormatException("radix " + radix + " greater than Character.MAX_RADIX"); } int result = 0; boolean negative = false; int i = 0, len = s.length(); int limit = -Integer.MAX_VALUE; int multmin; int digit; if (len > 0) { char firstChar = s.charAt(0); if (firstChar < '0') { // Possible leading "+" or "-" if (firstChar == '-') { negative = true; limit = Integer.MIN_VALUE; } else if (firstChar != '+') throw NumberFormatException.forInputString(s); if (len == 1) // Cannot have lone "+" or "-" throw NumberFormatException.forInputString(s); i++; } multmin = limit / radix; while (i < len) { // Accumulating negatively avoids surprises near MAX_VALUE digit = Character.digit(s.charAt(i++),radix); if (digit < 0) { throw NumberFormatException.forInputString(s); } if (result < multmin) { throw NumberFormatException.forInputString(s); } result *= radix; if (result < limit + digit) { throw NumberFormatException.forInputString(s); } result -= digit; } } else { throw NumberFormatException.forInputString(s); } return negative ? result : -result; }看完了这篇文章,相信你对"Java中Integer.valueOf,parsetInt() String.valueOf的区别有哪些"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
空串
输出
字符
字符串
方法
模式
篇文章
类型
合法
两个
代码
十进制
又是
完了
就是
情况
数字
更多
格式
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技官网
互联网公司 科技公司
华宇互联网科技
猪兼强互联网科技
互联网科技公司官网
科技创新互联网企业
科技伦理 互联网公司
互联网科技实习生岗位职责
华夏互联网科技业
苏州铭阳互联网科技有限公司
坤平互联网科技
互联网科技大奖都有哪些公司
天津腾达互联网科技有限公司
半导体是互联网高科技吗
互联网科技包装股
福建互联网展示科技馆设计
互联网科技机房
广西科技产业互联网是什么
兰石爱特工业互联网科技分公司
青岛易易互联网科技
手冲咖啡和咖啡机区别
善班互联网科技有限公司
互联网金融科技平台
富国互联网科技创新基金
互联网教育科技公司vipkid
剑昆互联网络科技有限公司临桂
互联网与医疗科技
长沙茂晟互联网科技有限公司
沐思想互联网科技有限公司
济南小医互联网科技有限公司招聘