声明:本文为博主转载文章,原文地址见文末. 知识点1:integer和int的区别 /* * int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0, * 而Integer的默认值为null * ,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别 * ,则只能使用Integer * .在JSP开发中,Integer的默认为nul…
先做一些总结,询问了些经验比较多的师傅,在这里表示感谢,然后自己总结下,今天的收获分享给大家: 1. int 和Integer在进行比较的时候,Integer会进行拆箱,转为int值与int进行比较. 2. Integer与Integer比较的时候,由于直接赋值的时候会进行自动的装箱,那么这里就需要注意两个问题,一个是-128<= x<=127的整数,将会直接缓存在IntegerCache中,那么当赋值在这个区间的时候,不会创建新的Integer对象,而是从缓存中获取已经创建好的Integer…
今天说一下自己在项目中遇到的问题,然后总结一下Integer引用类型和int值类型 关于默认值 Integer默认为null int默认为0 为什么把数据实体设计成Integer或者不是int 大叔认识,这样设计有助于我们区分这个字段是否被设置过,或者说是否被set过,而对于Integer来说,如果没有被set过,它一定是null(当然你把它强制改为null除外),而对于int来说,你无法区别0和默认值,因为它默认就是0,我觉得这是最重要的一点. 可以区分属性是否被设置过值 QueryWrapp…
integer a=new integer(1); integer b=new integer(1); int c=1; integer d=1; a==b  false因为地址不同: a==c  true因为Integer与Int比较,int是原始数据类型,与原始数据比较就是比较值: a==d false因为new 就是新建一个地址: integer 1是直接赋值,如果内存中有1这个值的话,就会把地址付给Integer 1,没有的话就重新赋地址: eg:integer a=1;integer…
例1: public static void main(String[] args){ Integer a = 128,b = 128; Integer c = 127,d = 127; System.out.println(a==b); System.out.println(c==d); } 当我们给一个Integer对象赋一个interesting值得时候,会调用Integer类的静态方法valueOf,其源代码实现为 public static Integer valueOf(int i)…
Java中的Integer是引用类型,而int是基本类型.Integer是int的包装器类型. java中的基本类型有布尔类型boolean;字符类型char;整数类型byte,int,long,short;浮点类型float和double;有的书上把void当做一种基本类型. 区分引用类型和基本类型:以Integer和Int为例 Integer a=new integer(47);new integer(10)是创建对象,对象的值存在堆内存中,也就是47存在堆中. 而a是引用,引用存在栈中,栈…
示例代码: class BoxIntInteger { public static void main(String[] args) { Integer a = new Integer(10111); int b = 10111; boolean equal1 = a == b; boolean equal2 = a.equals(b); System.out.println(equal1); System.out.println(equal2); } } 反编译字节码: public stat…
本文节选自<设计模式就该这样学>之享元模式(Flyweight Pattern) 1 故事背景 一个程序员就因为改了生产环境上的一个方法参数,把int型改成了Integer类型,因为涉及到钱,结果上线之后公司损失惨重,程序员被辞退了.信不信继续往下看.先来看一段代码: public static void main(String[] args) { Integer a = Integer.valueOf(100); Integer b = 100; Integer c = Integer.va…
1 故事背景 一个程序员就因为改了生产环境上的一个方法参数,把int型改成了Integer类型,因为涉及到钱,结果上线之后公司损失惨重,程序员被辞退了.信不信继续往下看.先来看一段代码: public static void main(String[] args) { Integer a = Integer.valueOf(100); Integer b = 100; Integer c = Integer.valueOf(129); Integer d = 129; System.out.pr…
https://www.jianshu.com/p/ff535284916f [int和Integer的区别] int是java提供的8种原始类型之一,java为每个原始类型提供了封装类,Integer是int的封装类.int默认值是0,而Integer默认值是null: int和Integer(无论是否new)比较,都为true, 因为会把Integer自动拆箱为int再去比: Integer是引用类型,用==比较两个对象,其实比较的是它们的内存地址,所以不同的Integer对象肯定是不同的:…
1. 默认值 int默认值为0,Integer的默认值为null.推论:Integer既可以表示null又可以表示0 2. 包装类中提供了该类型相关的很多算法操作方法 如把十进制装换为2进制(toBinaryString),8进制(toOctalString),16进制(toHexString). 3. 在集合框架中,只能存储对象类型,不能存储基本数据类型. 4. Integer与int是不同的数据类型. 5. 方法中的基本类型变量存储在栈中,包装类型存放于堆中.…
简述:int与Integer的区别: 对于它们,我们可能只是知道简单的区别.Integer是int的一个封装类,int的初始值为0,而Integer的初始值为null.但是他们之间真的仅仅只有这些区别吗?我觉得答案是否定的,于是我决定深入到jdk源码中一探究竟.看看Integer与int到底有什么区别. 执行代码: public class IntegerTest { public static void main(String[] args) { // TODO Auto-generated…
package com.lxm.basics; public class IntegerTest { public static void main(String[] args) { Integer a1 = 45; int a2 = 45; Integer a3 = Integer.valueOf(45); Integer a4 = new Integer(45); Integer a5 = new Integer(45); System.out.println("a1==a2:"+…
如果面试官问Integer与int的区别:估计大多数人只会说道两点,(1)Ingeter是int的包装类,int的初值为0:(2)Ingeter的 初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对 大家有帮助. 首先看代码: 1 package com.test; 2 /** 3 * 4 * @author 刘玲…
/*  * (1) int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类. * (2)int的默认值为0, 而Integer的默认值为null  *   即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别  * ,则只能使用Integer. 场景一:在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而…
测试代码: @Test public void IntegerTest() { Integer i01 = 59; int i02 = 59; Integer i03 = Integer.valueOf(59); Integer i04 = new Integer(59); System.out.println(i01==i02); System.out.println(i01==i03); System.out.println(i03==i04); System.out.println(i02…
官网:http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html 1.赋值: a. 把int类型赋值给Integer类型:JVM会自动调用Integer.valueOf()方法 b. 把Integer类型赋值给int类型:JVM会自动调用intValue()方法 2.比较 a. int 与 int 比较:直接对两个变量的值进行比较 b. int 与 Integer 比较:会先把Integer拆装成int类型,然后进行比较 c.…
1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10";   Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValu…
获取Integer对象有两种方式:Integer x = 100:或者Integer x = new Integer(100): Integer x = 100:等价于Integer x = Integer.valueof(100); 用valueof()函数返回一个Integer对象. Integer是对象 int是数据类型,对象和数据类型比,比的是数值,会自动拆箱,所以不管是Integer x = 100:或者Integer x = new Integer(100): 和100相==,结果都…
int.class返回Integer的对象 Integer.type返回int对象…
Integer与int的区别我们耳熟详的有两点:1.Integer是int的包装类.2.Integer的默认初始值是null,而int的默认初试值是0. 下面通过代码进行详细比较. public class TestInteger { public static void main(String[] args) { int i = 128; Integer i2 = 128; Integer i3 = new Integer(128); //Integer会自动拆箱为int,所以为true Sy…
Integer为什么要提供功能与new Integer(xx)一样的valueOf(xx)方法呢,看了源代码之后,我发现了惊人的内幕. public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.…
以下是2个人的回答,我是从百度上复制下来的,做个笔记,以后方便看 String.valueOf()它可以将JAVA基本类型(int,double,boolean等)和对象(Object)转换成String型 toString()是对象的方法,它可以将该对象转换成String型,转换算法根据类型实际需要而定,基本上JAVA里面每个对象都会有一个toString方法. 两者的运行结果都是相同的,只是原理不一样 String.valueOf()可以应用到任何数据类型,且不会有异常报出.Integer.…
JAVA里面的int类型 和Integer类型,有什么不一样 原文链接:http://blog.csdn.net/wuxinliulei/article/details/11099565 java.lang.Integer是一个类.对它的操作要通过类的方法 int是JAVA缺省的8中基本数据类型之一.不是类的对象. int是基本数据类型,Integer是对int进行了封装的一个类. 声明为int的变量不需要实例化,声明为Interger的变量需要实例化 int是基本类型,Integer是包装类,…
Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package…
在jdk1.5的环境下,有如下4条语句: 1 2 3 4 Integer i01 = 59; int i02 = 59; Integer i03 =Integer.valueOf(59); Integer i04 = new Integer(59). Integer i01=59 的时候,会调用 Integer 的 valueOf 方法, 1 2 3 4 5   public static Integer valueOf(int i) {      assert IntegerCache.hig…
基本概念的区分: 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型2.Integer 变量必须实例化后才能使用,而int变量不需要3.Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象:而 int 则是直接存储数据值4.Integer的默认值是null,int的默认值是0 Integer.new Integer() 和 int 的比较 1.两个 new Integer() 变量比较 ,永远是 false 因为new…
一下子还真记不清这三种数据类型之间的转换方法,所以做个小笔记. public class Test03 { public static void main(String[] args) { //int Integer String三种数据类型想换转换方法总结 //1.int -->Integer Integer i1 = Integer.valueOf(123); //也可以通过构造方法来实现 //2.Integer -->int Integer i2 = new Integer(123);…
今天在做Object 自动转为Integer 类型之后的判断,遇到一个不理解的点,当数值超过127之后,两个数值相同的Object 对象用 == 判断的结果是false. Object a = 128; Object b = 128; System.out.println(a.getClass().getName()); System.out.println(b.getClass().getName()); System.out.println(a==b); Object a1 = 127; O…
public void Test1() { int a = 128; Integer b = 128; Integer c = 128; //Integer会自动拆箱成int,所以为ture System.out.println(a==b); System.out.println(a==c); } @Test public void Test2() { Integer a = 127; Integer b = 127; System.out.println(a == b);//此处结果为true…