测试代码如下:
public class TestString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1="ab";
String str2="a"+"b";
//比较一
System.out.println(str1==str2);//结果true
//比较二
System.out.println(new String("ab")==new String("ab"));//结果false;
// 且发现"ab".hashcode,new String("ab").hashcode都相等
System.out.println(str1.hashCode());//结果3015
System.out.println(str2.hashCode());//结果3015
System.out.println(new String("ab").hashCode());//结果3015
}
}
疑问:
如果==比较的是内存地址,很明显str1和str2的内存地址不一样
如果==比较的是内容,很明显比较二中的内容一致,
如果==比较的是hashcode,以上的hashcode都相等。
==到底判断的是什么?
分享到:
相关推荐
### Java的String用法类型总结 #### 一、概述 在Java编程语言中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。由于字符串在实际开发中的重要性和高频使用特性,深入理解并掌握其用法至关重要。...
本文将深入探讨如何使用C#语言编写一个Windows服务,该服务能够获取U盘的盘符、序列号以及其他相关硬件信息,并基于数据库进行合法性判断。这在数据安全和设备管理方面具有重要意义。 首先,我们要了解C#如何获取...
String类重写了equals()方法,改变了这些类型对象相等的原则,即判断对象是否相等依据的原则为判断二者的内容是否相等。 现在,我们来了解String类的本质。String类的本质是字符数组char[],其次String类是final的...
在JavaScript编程语言中,正确地判断一个变量是否为`undefined`是至关重要的,尤其是在处理可能存在未定义值的场景。在给定的标题和描述中,我们关注的核心知识点是如何避免在检查`undefined`时误判,特别是区分`...
在编程领域,判断一个字符串或字符串中的一个字符是否为数字类型是常见的...综上所述,判断字符串或字符是否为数字类型,可以依据具体编程语言选择合适的方法,同时要注意处理潜在的安全风险,确保程序的稳定性和效率。
在VC++(Visual C++)开发环境中,实现对常见文件类型的判断是一项常见的需求,这有助于程序根据文件扩展名或文件内容来执行特定的操作。本文将深入探讨如何在VC++中进行此类判断,主要关注文件扩展名的识别以及可能...
用户状态判断是指在网站或应用中,系统依据用户的登录状态、权限等级、活动历史等数据来决定用户可以访问哪些功能或页面的过程。这不仅涉及到安全性和用户体验,还关系到资源分配和个性化服务的提供。 ### 实现方式...
compareTo()方法的返回值是int类型,判断字符串大小的依据是根据它们在字典中的顺序决定的。如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典...
这为服务器端提供了判断依据。 2. **`X-Requested-With`标头**:这是最常用的方法之一来识别一个请求是否由Ajax发起。 3. **其他HTTP请求头分析**:除了`X-Requested-With`外,还有其他请求头可以辅助判断。 4. **...
建立对象判断是否相同的依据。 import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs =...
Java提供了多种方式来比较字符串,确保我们能精确地判断两个字符串是否相等或按某种顺序排列。下面将详细介绍Java中字符串的比较方法。 1. **`==` 操作符** 在Java中,基础数据类型如int、char可以直接使用`==`来...
正确填写票据和结算凭证的基本规定 银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计...
总结来说,Java中判断IP地址为内网还是公网的方法主要是通过对IP地址的字节表示进行比较,依据TCP/IP协议中的私有IP地址范围来进行判断。这种方法适用于大部分情况,但在某些特定网络环境中,如使用特殊的私有网络...
然而,因为这不是一个强制性的标准,所以它不应该作为唯一的判断依据。在实际开发中,可能需要结合其他逻辑来更准确地进行判断。同时,在前端代码中操作和检测HTTP请求头时,我们需要留意浏览器兼容性和安全性问题,...
在JavaScript中,类型判断是一个基础且重要的...在实际应用中,开发者可以依据具体需求来决定使用`typeof`进行类型判断还是直接使用严格比较。不过,当涉及到未声明的变量时,应优先考虑使用`typeof`来避免运行时错误。
- 如:`String s1 = new String("abc");`,其中`"abc"`是字符串字面量,存储在常量池中;`new String("abc")`则是新创建的对象,存储在堆中,并且该对象引用指向常量池中的`"abc"`。 - 对于数组等复合类型,也通过...
Chrome浏览器独有的特征可以提供更可靠的判断依据。例如,Chrome特有的全局对象window.google和window.chrome。通过检查这些对象是否存在以及它们的属性,可以进行更精确的判断。 ```javascript var isChrome = ...
对于闰月的判断,库可能会依据特定的农历规则,比如润月通常是农历的正月、二月、五月、七月、八月、十月和腊月,但具体是否闰月还需要看阳历的年份。 为了实现这样的功能,开发者需要对农历和公历之间的关系有深入...
- **商品类实现**:该类实现了`Comparable`接口,通过重写`compareTo`方法实现了商品对象之间的比较,主要依据商品ID进行排序。 - **成员变量**:定义了商品的基本属性如ID、名称、价格和数量。 - **构造函数**:...
该标准主要依据是源代码文件的后缀名以及源代码中的关键词出现次数。 判断源代码文件的类型条件主要有两个方面: 1. 文件后缀名:不同的源代码类型对应不同的文件后缀名,例如C语言的源代码文件通常以`.c`或`.h`...