首页 > 其他分享 >前端和后端字符串比较的区别

前端和后端字符串比较的区别

时间:2022-12-02 16:11:50浏览次数:68  
标签:console 区别 str3 str2 前端 字符串 true str1

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

标签:console,区别,str3,str2,前端,字符串,true,str1
From: https://www.cnblogs.com/yucu1998/p/16944396.html

相关文章

  • 【动态】前端
    前端【动态】前端UI框架和JavaScript模块,TypeScript是JavaScript+类型标注JavaScript有很多的moduleloader。因为JavaScriptES6之前语言本身没有提供模块......
  • 行式存储和列式存储的区别
    1.什么是行式存储和列式存储?2.行式存储分析?缺点:--行式在读取数据的时候,所查询的目标只涉及少数几项属性,但由于这些目标数据埋藏在各行数据单元中,而行单元又特别大,......
  • InputStream和OutputStream的区别和转换
    InputStream和OutputStream都是流,里面都能存储数据流(字节流或字符流)都代表内存数据,而且都是通过构造方法里传一个参数(比如File对象);它们的区别是:InputStream是将外部数据(......
  • annotate和aggregate的区别
    一.基本区别aggregate:返回使用聚合函数后的字段和值。annotate:在原来模型字段的基础之上添加一个使用了聚合函数的字段二.使用方法classBook(models.Model):......
  • 解决VLC前端遮挡页面元素问题
    说实话也就360浏览器还可以用vlc了,目前是为了播放海康视频流同时绘制报警框,因为对实时性有要求,转码延迟不大好控制因此考虑vlc。反正是针对个别用户的,也不会在公网部署主......
  • linux 中awk命令判断每一行是否匹配指定字符串
     001、[root@pc1test1]#lsa.txt[root@pc1test1]#cata.txt353aa33433aa888[root@pc1test1]#awk'{a=($0~"aa");printa}'a.txt##匹配成......
  • 重要:QA和QC的区别
    来自《术以载道》这本书的不错的论述:质量保证(QA)与质量控制(QC)是经常混淆的两个概念,这两个概念如果不能清晰地辨别,就会涉及公司内关于质量保证活动的职责分配问题,以及质量保......
  • 前端实现网页灰白
    先来看看一些主流网站是如何实现置灰的:BiliBili:淘宝:京东:掘金:可以看到,这些网站实现置灰的方式都完全一样,但都大同小异。本质上都是使用了CSS中的filte......
  • CXF spring jaxws:endpoint jaxws:server 区别 与 关系
    First,theyareallfortheserversideconfiguration.Second,jaxws:endpointiscomingfromJAXWSAPI,anditisusedtoconfiguretheo......
  • react中useRef与createRef的区别(当前react18)
     1、useRef(是hooks一种,一般在函数组件使用)1.1、获取当前dom数据(不推荐,推荐使用受控组件-即使用useState绑定表单元素)     点击look,获取input的数据内容 ......