- 浏览: 141016 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
nishwd123:
受益匪浅,多谢楼主细心讲解.
Hibernate、Spring和Struts工作原理及使用理由 -
doublelcf:
写得真好。全面,流畅。清晰
Hibernate、Spring和Struts工作原理及使用理由
首先:
Java代码
Java代码
原因:
1。java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);
2。比较的时候仍然是对象的比较
3。在jdk源码中
Java代码
而
Java代码
这边是java为了提高效率,初始化了-128--127之间的整数对象
所以在赋值在这个范围内都是同一个对象。
再加一句
Integer a = 100;
a++;
//这边a++是新创建了一个对象,不是以前的对象。
Java代码
打印就是false .
对于127--128没有多大关系,但是在这范围之外就影响性能了吧 !
Java代码
public static void main(String []args) { Integer a = 100; Integer b = 100; System.out.println(a==b); //true }
Java代码
public static void main(String []args) { Integer a = 200; Integer b = 200; System.out.println(a==b); //false }
原因:
1。java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);
2。比较的时候仍然是对象的比较
3。在jdk源码中
Java代码
public static Integer valueOf(int i) { final int offset = 128; if (i >= -128 && i <= 127) { // must cache return IntegerCache.cache[i + offset]; } return new Integer(i); }
而
Java代码
private static class IntegerCache { private IntegerCache(){} static final Integer cache[] = new Integer[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache = new Integer(i - 128); } }
这边是java为了提高效率,初始化了-128--127之间的整数对象
所以在赋值在这个范围内都是同一个对象。
再加一句
Integer a = 100;
a++;
//这边a++是新创建了一个对象,不是以前的对象。
Java代码
public static void main(String []args) { Integer a = 100; Integer b = a; a++; System.out.println(a==b); }
打印就是false .
对于127--128没有多大关系,但是在这范围之外就影响性能了吧 !
发表评论
-
Java中serialVersionUID
2012-11-26 13:27 866Java中serialVersionUID serialV ... -
ArrayList数组对象排序
2012-11-13 21:53 1448POJO package com.test.compara ... -
Java堆和栈的区别 equals 和 == 的区别
2012-11-07 12:10 830Java堆和栈的区别 equals ... -
Cookie,Session,Application用法及区别
2012-05-22 15:20 2844一.Cookie 首先,Cookie的作用域为 ... -
static 的用法
2012-05-22 13:58 913static 代码块应用 package com.ut ... -
finally解析
2012-05-22 13:47 967一.finally 中的语句什么 ... -
java 断言 assert 初步使用:断言开启、断言使用
2012-05-04 20:43 1557java 断言 assert 初步使用:断言开启、断言使用 ... -
java 定时任务实现
2012-04-05 22:41 3691java.util.Timer定时器,实际上是个线程,定时调度 ... -
Servlet上传文件,commons-fileupload
2012-03-02 11:17 4840Servlet上传文件,commons-fil ... -
堆与栈的区别
2012-02-24 11:58 961堆和栈的区别 全局,静态,new产生的变量都在堆中动态分 ... -
在Java中用单例模式有什么好处
2012-01-30 19:46 1341Java Singleton模式主要作 ... -
JAVA单例模式的几种实现方法
2012-01-30 19:41 9031 饿汉式单例类.在类初始化时,已经自行实例化 clas ... -
jsp中的注释<!-- -->内容中不能包含--
2011-11-23 17:45 921jsp中的注释<!-- -->内容中不能包含-- ... -
ibatis和hibernate的区别
2011-08-15 13:34 649ibatis和hibernate的区别 ... -
equals和"=="浅析
2011-02-24 22:30 822==操作符专门用来比较 ... -
java中的重写与重载
2011-02-21 13:59 900方法的重写Overriding和重载Overloading是J ... -
MyEclipse生成WAR包并在Tomcat下部署发布
2011-02-18 22:56 2286右键选中项目,选择export。 然后选择J2EE-> ... -
JPA详解
2011-02-17 08:54 2038JPA全称Java Persistence API.JPA通过 ... -
comparable和comparator的区别
2011-02-16 17:59 1232两者区别: 1) Comparable接 ... -
Freemarker网站静态化实现
2011-02-15 14:26 1073转载自http://www.iteye.com/topic/4 ...
相关推荐
java中Integer包装类的详细讲解(java二进制操作,所有进制转换) 十进制转成二进制 十进制转八进制 十进制转十六进制 十六进制转成十进制 十六进制转成二进制 八进制转成十进制 等等所有进制转换和操作
在Java编程语言中,Integer和Byte之间的转换是常见的操作,特别是在处理二进制数据或网络通信时。本文档主要探讨了如何在Java中实现这两种数据类型的转换,包括有符号和无符号的转换。 首先,Integer在Java中占用4...
JAVA 中 Integer 值的范围实例代码解析 在 Java 中,Integer 是一个非常重要的类,用于表示整数值。然而,Integer 的值范围是有限制的,这篇文章将会详细介绍 Java 中 Integer 值的范围实例代码。 首先,让我们来...
在Java编程语言中,Integer是int基本数据类型的封装类,提供了许多高级功能和与对象相关的操作。自从Java 5引入自动装箱和拆箱机制以来,我们可以在代码中方便地在int和Integer之间进行转换。然而,对于Integer的...
项目里遇到的小问题的 整理
Java中Integer.valueOf、parsetInt() String.valueOf的区别和结果代码解析 Java中Integer.valueOf、parsetInt()和String.valueOf都是常用的方法,但是它们之间存在着很多的区别,下面我们将通过代码来解释它们之间...
在Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...
首先,Integer是Java中的一个包装类,它封装了基本类型int。当我们创建一个Integer对象时,实际上是在堆内存中分配了一个新的空间,并将int值存储在这个对象的`value`字段中。由于`value`字段被声明为`final`,这...
ID自增的java类方法,不用数据库主键自增的可以考虑试试这个,自己定义方式
HugeInteger.java
对JAVA中的int类型和integer类型进行透彻分析的一个文档 很有帮助的哦 亲!
在Java编程中,将一个`List<Integer>`转换成以逗号分隔的`String`字符串是一种常见的需求,尤其是在处理数据展示或格式化输出时。Java 8引入了新的特性和方法,使得这种转换变得更加简洁和高效。下面我们将深入探讨...
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型之一,它直接存储在栈...
JAVA Integer类型自加实例详解是 Java 语言中一个非常重要的知识点,对于 Java 开发者来说,无论是初学者还是高级开发者 都需要了解和掌握这方面的知识。本文将深入探讨 Java Integer 类型的自加实例详解,通过示例...
在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型(Primitive Type),它...
Java 中 int 和 Integer 的区别 Java 中的数据类型可以分为基本数据类型和复杂数据类型,int 是基本类型,而 Integer 是一个类。下面是它们之间的主要区别: 1. 数据类型 int 是基本数据类型,直接存储数值,而 ...
2、Java中Integer型和int型的区别 Integer是int的包装类,二者都是用来表示整数,但它们在内存中存储方式和使用场景不同。int是原始数据类型,直接存储数值;Integer是对象,存储时会在堆中创建对象,占用更多内存,...
这个DEMO的目的是展示如何在Java中使用整型(Integer)数据类型进行编程。Integer是Java中的一个类,它是基本类型int的包装类,提供了许多额外的功能。 【描述】"demo源码,仅供学习参考之用,希望多交流"表明这是...
Java 中 int 和 Integer 的区别 在 Java 编程语言中,int 和 Integer 是两种不同的数据类型,虽然它们看起来很相似,但它们有着根本的区别。下面我们将详细探讨这两种数据类型的差异。 基本类型 vs 复杂数据类型 ...