前端和后端字符串比较的区别(前端字符串的方法)

  本篇文章为你整理了前端和后端字符串比较的区别(前端字符串的方法)的详细内容,包含有前端和后端字符串比较的区别是 前端字符串的方法 前端后端区分 ja∨a前端与后端主要区别 前端和后端字符串比较的区别,希望能帮助你了解 前端和后端字符串比较的区别。

  js里面引入了严格执行的=== 符号,两个等号和三个等号的区别在于
 

  1,""表示 等同,会在比较之前进行类型转换,将等号两边转换成相同的类型进行比较,就算类型不同,只要值一样,就可以
 

  2,"="表示相等,不会进行类型转换

  

 var str3=123;

 

   console.log(str1==str3);//true

   console.log(str1===str3);//false

  

 

  进行字符串截取的时候和上面的相同,不会出现Java里面的截取之后不相等的情况

  

 var str4=str2.slice(0,2);

 

   console.log(str4=="12");

   console.log(str4==="12")

  

 

  2,Java

  关于字符串常量池可以先看这边文章:Java中的字符串常量池详细介绍
 

  1,""是属于运算符号,等号两边是基本数据类型的时候,仅仅是比较值的异同,当等号两边是字符串等引用类型的时候,就会比较引用类型的地址,只有地址相同的时候才会相等
 

  2,equals是方法,比较的双方只能是引用类型,equals源码是通过 比较内存地址的,一般的类都会重写equals方法,比较两个的值,String里面就是这样

  

 String str1="1234";

 

   String str2="1234";

   System.out.println(str1==str2);//true

   System.out.println(str1.equals(str2));//true

  

 

  使用字面常量的形式创建字符串时候,会先扫描常量池,例子中的str2创建的时候就会扫描,不会重复创建.

  

 String str3=str2.substring(0,2);//字符串截取

 

   System.out.println(str3=="12");//false

   System.out.println(str3.equals("12"));//true

  

 

  字符串截取,看源码的时候 发现其实是使用new String 创建的,创建了对象没有加入常量池,所以内存地址不相同.==比较的结果是false
 

  如果将截取的字符串加入常量池,再次比较.就会为true了

  

 String str3=str2.substring(0,2).intern();//使用intern(),字符串加入常量池

 

   System.out.println(str3=="12");//true

   System.out.println(str3.equals("12"));//true

 

  以上就是前端和后端字符串比较的区别(前端字符串的方法)的详细内容,想要了解更多 前端和后端字符串比较的区别的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: