每天学习点--------第一天(2017-09-08)

java中String类学习 api所在软件包(java.lang.String)

一、java中equals和CompareTo的区别

  1、== :基本数据类型都用这个比较,java中包含8种基本数据类型,分别是 boolean、byte、char、short、int、float、double、long

     是变量值得比较,返回true和false

               注意:String不是基本数据类型,它是个类

    而对于下面的情况:

    

 ==操作符并不涉及对象内容的比较。若要对对象内容进行比较,则用equals. 如果 在本例中,a.equals(b)则返回是一个true值。总而言之,==是对对象地址的比较,而equals是对对象内容的比较。对于基本数据类型,一般用==,而对于字符串的比较,一般用equals

2、对于CompareTo().在api中,java.lang包下面的基本数据类型的封装类都提供了该方法,如Integer、Float、Byte、Short、Character等等 可以比较两个字符串并且得到顺序.

  在包装类类型中,CompareTo是比较两个Character对象

  在Booleanl中,是用boolean的实例与其他实例进行比较

  在String中,则是按照字典顺序进行比较,返回的值是一个int类型

运行程序的结果是 

false

true

s1 is equals s2

true

这里要说明一下,s1对象赋值给s1对象之后,s1和s2的引用其实是指向了内存中的同一个位置,所以在进行比较结果就是true

3、equals() 用于引用数据类型(除了上面的8个,都是引用数据类型,包括封装类,Object子类等), 比较是否指向相同的对象

  例如 String str = "abc";
   等效于: char data[] = {'a', 'b', 'c'};  String str = new String(data); 
  就是str 指向了  new String(data) 这个对象. 如果再有其他变量也指向这个对象,他们比较的结果就返回true;
  由于此方法在Object里, 所以它有很多重写, 具体要看说明;
  另外``` equalsIgnoreCase()可以忽略大小写;
多看看底层源码的实现。有助于代码的提升
原文地址:https://www.cnblogs.com/hanxue112253/p/7495465.html