/*
StringBuffer 字符串缓冲类: 存储字符的一个集合容器。
什么时候要使用StringBuffer?
如果字符串的内容经常需要发生修改时,这时候则建议使用StringBuffer.
StringBuilder字符串缓冲类:
笔试题目: StringBuffer 与 StringBuilder的区别 ?
相同点: 都是字符串缓冲类, 底层都是维护了一个字符数组用于存储数据的。
不同点:
1. StringBuffer 是线程安全的, 操作效率低。 StringBuilder是线程非安全的,操作效率高。
2. StringBuffer 是jdk1.0的时候出现的, StringBuilder是jdk1.5的时候出现。
推荐使用: StringBuilder
*/
import java.util.Arrays;
/*
System系统类 : 主要的作用是用于获取系统的一个参数。
System类需要掌握的方法:
arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 拷贝数组
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
currentTimeMillis() 获取当前的系统时间
exit(int status) 退出jvm,0表示正常退出jvm,非0 表示异常退出。
gc() 建议jvm尽快的启动垃圾回收器回收垃圾。
getenv(String name)
getProperties()
static String getProperty(String key)
*/
class Person{
String name;
public Person(String name) {
this.name = name;
}
@Override
public void finalize() throws Throwable {
super.finalize();
System.out.println(this.name+"被回收了...");
}
}
public class Demo1 {
public static void main(String[] args) {
/*
int[] srcArr = {10,9 ,4 ,19}; //源数组
int[] destArr = new int[4];//目标数组
System.arraycopy(srcArr, 1, destArr, 2, 2);
System.out.println("目标数组的元素:"+ Arrays.toString(destArr));
System.out.println("当前的系统时间:"+ System.currentTimeMillis());
*/
for(int i = 0 ; i<4 ; i++){
new Person("狗娃"+i+"号");
System.gc(); //任何对象被回收之前都会调用对象的finalize
}
}
}
package cn.itcast.other;
import java.util.Properties;
/*
System类需要掌握的方法:
getenv(String name) 获取环境变量
getProperties() 获取系统属性。
static String getProperty(String key)
*/
public class Demo2 {
public static void main(String[] args) {
/*String javaHome = System.getenv("JAVA_HOME");
System.out.println("java_home:"+ javaHome);
Properties p = System.getProperties() ; //获取所有的系统属性
p.list(System.out);
*/
String osName = System.getProperty("os.name");
if("Windows 7".equals(osName)){
System.out.println("软件安装中...");
}else{
System.out.println("赶快换系统吧,我软件不兼用你系统!!");
}
}
}