Java程序设计 Java程序
设计 精通
常用类编程
学习目标
System类的使用 System类的使用 字符串处理机制, 字符串处理机制,掌握字符串的运算 掌握日期和时间, 掌握日期和时间,以及格式化日期的应用 理解正则表达式,能够完成简单的正则表达式的 理解正则表达式, 设计和应用 理解并掌握观察者模式 能够利用不同的方法灵活完成随机数值的生成 理解和掌握反射和代理模式的编程
11.1 System
System
System类位于java.lang包下面, System类位于java.lang包下面, 凡是此包下面 类位于java.lang包下面 的类可以在程序中直接引用无需显式用import import加 的类可以在程序中直接引用无需显式用import加 因为JVM缺省就加载了该包下面的所有类。 JVM缺省就加载了该包下面的所有类 载,因为JVM缺省就加载了该包下面的所有类。
System类(cont.) System类
static PrintStream err static InputStream in static PrintStream out arraycopy() “标准”错误输出流。默认是显示器 标准”错误输出流。 标准 “标准”输入流。默认是键盘 标准”输入流。 标准 “标准”输出流。默认是显示器 标准”输出流。 标准 指定源数组中复制一个数组,复制从指定的位置开始, 指定源数组中复制一个数组,复制从指定的位置开始, 到目标数组的指定位置结束。 到目标数组的指定位置结束。 确定当前的系统属性。 确定当前的系统属性。 参数指定的系统库。 加载由 libname 参数指定的
系统库。将库名映射到实际 系统库的方法取决于系统 返回以毫秒为单位的当前时间
getProperties()
loadLibrary(String libname)
currentTimeMillis ()
新分配“标准”错误输出流。 setErr(PrintStream err) 新分配“标准”错误输出流。 setIn(InputStream in) 重新分配“标准”输入流。 重新分配“标准”输入流。
重新分配“标准”输出流。 setOut(PrintStream out) 重新分配“标准”输出流。
11.2 String与StringBuffer String与
字符串常量
是一个用双引号( ) 是一个用双引号(“”)括起来的字符序列 编译器会为每一个字符串常量创建对象。另外, 编译器会为每一个字符串常量创建对象。另外,字符串常 量中可以包含一些不能从键盘上输入的字符, 量中可以包含一些不能从键盘上输入的字符,这涉及到字 符转义。例如: 符转义。例如: "This is a \u03c0" 实际上就是 "This is a π" 另外,还需要提醒注意的是: 另外,还需要提醒注意的是:字符串中的所有字符都是 Unicode字符 所以每个字符均占两个字节。 字符, Unicode字符,所以每个字符均占两个字节。
11.2.2字符串变量 11.2.2字符串变量
字符串常量和字符串变量是两个不同的概念, 字符串常量和字符串变量是两个不同的概
念,字符串常 量有在内存当中由编译器分配的固定区域, 量有在内存当中由编译器分配的固定区域,保存有字符 序列。而字符串变量只是一个引用, 序列。而字符串变量只是一个引用,所以不能通过字符 串变量对常量进行修改,例如: 串变量对常量进行修改,例如:
String str="This is a string literal"; str="This is other string literal";
另一个例子: 另一个例子:
String str1="This is a string literal"; String str2="This is" + " a string literal"; 实际上str1和str2指向了同一引用 实际上str1和str2指向了同一引用 str1
11.2.3字符串运算 11.2.3字符串运算
字符串运算
字符串连接、比较、分割、 字符串连接、比较、分割、子串的
查询等
连接(+) 连接(+)
"hello "+ name "张华 张华" "hello" + "张华" "string is "+5+5 等价于"string 等价于"string is 55" 等价于"10 5+5+" is a string" 等价于"10 is a string"
字符串比较 1)值比较 值比较主要比较两个字符串的字符序列。Java中提供了几 值比较: 1)值比较:值比较主要比较两个字符串的字符序列。
Java中提供