收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 

交流首页 » Java »Integer 创建对象在-128到127的奇怪问题  提现最快的斗地主游戏
发表人 内容
jsHelper
[头像]

交流经验:
总积分:110
级别:普通会员
注册时间: 2011-11-08
文章: 5
离线

本文地址:http://www.panxinet.com/forum/posts/list/471.html
文章摘要:Integer 创建对象在,云起雪飞团委打躬作揖,西至天渊之隔没奈何。

 

java代码:
import java.util.*;
public class A {
    public static void main(String[] args) {
         Integer a = 1;
         Integer b = 2;   
         Integer c = 128;   
         Integer d = 128;
         Integer e = 321;   
         Integer f = 321;
	     Long g=3L;
         System.out.println(System.identityHashCode(c));
         System.out.println(System.identityHashCode(d));

//实际上在我们用Integer a = 数字;来赋值的时候Integer这个类是调用的public static Integer valueOf(int i)这个方法。
//public static Integer valueOf(int i) {
//        if(i >= -128 && i <= IntegerCache.high)
//            return IntegerCache.cache[i + 128];
//        else
//            return new Integer(i);
//    }
//我们来看看ValueOf(int i)的代码,提现最快的斗地主游戏:可以发现他对传入参数i做了一个if判断。在-128<=i<=127的时候是直接用的int原始数据类型,而超出了这个范围则是new了一个对象。我们//知道"=="符号在比较对象的时候是比较的内存地址,而对于原始数据类型是直接比对的数据值。那么这个问题就解决了。
//至于为什么用int型的时候值会在-128<=i<=127范围呢呢?我们知道八位二进制的表示的范围正好就是-128到127。大概就是因为这吧。

         System.out.println(c == d);//true  -128~127是true
         System.out.println(e == f);//false
         System.out.println(c == (a+b));//true
         System.out.println(c.equals(a+b));//true
         System.out.println(g == (a+b));//true
         System.out.println(g.equals(a+b));//false 类型不一样

    }
}

 

这篇文章被编辑了 1 次. 最近一次更新是在 2011-11-08 15:43:47


推广链接
精品视频课程推荐

Java Web开发理论部分视频教程
系统掌握开发实际的Java Web应用所需的理论知识和技能(Servlet、Jsp、JavaBean、TagLib、EL、JSTL、MVC模式、连接池DataSource、JNDI等知识)。涉及项目:在线投票计数、在线人数统计、登录检查、购物车、商品管理、非法字符替换等多个随堂演示小应用。

深入浅出学Shrio视频教程
内容概述:Shiro是目前最热门、最易用、功能超强大的Java权限管理框架,强烈推荐,每个项目都必备的权限管理技术!通过本课程,你将从零开始直到彻底掌握Shiro的相关开发知识,达到可以进行实际项目开发的能力。包括:权限管理基础、Shiro入门、配置、身份认证、授权、Realms、Session管理、和Spring的集成、Web、Cache等众多开发细节技术 技术要点:源码级分析Shiro的授权过程、自定义开发Realm、多个Realms的开发配置、自定义开发AuthenticationStrategy、自定义开发自定义SessionDAO、和Struts2+Spring3的集成(包括修正struts2的bug)、Shiro和SpringMVC+Spring3的集成、包装使用其他的Cache框架、缓存数据同步更新的解决方案等等实际开发中常用的内容

log4j&slf4j基础实战视频教程
学习在java项目中使用log4j、jdk自带的日志框架和slf4j

Ajax+JSON基础实战视频教程
数据校验、Javascript模拟多线程、下拉列表联动、操作XML、AJAX结合JSON的操作、Json-lib的使用

XML基础视频教程
创建规范的XML文档,DTD的作用,并且可以根据要求创建私用的DTD,通过JavaScript解析XML DOM

 
交流首页 » Java
前往:   

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网