- 浏览: 575826 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
昨天跟朋友一起吃饭,他说到两个Integer类型值比较是否相等的问题。经理也在这里把java的Integer值比较的问题拿出来说一说。因为在面试的时候这个是经常遇到的问题。
首先给大家看一个例子:
1
public
class
Test
{
2
3 /** */ /**
4 * 关于Integer大小比较问题
5 * @author 经理
6 */
7 public static void main(String[] args) {
8 Integer a = 10 ;
9 Integer b = 10 ;
10 System.out.println( " a==b : " + String.valueOf(a == b));
11 System.out.println( " a.equals(b) : " + String.valueOf(a.equals(b)));
12 }
13 }
14
2
3 /** */ /**
4 * 关于Integer大小比较问题
5 * @author 经理
6 */
7 public static void main(String[] args) {
8 Integer a = 10 ;
9 Integer b = 10 ;
10 System.out.println( " a==b : " + String.valueOf(a == b));
11 System.out.println( " a.equals(b) : " + String.valueOf(a.equals(b)));
12 }
13 }
14
运行一下,在控制台得到的结果是这样的
a
==
b :
true
a.equals(b) : true
a.equals(b) : true
当是当我们变换一下值
1
public
class
Test
{
2
3 /** */ /**
4 * 关于Integer大小比较问题
5 * @author 经理
6 */
7 public static void main(String[] args) {
8 Integer a = 1000 ;
9 Integer b = 1000 ;
10 System.out.println( " a==b : " + String.valueOf(a == b));
11 System.out.println( " a.equals(b) : " + String.valueOf(a.equals(b)));
12 }
13 }
2
3 /** */ /**
4 * 关于Integer大小比较问题
5 * @author 经理
6 */
7 public static void main(String[] args) {
8 Integer a = 1000 ;
9 Integer b = 1000 ;
10 System.out.println( " a==b : " + String.valueOf(a == b));
11 System.out.println( " a.equals(b) : " + String.valueOf(a.equals(b)));
12 }
13 }
运行一下,控制台的结果又是
a
==
b :
false
a.equals(b) : true
a.equals(b) : true
这是什么原因呢?我当时也有点犯糊涂。有点冲动就直接开源码看了。
实际上在我们用Integer
a = 数字;来赋值的时候Integer这个类是调用的public static Integer valueOf(int i)这个方法。
1
public
static
Integer valueOf(
int
i)
{
2 if (i >= - 128 && i <= IntegerCache.high)
3 return IntegerCache.cache[i + 128 ];
4 else
5 return new Integer(i);
6 }
2 if (i >= - 128 && i <= IntegerCache.high)
3 return IntegerCache.cache[i + 128 ];
4 else
5 return new Integer(i);
6 }
我们来看看ValueOf(int
i)的代码,可以发现他对传入参数i做了一个if判断。在-128<=i<=127的时候是直接用的int原始数据类型,而超出了这个范围则是new了一个对象。我们知道"=="符号在比较对象的时候是比较的内存地址,而对于原始数据类型是直接比对的数据值。那么这个问题就解决了。
至于为什么用int型的时候值会在-128<=i<=127范围呢呢?我们知道八位二进制的表示的范围正好就是-128到127。大概就是因为这吧。
把平时出现的问题记录下来,自己就可以一点一点进步了。
有的时候我们要用integer类型的数据比较大小,应该注意下:
1、注意null情况。
2、注意==。
等等。。。
发表评论
-
日期比较
2013-06-13 16:21 1165比较日期: function compareDate( ... -
Arrays.asList详解
2012-09-10 09:52 885Arrays.asList详解 记得以前写过一 ... -
Collections.addAll
2012-09-07 18:04 2323collections用法以及list 简单实例 Colle ... -
string
2012-09-06 17:20 886String a = "ab"; ... -
图片复制
2012-07-05 11:53 1065import java.io.File;import java ... -
thumbnailator 图片缩放
2012-07-04 20:10 1373Thumbnailator是一个用来生成图像缩略图的 J ... -
java File
2012-06-29 13:53 1267直接下载的,整理的很好,这里做个记录,基础的东西都是。 Fi ... -
mysql 时间比较
2012-06-05 19:57 1弱智得问题,分开写 SELECT * FROM bb_ ... -
split
2012-05-23 10:46 1194//String[] idArr = StringUtil ... -
toString
2012-05-14 20:01 998public abstract class ToStringB ... -
io读取操作
2012-03-09 16:18 955public void writeFile(Strin ... -
string[] to map
2012-03-03 17:23 1078public static Map<Inte ... -
tomcat中文问题的解决
2012-03-01 09:55 853第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特 ... -
java方式将汉字转成拼音
2012-02-24 13:02 1058/** * 需要一个开源的jar包pinyin4j-2.5. ... -
System.getProperty(key)
2012-02-15 15:08 1014public static void main(String ... -
CodeFilter
2012-05-22 11:14 833package com.bitbao.cm.common.ut ... -
Integer值比较误区
2012-05-22 11:14 925例子: Integer i1 = 12; I ... -
容易忽略的for循环问题
2012-01-18 15:33 11701、项目中对用户操作的结果进行审核时候,出现一个问题,如果对省 ... -
java实现的加密工具类(支持MD5和SHA)
2012-01-13 16:08 1266版权声明: dtstudy原创文章,转载请注明出处: h ... -
System.nanoTime;
2012-01-13 15:53 1720Java5+ 摩尔定律是一种 ...
相关推荐
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
本文将详细介绍如何将 BigDecimal 类型转换为 Integer 类型,并讨论在转换过程中可能遇到的问题和解决方案。 1. **BigDecimal 的 intValue() 方法** BigDecimal 类提供了一个名为 `intValue()` 的方法,该方法用于...
这个方法通常在你需要使用`Integer`对象的特性(如缓存、比较操作或泛型方法参数)时使用。 在面试或笔试题中,如题目所示,`a = Integer.parseInt("123")`会将字符串"123"解析为`int`类型的值,并赋给变量a,所以a...
此外,`Integer`类还提供了一些实用方法,比如`parseInt()`用于将字符串转换为整数,`toString()`用于将整数转换为字符串,以及`compareTo()`用于比较两个`Integer`对象的大小。 总的来说,`int`适合于需要高性能...
- **比较方法**:如`compareTo(Integer anotherInteger)`用于比较两个`Integer`对象的大小。 - **获取值的方法**:如`intValue()`, `longValue()`, `floatValue()`, `doubleValue()`用于获取`Integer`对象的不同数值...
`GetFileSizeEx`则是更新的版本,它可以处理更大的文件,返回一个`ULARGE_INTEGER`结构,能容纳64位的文件大小。 3. **OpenFile与CloseHandle**: `OpenFile`是打开文件的API函数,返回一个文件句柄,后续的操作...
### Java中Long与Integer比较易犯错误总结 #### 一、引言 在Java编程过程中,经常需要对数值进行比较操作。对于基本数据类型如`int`和`long`,可以直接使用`==`进行比较。然而,当涉及到它们的包装类`Integer`和`...
在编程领域,大整数(Big Integer)是指能够表示超出普通整型变量范围的非常大的数值。在C++中,由于标准库并没有内置大整数类型,因此在处理需要存储和操作大整数的场景时,程序员通常需要自定义一个大整数类。标题...
以下是一些关于大整数库的关键知识点: 1. **数据结构**:大整数库通常使用动态分配的数组来存储数字,数组的大小可以根据需要动态扩展。在`bigint-2010.04.30`版本中,可能会包含一个类,如`BigInt`,它维护一个...
在Java编程语言中,`Integer` 类是 `int` 基本类型的包装类,它提供了许多额外的功能,如比较、格式化等。当我们使用 `Integer.valueOf()` 方法将字符串或整数值转换为 `Integer` 对象时,Java会进行一些优化以提高...
`Fixnum`表示固定大小的整数,通常在不溢出的情况下可以直接进行算术运算。在Ruby 2.4之后,`Fixnum`和`Bignum`合并成一个新的类`Integer`,涵盖了所有整数范围。 现在让我们看看`string_to_integer.rb.txt`文件中...
Java中long类型与Long类型的区别和大小比较详解 在Java中,long类型和Long类型都是用于表示数字的数据类型,但是它们之间存在着一定的区别。long类型是基本数据类型,而Long类型是对象类型,本文将通过示例代码详细...
本文将深入探讨如何定义比较器来比较数组中值的大小,并通过一个具体的示例进行说明。 首先,我们需要了解Java中的Comparator接口。Comparator接口提供了一个方法`compare(T o1, T o2)`,用于比较两个对象的顺序。...
标签"_large_integer integer加减乘除 visual_c"表明了这个项目是关于大整数计算的,而且是使用C++作为编程语言。从压缩包子文件的文件名称列表"大整数"来看,可能包含了实现这些功能的源代码文件,可能是以C++类的...
在编程领域,比较大小是日常任务之一,无论是在算法实现、数据处理还是逻辑判断中都不可或缺。本主题将深入探讨如何在Java编程语言中比较两个数值(最大值和最小值)的大小。Java提供了多种方法来执行这种比较,包括...
在VB6.0编程环境中,比较大小是基本的操作,它涉及到条件判断和逻辑运算。VB6.0(Visual Basic 6.0)是Microsoft推出的一种可视化编程工具,它支持多种数据类型,包括数值型、字符串型等,因此比较操作可以应用在...
### 高斯整数(Gaussian Integer) 高斯整数是在复数域中对整数概念的一种扩展,由数学家卡尔·弗里德里希·高斯引入。它们在数论中有着重要的应用,并且与传统的整数有诸多相似之处。高斯整数集记为 \(\mathbb{Z}[i]...
本文将详细探讨如何使用易语言来获取文件夹的大小,特别是在处理大于4GB的大文件时所遇到的问题及解决方案。 首先,我们需要了解标题中的“非FSO对象”指的是不依赖于FileSystemObject(FSO)对象的方法。FSO是...
在计算机科学中,长整数(Long Integer)处理是针对那些超出普通整型变量范围的大整数进行计算的需求。...掌握这种技术可以为解决实际问题提供强大的工具,特别是在需要进行高效大整数运算的场景下。
#### 2.2 使用Integer类比较int类型 对于int类型的比较,可以直接使用关系运算符(<, >, ==)进行比较。但是,在需要与String类型进行比较时,通常会将int类型转换为String类型,或者相反地,将String类型转换为int...