标签:isp 通过 编写 启动 http 参数 reader down 引用
Java采用UTF-16编码作为内码,也就是说在JVM内部,文本是用16位码元序列表示的,常用的文本就是字符(char)和字符串(String)字面常量的内容。注:UTF-16是Unicode字符集的一种编码方案。
Java字符和字符串存在于以下几个地方:
Java编译器需要正确的读取源码,消除编码差异,然后编译成UTF-8编码的Class文件。比如javac,默认情况下它会取操作系统的编码,可以使用参数-encoding指定源码文件的字符编码。JVM加载Class文件,把其中的字符或字符串转成UTF-16编码序列。
Java中涉及编码的类主要有String
和IO包中的字节字符转换流。String.getBytes()
使用JVM启动时获得的字符集来编码字符串,也可以使用getBytes(charset)
指定字符集;字节就是单纯的01,但转成字符时就要有字符集的概念了,IO包中的InputStreamReader
和OutputStreamWriter
,是字节流和字符流的桥梁,默认使用JVM默认字符集对字符解码和编码,可以通过构造方法指定字符集。
String str = "创";
str.getBytes("UTF-8"); // 3字节,0xE5889B
str.getBytes("UTF-16"); // 2字节,0x521B
InputStreamReader(InputStream, charset);
OutputStreamWriter(OutputStream, charset);
Java编程语言主要有以下几种字符:
String 名字="cxcoder";
() {} [] ; , . ... @
\b \t \n \f \r \" \‘ \\
不使用Unicode转义字符也能表示一些特殊字符String hello = "Hello", lo = "lo";
System out print(hello == "Hello"); // true 一个字符串字面常量总是引用String的同一个实例
System out print(hello == ("Hel" +"lo")): // true 常量表达式,编译时得出结果,当做字面常量对待
System out print(hello == ("Hel"+1o)); // false 运行时连接运算产生新String对象
System out println(hell0 == ("Hel"+lo).intern()); // true 查找常量池是否有此字符串,有返回,无放进去,之前已定义intern返回同一个String实例
null看起来是关键字,但从技术上讲,它仅仅是空字面常量,表示空引用。像true/false
也只是布尔字面常量。
标签:isp 通过 编写 启动 http 参数 reader down 引用
原文地址:http://www.cnblogs.com/cxcoder/p/6474803.html