1、作为盘符路径分隔符
①在windows操作系统中,文件路径的分隔符是反斜杠(“\”)
例如: D:\red\ant(写成两个反斜杠的目的就是为了防止转义)
②在linux操作系统中,文件的分隔符是斜杠(“/”)
,例如:/opt/red/ant(这种路径在windows下也是识别的,因此作为通用表示方式。但是也存在一个弊端:就是文件夹命名的空格问题,windows用这种方式不识别。)
像这种带有空格的盘符,“/”在windows下就无法表示,只能避免。
③由于web遵循unix命名,所以在网址(URL)中,/表示目录。
【日常的开发中考虑其安全性,大部分把web应用都部署在linux环境中。我们可以直接使用File.separator去让JVM自动的选择斜杠还是反斜杠,但是排查问题就免不了使用正反斜杠了】
2、网络协议
④//一般用于网络协议中,比如最常用的HTTP://就是超文本传输协议,//一般都用协议名+冒号+//表示,如FTP:// MMS://等等。
⑤\一般用于局域网中计算机之间的互访,也就是说它后面加一个IP或者机器名,可以访问另一台机器的共享文件。
3、转义
⑥所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。
而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思。
【图片来自百度百科】
4、执行参数
⑦windows 用反斜杠(“\”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参数。
例如:
cd %SystemDrive%
dir /s /b shell32.dll
【既然 DOS 这边斜杠被占用了,只好找一个最接近的。那就是它了。而在 UNIX 环境中,我们用减号(“-”)和双减号(“--”)表示命令行参数。】
Windows 内核在处理路径时确实可以同时支持斜杠和反斜杠。很多时候我们看到用斜杠时出错,是因为应用程序层面的原因。比如 cmd.exe 就不支持用斜杠表示路径,而PowerShell.exe 支持,也正因为这个原因,PowerShell 开始转而使用减号作为命令行参数的起始符。
5、java与正则
⑧Java语言中,斜杠“/”没有特殊含义,一个斜杠“/”只是表示字符‘/‘,两个“//”表示注释标记。
⑨java语言中反斜杠“\”表示它和紧跟着它的那个字符构成转义字符(前面第三条提到的转义)。
⑩正则表达式中解析器现将"\\"视为转义字符转为"\",接着再次转换将"\\"转为"\"(现在才是字符,之前是转义字符)。因此表示"\\",在正则中需要"\\\\\\\\"。【没想到这里也转义了,因此我写的时候敲了16个】