首页IT科技前端和后端的分界(前端和后端字符串比较的区别)

前端和后端的分界(前端和后端字符串比较的区别)

时间2025-06-02 07:27:41分类IT科技浏览3828
导读:1,javaSript var str1="123";...

1,javaSript

var str1="123"; var str2="123"; console.log(str1==str2);//true console.log(str1===str2);//true

这个没什么要说的

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
帝国cms建站实例教程(帝国cms 批量替换字段值使用说明) 2021手机赚钱平台正规(正规网络手机**赚钱平台有哪些-整理出7个可靠在线**副业,有手机电脑就能赚收入(有用收藏))