Java的Integer.valueOf和Integer.parseInt

package com.wu;

/**
 * Inteegr.valueOf()和Integer.parseInt()方法的区别
 *
 */
public class App 
{
    /**
     * valueOf会返回一个Integer(整型)对象,当被处理的字符串在-128和127(包含边界)之间时,返回的对象是预先缓存的.
     * 第二行的调用返回false是因为128没有被缓存,所以每次调用,都会生成一个新的整型对象,因此两个128整型对象是不同的对象
     * 重要的是你要知道在上面的比较中,你实际进行比较的是integer.valueOf返回的对象引用,所以当你比较缓存外的整型对象时,相等的判断不会返回true,就算你传个valueOf的值是相等的也没用
     * parseInt()返回的不是整型对象,而是一个int型基础元素
     * 这就是为什么最后一个判断会返回true,第三行的判断中,在判断相等时,实际比较的是128 == 128,所以它必然是相等的
     * @param args
     */
    public static void main( String[] args )
    {
        /**
         * true
         * false
         * true
         */
        System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
        System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
        System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));
    }
}

  

 

posted @ 2019-06-02 16:13  林木声  阅读(500)  评论(0编辑  收藏  举报