首先很重要一点,转义字符是供编译器识别的。当java文件编译成.class文件后就不存在转义一说了。
比如,定义一个字符串String a值为双引号“。由于java的语法规定,字符串字面量是要由一对双引号括起来。如果这样定义String a = " " ";编译器肯定识别a为空字符串,后面不成对的双引号还会报错。这时候需要一个转义字符(java选择了\)来标识中间的双引号是字符串值,而不是语法中用来包裹字符串的特殊字符。而编译后的class文件保存值“到常量池中,不存在歧义的问题(具体可以看关于class文件讲解的文章)。
一。八进制转义序列:用于表示ascii中的字符
规则: \+1到3位8进制数字;范围'\000'~'\177'
编译器是会自动识别转义符号\后可用的数字。
比如:"\402" 超过了最大值177,编译器就会识别为改字符串为空格加上一个字符”2“,再比如”\092",9不在8进制数字中,编译器就是识别为\0和字符“92”
二。unicode转义字符:用于表示unicode字符集中的字符
规则:\u+4个十六进制数字;范围0~65535
必须要写全4个数字,即只能写\u0000而不能写\u0
三。特殊字符:单引号'、双引号"、反斜线\
java字符串定义中,双引号必须转义,即必须这样写:"\"";而单引号可不转义,即可以这样写" ' ";
相同的字符定义中,单引号必须转义,' \' ';双引号可不转义' " ';
反斜线不管作为字符还是字符串的值都需转义
四。控制字符
\r回车
\n换行
\f走纸换页
\t横向挑格
\b退格
这里需要注意,unicode转义字符和其他转义类型,转义的位置不同。如下句话说的:编译器在将程序解析成各种符号之前,先将Unicode转义字符转换成为它们所表示的字符。可以理解为编译器先将源文件中unicode转义字符转成对应字符再解析代码意义。也就是unicode转义字符只是字符的另一种写法,即\u0022(双引号)只改变u0022的字面含义,不改变它所代表的双引号的代码含义。
比如:
System.out.println("\u0022.length()+\u0022".length());
输出结果是0,输出内容等同"".length()+"".length()
System.out.println("\42.length()+\42".length()); System.out.println("\".length()+\"".length());
输出结果都是12
再比如
System.out.println("\42"); 输出“ System.out.println("\""); 输出” System.out.println("\u0022"); 报“未结束字符串”错误
相关推荐
以下详细介绍了Java中转义字符的类型和它们的应用。 1. 八进制转义序列: 在Java中,八进制转义序列由反斜线(\)后跟1至3位八进制数字构成,其表示的字符编码范围从'\000'到'\377'。例如,'\101'代表大写字母'A',...
- **题目描述**:考察考生对于Java中转义字符的理解。 - **难度系数**:较高 - **解析**:在Java中,可以通过在字符串前面添加反斜杠`\`来阻止字符串中的转义字符被处理。例如,`\"`表示一个双引号字符,而非字符串...
### Java转义字符详解 #### 一、八进制转义序列 在Java中,八进制转义序列是...以上内容涵盖了Java中转义字符的基础知识及应用场景,对于Java编程初学者来说,理解和掌握这些转义字符对于编写正确的代码至关重要。
以下是Java中转义字符的详细解释: 1. **八进制转义序列**:这种类型转义序列以反斜线(\)开头,后跟1到3位的八进制数字,范围从`\000`到`\377`。例如,`\0`代表空字符。 2. **Unicode转义字符**:这种转义序列由...
以下是一个示例函数,展示了如何在Java中转义正则表达式的特殊字符: ```java import org.apache.commons.lang3.StringUtils; /** * 转义正则特殊字符($()*+.[]?\^{},|) * * @param keyword * @return */ ...
在Java编程语言中,转义字符用于表示...通过了解和认识到Java中转义字符的这种行为,开发者可以更安全地编写代码,避免因转义字符使用不当而导致的bug,同时确保代码在不同的环境和编译器下都能保持一致性和正确性。
### Java中转义字符的处理 Java在处理字符串时,会自动解析转义字符,将其转换成对应的字符。然而,在某些情况下,转义字符的处理可能会导致意料之外的结果,尤其是在涉及Unicode转义字符时。例如,下面的代码片段...
Java中转换十进制为二进制主要通过以下两种方式: 1. **位运算**: Java的位运算符可以用来手动转换十进制数。例如,你可以使用`>>>`运算符进行无符号右移,每次移位都将最高位补0,直到达到所需的二进制形式。...
总结来说,Java中转换十进制整数到二进制数涉及了位运算、字符串操作以及内置的进制转换函数。根据实际需求,可以选择适合的方法进行转换。在给定的压缩包文件中,`main.java`可能是实现这一功能的源代码,而`README...
- 注意:需考虑符号位和溢出问题。 - **多线程优化**: - **减少锁的竞争**:尽量减少临界区的范围,避免不必要的同步操作。 - **合理利用缓存**:使用线程本地存储(Thread Local Storage, TLS)来减少线程间的...
在这个chat聊天例子程序中,开发者可能使用了诸如Python、Java、JavaScript或C#等编程语言,配合网络库如socket.io、asyncio、Netty或System.Net.Sockets来处理网络通信。数据库也可能被用来存储用户信息、历史聊天...
传输大多数情况不需要经服务器中转而直接发往接收者所使用的机器,传输速度更快。 而且因服务器仅仅只是起着维护用户状态列表的功能,因此占用资源极少, 可允许同时在线的人数就越多,对系统的影响也最小。 可以...
综上所述,JSP中处理URL传递中文参数的方法主要涉及在前端使用JavaScript的encodeURI()或encodeURIComponent()函数进行编码,并在后端使用Java的URLDecoder.decode()函数进行解码。通过这种方式,可以确保URL中传递...
这有点向java中的import语句,多数类在使用之前需要引入,但引入了类并不意味着这些在使用,每个creator和converter需要有个id属性来允许以后进行引用. 配置文件的allow部分定义哪些类可以建立和转换,每个被准许的类都...
6. **Iterator接口** - 在Java中,使用Iterator遍历集合时,判断是否存在下一个元素应使用hasNext()方法。 7. **CPU与外存交互** - 外存中的数据不能直接进入CPU处理,需要经过内存的中转,因为CPU只能直接访问内存...
- **Shift+F1**:要打开编辑器光标字符处使用的类或者方法 Java 文档的浏览器。打开文档查看当前类或方法的说明。 - **Ctrl+W**:可以选择单词继而语句继而行继而函数。逐步扩大选择范围。 - **Ctrl+Shift+W**:取消...
21. 赋值语句:在某些编程语言中,如Fortran,可以使用`STORE`语句赋值,但常见如C、Java等语言中,正确的赋值语句是`X=8, Y=9`。 22. 数据库应用系统设计:数据库应用系统设计是整个系统的核心,包括数据库结构...
6. `SGN` 函数返回参数的符号,负数返回 -1,正数返回 1,0 返回 0。因此 `SGN(-26)` 返回 -1,输出结果是 C。 7. VBA(Visual Basic for Applications)变量的作用范围包括模块级、窗体级和局部级。正确答案是 D,...
服务器在其中起到中转的作用,接收客户端上传的文件并转发给指定的接收者。文件传输需要考虑到文件大小、分块传输、错误检测与恢复等技术细节,确保文件能够完整无误地到达目的地。 私聊和公聊是聊天程序的基本功能...
- **Command + Control + T**:在 Objective-C 中转换为 Objective-C 2.0 语法。 #### 文本操作 - **Command + T**:调整字体大小。 - **Command + [**、**Command + ]**:调整缩进。 - **Command + {**、**...