精华内容
下载资源
问答
  • int Integer 转换成String 的效率比较

    千次阅读 2016-04-14 10:43:03
    对于int转换成String的效率问题,以前一直都不注意,现特别测试了一下,得出结论:1.String str = int+”“;效率最低,2.次之:String str = “”+i;比1 要快近一倍。3,比较高 String str = String.valueOf(int);...

    对于int转换成String的效率问题,以前一直都不注意,现特别测试了一下,得出结论:

    1.String str = int+”“;效率最低,

    2.次之:String str = “”+i;比1 要快近一倍。

    3,比较高 String str = String.valueOf(int);效率要高多了,比2要快近一倍,比1要快近三倍。

    4,比较高 String str = Integer.toString(int);效率跟3 不分上下,时低时高。

    测试代码:

    Date start=new Date(),end=new Date();
      String strs="";
    
      start = new Date();
      for(int i = 0;i<1000000;i++){
       strs = i+"";
      }
      end=new Date();
      System.out.println(end.getTime()-start.getTime()+"\ti+''");
    
      start = new Date();
      for(int i = 0;i<1000000;i++){
       strs = ""+i;
      }
      end=new Date();
      System.out.println(end.getTime()-start.getTime()+"\t''+i");
    
      start = new Date();
      for(int i = 0;i<1000000;i++){
       strs = String.valueOf(i);
      }
      end=new Date();
      System.out.println(end.getTime()-start.getTime()+"\tString.valueOf(i)");
    
      start = new Date();
      for(int i = 0;i<1000000;i++){
       strs = Integer.toString(i);
      }
      end=new Date();
      System.out.println(end.getTime()-start.getTime()+"\tInteger.toString(i)");
    

    运行结果一:

    281 i+”
    141 ”+i
    93 String.valueOf(i)
    78 Integer.toString(i)

    运行结果二:

    250 i+”
    141 ”+i
    78 String.valueOf(i)
    94 Integer.toString(i)

    展开全文
  • int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483...int 的 SQL-92 同义字为 integer。 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个...

    int 
    从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。


    bigint 
    从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 

    smallint 
    从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。 


    tinyint 
    从 0 到 255 的整型数据。存储大小为 1 字节。 

     

    int与integer的基本使用对比

    (1)integer是int的包装类,int是基本数据类型; 
    (2)integer变量必须实例化后才能使用,int变量不需要; 
    (3)integer实际是对象的引用,指向此new的integer对象,int是直接存储数据值 ; 
    (4)integer的默认值是null,int的默认值是0。

    注意:

    在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。 
    在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 
    只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 
    int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。


    作者、链接:https://www.imooc.com/article/41543
    来源:慕课网

    展开全文
  • java intInteger的区别

    万次阅读 多人点赞 2019-05-12 11:13:40
    Integerint的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据...

    1 区别

    • Integer是int的包装类,int则是java的一种基本数据类型
    • Integer变量必须实例化后才能使用,而int变量不需要
    • Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
    • Integer的默认值是null,int的默认值是0

    2 ==比较

    2.1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

    Integer i = new Integer(100);
    Integer j = new Integer(100);
    System.out.print(i == j); //false
    

    2.2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

    Integer i = new Integer(100);
    int j = 100;
    System.out.print(i == j); //true
    

    2.3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

    Integer i = new Integer(100);
    Integer j = 100;
    System.out.print(i == j); //false
    

    2.4、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false

    Integer i = 100;
    Integer j = 100;
    System.out.print(i == j); //true
    Integer i = 128;
    Integer j = 128;
    System.out.print(i == j); //false
    

    对于第4条的原因:
    java在编译Integer i = 100 ;时,会翻译成为Integer i = Integer.valueOf(100);,而java API中对Integer类型的valueOf的定义如下:

    public static Integer valueOf(int i){
        assert IntegerCache.high >= 127;
        if (i >= IntegerCache.low && i <= IntegerCache.high){
            return IntegerCache.cache[i + (-IntegerCache.low)];
        }
        return new Integer(i);
    }
    

    java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了

    3 延伸

    3.1、理解自动装箱、拆箱

    自动装箱与拆箱实际上算是一种“语法糖”。所谓语法糖,可简单理解为Java平台为我们自动进行了一些转换,保证不同的写法在运行时等价。因此它们是发生在编译阶段的,也就是说生成的字节码是一致的。

    对于整数,javac替我们自动把装箱转换为Integer.valueOf(),把拆箱替换为Integer.intValue()。可以通过将代码编译后,再反编译加以证实。

    原则上,建议避免无意中的装箱、拆箱行为,尤其是在性能敏感的场合,创建10万个Java对象和10万个整数的开销可不是一个数量级的。当然请注意,只有确定你现在所处的场合是性能敏感的,才需要考虑上述问题。毕竟大多数的代码还是以开发效率为优先的。

    顺带说一下,在32位环境下,Integer对象占用内存16字节;在64位环境下则更大。

    3.2、值缓存

    就像上一讲谈到的String,Java也为Integer提供了值缓存。

    Integer i1 = 1;Integer i2 = Integer.valueOf(2);Integer i3 = new Integer(3);

    上述代码中第一行与第二行的写法取值使用了值缓存,而第三行的写法则没有利用值缓存。结合刚刚讲到的自动装箱、拆箱的知识,第一行代码用到的自动装箱,等价于调用了Integer.valueOf()。

    不仅仅是Integer,Java也为其它包装类提供了值缓存机制,包括Boolean、Byte、Short和Character等。但与String不同的是,默认都只会将绝对值较小的值放入缓存。以Integer为例,默认情况下只会缓存-128到127之间的值。当然如果你愿意也可以通过以下JVM参数进行设置:

    -XX:AutoBoxCacheMax=N

    3.3、原始类型操作线程安全吗?

    这个问题的正确答案是“线程不安全”,是否有些出乎你的意料?

    原始数据类型的变量,需要使用并发相关手段才能保证线程安全。特别的是,部分比较宽的数据类型,比如long、float、double,甚至不能保证更新操作的原子性,可能出现程序读取到只更新了一半数据位的数值!关于这个话题会在这个专栏后面的并发主题详细介绍。如果有线程安全的计算需要,建议考虑使用类似AtomicInteger、AtomicLong这样线程安全的类。

    展开全文
  • intinteger的区别?

    2019-04-28 10:19:49
    intinteger的区别 1、int是基本数据类型。integerint的包装类。 2、Integer变量必须实例化后才能使用,而int变量不需要 。 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;...

    int与integer的区别
    1、int是基本数据类型。integer是int的包装类。
    2、Integer变量必须实例化后才能使用,而int变量不需要 。
    3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 。
    4、Integer的默认值是null,int的默认值是0。
    5、一般接收参数是基本数据类型应该使用包裹类进行接收。

    1. 基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。

    2. 从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如

    Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。
    在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存

    泄露的问题。

    	注意:integer -127——128以内的值,自动装箱时会重用,128以上的不能用==或!=比较,用equals比较.
    	https://blog.csdn.net/ma451152002/article/details/9076793
    
    展开全文
  • Java中IntInteger区别

    2018-02-08 09:20:06
    最近学习java碰到了Int和Integer的问题,总结如下:效率:IntInteger效率高! Int是基本数据类型,Integer是封装类的对象,计算机读取和计算肯定是Int更快,对于Integer的读取和计算会相对复杂,包括int[]和Integer[]的...
  • Integerint关系以及integerint的比较 Integerint的包装类(引用类型),int是基本数据类型。说到包装类我们来梳理一下装箱和拆箱。 拆箱:自动拆箱就是包装类型转换成基本数据类型。 装箱:自动装箱就是基本数据...
  • intInteger深入分析

    千次阅读 2018-08-27 19:02:23
    1.关于intInteger的问题区别分析 2.Integer的值缓存的原理 2.1 Java 5 中引入缓存特性 2.2 Integer类中的IntegerCache类 2.3 其他整型类型的缓存机制 3.理解自动装箱和拆箱 3.1 什么是装箱?什么是拆箱? ...
  • intinteger的区别

    2018-09-16 11:04:36
    int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types, boolean、... Integerint 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基 本操作,比如数学运算、int 和字符串之间...
  • intInteger和IntHolder

    2016-10-13 22:24:47
    一、对象包装器与自动拆装箱 有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。 二、intInteger和IntHolder类型的区别
  • java中intinteger区别 int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 Java中intInteger关系是比较微妙的。关系如下:  1.int是基本的数据类型;  2.Integerint的...
  • Integerint的区别

    2017-07-11 20:10:02
    Integerint的区别
  • intinteger之间的比较(笔试题) 1. intinteger之间的比较 intinteger之间的比较就是数值之间的比较,只要数字相等比较结果就为true(依赖于自动装箱与拆箱的机制) 2.integer之间的比较 Integer i2; ...
  • Java中intInteger的区别

    千次阅读 2012-01-05 14:26:36
    Java中intInteger的区别   首先我们看一个例子: public static void main(String[] args) {  // TODO Auto-generatedmethod stub  Integer i = 50;  Integer j = 50;  if (i == j) {
  • Java中intinteger的比较

    千次阅读 2018-11-20 10:58:28
    Java中,数值型的创建和字符串有类似的地方,Integer是Java为了使用对象的属性和方法给int准备的类型。字符串 String s = “bag”; 这样创建会在常量池中查找 bag,没有的话就新建,并不会在堆里新建。 同样地,...
  • java中Integerint比较浅谈

    千次阅读 2017-06-27 17:32:50
    Integerint区别 Integer a = 300 ; Integer b = 300; int c = 300; System.out.println(a == b); System.out.println(a == c); Integer int1 = 100; Integer int2 = 100; System.out.println(int1 == int2);
  • intInteger有什么区别?

    千次阅读 2018-07-26 20:37:38
     一、 int就是我们常说的java八大(primitive types : blooean、 byte 、 short 、 char 、int 、 float 、 double 、 long)原始数据类型之一。java虽然号称一切皆对象但是基本数据类型是例外。 【八种基本数据...
  •  2、Integer.toString(int i)  3、i+""; //i 为 int类型   三种方法效率排序为: Integer.toString(int i) &gt; String.valueOf(int i) &gt; i+"";...
  • 我们来区别一下intinteger这个俩个的区别共同点: 共同点呢:1、都是整型  2、范围值都是 -2147483648(-2^31) 至 2147483647( 2^31 - 1)是一样的  3、其中使用equals比较的是值我们可以进入源码看一下其中的...
  • java.lang.Integer是一个类,它集成了java.lang.Number,它在某对象中打包了原始类型为int的值。Integer类型的对象包括了int型的单个域。由于java.lang.Integer是一个类,因此它提供了一些方法来对其对象进行操作。 ...
  • 这是CSDN上的一个帖子,问题如下:    Java代码  public static void main(String...  Integer a = 128;     Integer b = 128;     System.out.println(a == b);     }  请问输出...
  • int是一种基本数据类型,Integer是一个对象,需要实例化才能使用。它对int进行了包装,在Integer内部有一个对应的数值int变量 intInteger的对比,经常被拿来作为面试题,下面就多种情况,通过源码分析其结果。我们...
  • Integerint比较大小

    千次阅读 2019-06-28 15:14:13
    Interger 和 Integer的直接赋值比较 Integer i1 = 125; Integer i2 = 125; System.out.println(i1 == i2); true Integer i1 = 225; Integer i2 = 225; System.out.println(i1 == i2); false 注: Integer ...
  • Integerint对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算、int和字符串之间转换等。在Java 5中,引入了自动装箱和自动拆箱功能(boxing/unboxing),Java可以根据上下文,自动...
  • C# 之 int 挑战 Java 之 Integer

    万次阅读 热门讨论 2010-10-24 11:26:00
    《.NET 4.0面向对象编程漫谈》扩充阅读系列文章之《C# 之 int 挑战 Java 之 Integer
  • http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
  • 今天测试遇到一个异常,检查半天没有找到问题所在,最后将...(1)首先基本数据类型之间可以强转,如long,int (2)对象类数据类型,如Integer,String, Long,这个时候基本数据类型和对象数据类型之间的转换...
  • 关于Integerint拆箱装箱的总结

    千次阅读 2018-01-05 17:51:49
    Integerint拆箱装箱, Integer部分方法源码解析,拆装箱例子解析。
  • 分析:在做题的时候用到了需要对int
  • intInteger有什么区别? Integer int == ?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,047
精华内容 70,418
关键字:

intinteger效率