String str = "abc";
String str1 = "abc";
System.out.println(str == str1); //true 从常量的缓冲池里面拿出来
System.out.println(judge("")); //true
System.out.println( judge(new String("")) );//false 牛客给的会不会是这个
System.out.println( new String("").equals("") );//true }
public static boolean judge(String str){
if(str == "")
return true;
else
return false;
}
凡是代码中出现"abddf" 双引号这些的 都是常量池 ,直接拿 == 比较
hashCode在JAVA中,代表了对象的一种特征。比如任何对象都有toString方法一样
只要比较2个的哈希码(是一个int数字)不同则这肯定是不同的对象。反过来不一定
同一个对象有相同的hashcode值  逆否:hashcode不同,对象不同, 若hashcode同了,然后再判断内容
哈希码是一种数据结构算法,在JAVA中,常见的哈希码算法获取到的哈希码具体值是怎么获取到的呢?

  相同对象放到的是一个对象池子里面, 里面的取出来的对象的hashcode肯定是同 
String a ="abcd";
String b = "abcd";
System.out.println(a.hashCode() +" " + b.hashCode());
  2987074  2987074

1.在String类中的hashCode是根据String类中包含的字符串获取的,根据哈希算法获取到一个哈希码,那么只要我的字符内容是相等的,我的哈希码也是相同的。


        Integer a =11;
Integer b = 11;
System.out.println(b.hashCode()==a.hashCode()); //true

Integer a =12345;
System.out.println(a.hashCode()); // 输出 12345

2.Integer类中的hashCode和String是一样的,也是根据类中包含的值去生成的哈希码。两个相同大小的integer值,那么它的hashCode也是相等的


3.Object类中的hashCode则和之前的不一样了,他是根据对象的内存地址经过哈希算法之后获取到的哈希码,由于每个对象的内存地址不相同,所以hashCode是一般不同的。


最新文章

  1. html之长文本框置顶
  2. 了解 JS 原型
  3. 菜鸟学自动化测试(一)---- selenium IDE
  4. yii-basic-app-2.0.5/basic/config/web.php
  5. WIN8+VS2013编写发布WCF之三(调用)
  6. 如果有两个list<Object>只取出两个中不重复的(还可以优化,这里计数器没做好,暂时使用第三变量)
  7. Java学习之位运算符
  8. OC中的copy
  9. Linux中git的使用
  10. CSS中设置border:none和border:0的区别
  11. jQuery事件处理了解一下
  12. Git:三、工作原理
  13. Batch Normalization的解释
  14. nohup 写法
  15. iOS AVAudioSession 配置(录音完声音变小问题)
  16. vscode Git:failed to execute git
  17. 使用include重用布局
  18. unity3d之GUI
  19. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
  20. sap server笔记

热门文章

  1. OO第四次课程总结分析
  2. C# 表达式树学习笔记
  3. CSS特性
  4. 3.5 C++间接继承
  5. spin lock自旋锁 双链表操作(多线程安全)(Ring0)
  6. .NET界面控件DevExpress全新发布v18.2.6|附下载
  7. DevExpress ASP.NET v18.2新功能详解(二)
  8. DevExpress WinForms v18.2新版亮点(一)
  9. Android开发 ---如何操作资源目录中的资源文件2
  10. dubbo-admin 无法支持JDK1.8