`

封装类比较出现的问题

 
阅读更多

       Java为了性能提供了一个类似缓存的东西,不仅仅是Integer,Long也有同样的缓存,在内存中定义了一个长度为 255的对象数组,装箱之前先比较一下,如果是在-128-127范围内就直接取,所以只要是-128~127之间的取的都是一个对象,是true了,-128~127之外的就会重新new对象。

public class IntegerTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Integer i1 = 10;
		Integer i2 = 10;
		System.out.println(i1 == i2); // true

		//直接生成新的对象,不会从在缓存中获取
		Integer i3 = new Integer(10);
		Integer i4 = new Integer(10);
		System.out.println(i3 == i4); // false

		Integer i5 = 0;
		System.out.println(i1 == i2 + i5);// true
		//在i4+i5运算前,先进行了拆箱操作,所以比较的是内容
		System.out.println(i3 == i4 + i5);// true

		Integer i6 = 128;
		Integer i7 = 128;
		System.out.println(i6 == i7); // false
		Integer i8 = -129;
		Integer i9 = -129;
		System.out.println(i8 == i9); // false

	}

}
 
分享到:
评论

相关推荐

    C# 海康威视 封装类 HCNetSDK

    4. **线程安全**:由于视频监控系统通常涉及到多线程操作,开发者应关注封装类是否考虑了线程安全问题,以防止并发访问时出现数据冲突。 5. **性能优化**:封装类可能已经进行了性能优化,但根据具体应用环境,可能...

    word操作封装类

    7. **错误处理**:良好的封装类会包含异常处理机制,确保在出现问题时能够优雅地捕获和处理错误。 8. **并发和多线程支持**:在处理大量文档时,类可能需要支持多线程,以提高性能并避免阻塞主线程。 开发这样一个...

    好用的mysql封装类

    4. 错误处理:捕获并处理数据库操作过程中可能出现的错误,如网络问题、语法错误、权限问题等,并提供相应的错误信息。 5.事务处理:支持开始、提交和回滚事务,确保数据的一致性和完整性。这对于多条SQL语句的操作...

    C#中oracle连接数据库的封装类

    在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类,用于简化与Oracle数据库的交互。这种封装可以提高代码的可读性和复用性,减少直接处理...

    很好用的数据库访问封装类

    7. **线程安全**:如果设计得当,这个类还应考虑多线程环境下的安全性,确保并发访问时不会出现问题。 总之,这个数据库访问封装类是一个强大的工具,能够帮助开发者快速、安全地处理数据库操作,无论他们正在使用...

    Winsock API封装类(37KB)

    因此,出现了各种封装类,将这些复杂的API调用包装成更易于理解和使用的对象或函数。 这个37KB的压缩包很可能包含了一个C++实现的Winsock API封装类,使得开发者能够更方便地进行网络编程。C++是一种强大的面向对象...

    OTL访问Oracle的封装类

    考虑到数据库操作可能出现的异常情况,封装类应包含适当的错误处理和异常捕获机制,以确保在出现问题时能优雅地处理,避免数据丢失或程序崩溃。 综上所述,"OTL访问Oracle的封装类"是一个增强型的数据库访问解决...

    c#全部数据操作的封装类

    8. **错误处理和日志记录**:为了调试和问题追踪,封装类会捕获并记录可能出现的异常,有时还会提供错误信息的友好展示。 这个名为"DBUtility"的类,可能是上述功能的综合实现,旨在简化开发人员的数据库操作,使...

    省、市、地区联动选择JS封装类

    7. **兼容性**:考虑到不同浏览器对JS的支持程度,这个封装类应该已经处理了跨浏览器的兼容问题,确保在主流浏览器上都能正常工作。 8. **可配置性**:为了适应不同的项目需求,组件可能允许开发者自定义某些属性,...

    C# socket封装类和组件含例程全部开源

    本资源“C# socket封装类和组件含例程全部开源”提供了一套全面且强大的C# Socket封装,旨在简化开发过程,提高代码的可读性和可维护性。以下是对这个开源项目的详细解析: 首先,Socket是TCP/IP协议族的基本组成...

    一个简单的ADO封装类

    4. **错误处理**:封装类通常会包含错误处理机制,当数据库操作出现错误时,能捕获并报告错误信息,方便调试和问题定位。 5. **资源管理**:自动管理数据库连接和命令对象的生命周期,例如使用完毕后自动关闭连接,...

    mysql封装类

    MySQL封装类是数据库编程中常用的一种技术,它将MySQL数据库的操作进行抽象和封装,以便于在C++程序中更方便地进行数据存取。这里提到的`mysql c 封装类`显然是一种针对MySQL数据库的C++类库,旨在简化数据库交互的...

    c++注册表操作封装类

    同样,封装类会处理权限问题和其他可能出现的错误。 3. **读取值(Read Value)**:封装RegQueryValueEx,根据键和值名读取不同类型的注册表值,如字符串、DWORD、二进制数据等。类应该能处理不同类型的数据,并将...

    php数据库操作封装类.zip

    在这个构造函数中,我们传递了数据库服务器的主机名、用户名、密码和数据库名,然后使用`PDO`创建了一个新的数据库连接,并设置错误模式为异常,以便在出现问题时能够及时捕获。 其次,封装类可能会包含一系列方法...

    C# PCSC 封装类

    5. **线程安全(Thread Safety)**:考虑到多线程环境,封装类可能需要实现线程安全的机制,以避免并发访问导致的问题。 6. **示例代码(Sample Code)**:为了帮助开发者快速上手,封装类可能附带一些示例代码,...

    数据库操作、访问封装类

    7. **异常处理**:封装类应能捕获和处理数据库操作过程中可能出现的异常,如网络问题、权限问题或SQL语法错误。 在CSDN博主MingoJiang的博客中,他可能详细介绍了如何实现这些功能,包括具体的代码示例和注意事项。...

    封装串口类VC++

    本文将详细解析"封装串口类VC++"这一主题,包括串口的基本概念、串口类的设计原理以及如何实现串口的初始化、设置功能和数据的读写操作。 首先,串口,即串行接口,是一种通信接口,通过串行方式传输数据。常见的...

    VC 操作Excel的封装类

    8. **资源释放**:为避免Excel进程不退出的问题,封装类需要确保在完成所有操作后,正确关闭和释放所有打开的资源,如关闭工作簿、释放对象指针等,这通常通过`Quit`方法和`Release`接口实现。 9. **代码复用和扩展...

    ADO的封装类(完整很好用)

    8. **线程安全**:在多线程环境中,封装类需要考虑线程安全问题,确保不同线程间对同一数据库资源的访问不会冲突。 9. **异步操作**:在某些场景下,封装类可能提供了异步执行SQL的能力,允许在等待数据库响应的...

    Windows 内存映像文件封装类

    3. **数据访问**:封装类可能会提供安全的访问接口,使得程序员可以像访问普通数组一样操作内存映像文件,同时处理可能出现的异常和错误。 4. **容错处理**:在封装类中,错误处理是关键部分。当文件操作或内存映射...

Global site tag (gtag.js) - Google Analytics