==和equals在实际项目中的问题

==和equals的规则

  • 基本数据类型 :byte,short,char,int,long,float,double,boolean。使用==,比较的是值
  • 引用数据类型:用==比较的时候,比较的是在内存中的存放地址
  • 除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为每new一次,都会重新开辟堆内存空间

==和equals在实际项目中的问题

  • 定义了string s = s;然后又通过前端传的vo去getS()
  • 用==比较就会出现问题,在大概率的情况下会为false

原因

  • vo当中存储的是值得引用,也就是值所指向的地址,在地址相比较的时候就会出现false

解决方法

  • 使用equals,equals是把string拆成字符数组进行一位位的比较,所以不会出错
  • 在工作之中尽量不要使用==或者!=,因为我们有时候会不知道或者不注意就会出现错误