java 常用类库

来源:互联网 发布:阿里云遭攻击 编辑:程序博客网 时间:2024/06/05 07:31

1.StringBuffer:

StringBuffer主要注意一点是他的返回类型还是StringBuffer类型,不能直接用String来进行接收。凡是需要频繁修改字符串内容的时候都要用StringBuffer,而不是用String,StringBuffer的效率要高很多。StringBuffer中还提供了一些String的所没有的一些方法,如insert,delete需要的时候直接查找API文档。

public class StringBufferDemo01{public static void main(String[] args){StringBuffer buf = new StringBuffer();buf.append("wky");buf.append(12);buf.append(true);String str = buf.reverse().toString();//将StringBuffer toString后附给String。int a = buf.indexOf("21");buf.insert(buf.length(),"new");System.out.println(a);System.out.println(str);System.out.println(buf);}}

2.Runtime:

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。

应用程序不能创建自己的 Runtime 类实例。 

class RuntimeDemo01{public static void main(String[] args){Runtime run = Runtime.getRuntime();System.out.println("JVM最大内存量:"+run.maxMemory());System.out.println("JVM可用内存量:"+run.freeMemory());String a="asdfsd";for(int i=0;i<3000;i++){//会产生垃圾占用内存a+=i;}System.out.println("JVM可用内存量:"+run.freeMemory());run.gc();//垃圾回收,释放被占用内存。System.out.println("JVM可用内存量:"+run.freeMemory());}}

class RuntimeDemo02{public static void main(String[] args){Runtime run = Runtime.getRuntime();//获得runtime的实例化对象,Runtime是系统自带的直接使用,不能创建自己的RuntimeProcess p=null; //定义进程变量/*可以调用本机程序*/try{p=run.exec("notepad.exe");//run.exec()返回值为Process类型}catch(Exception e){System.out.println(e);}try{Thread.sleep(5000);}catch(Exception e){System.out.println(e);}p.destroy(); //五秒后关闭p}}

3.System:

可以查看某个程序运行时间:

class SystemDemo01{public static void main(String[] args){/*计算机程序的运行时间,System类方法的返回值,全都是static类型的。*/long starttime=System.currentTimeMillis();//返回以毫秒为单位的当前时间int sum=0;for(int i=0;i<300000000;i++){sum+=i;}long endtime=System.currentTimeMillis();System.out.println("程序运行了:"+(endtime-starttime)+"毫秒");}}

可以打印系统全部属性:

class SystemDemo02{public static void main(String[] args){System.getProperties().list(System.out); //列出系统的全部属性System.out.println("当期系统用户:"+System.getProperty("os.name") //列出系统的某个单个属性+System.getProperty("os.version")+System.getProperty("user.name"));System.out.println("当前工作目录:"+System.getProperty("user.dir"));}}

最重要的,java中对象的垃圾回收机制,自动释放和手动释放的方法。如果一个对象不使用了,肯定要等待垃圾回收,垃圾回收可以自动调用,也可以手动调用,手工调用就是使用System.gc()或Runtime getRuntime.gc()来进行回收但是一个对象在回收之前要做一些收尾的工作,则就要复写Object中的public void finalize() throws Throwable方法,它在对象回收之前调用,处理收尾工作,例如释放资源等等。不手动调用垃圾回收,系统会在一定时间内自己处理掉,本程序直接自己调用垃圾回收,自己处理掉。

/*手动释放内存空间的操作,及对象生命周期的理解*/class Person{private String name;private int age;public Person(String name,int age){this.name=name;this.age=age;}public void setName(String name){this.name=name;}public String getName(){return this.name;}public void setAge(int age){this.age=age;}public int getAge(){return this.age;}public String toString(){return this.name+this.age;}/*如果一个对象不使用了,肯定要等待垃圾回收,垃圾回收可以自动调用,也可以手动调用,手工调用就是使用System.gc()或Runtime getRuntime.gc()来进行回收但是一个对象在回收之前要做一些收尾的工作,则就要复写Object中的public void finalize() throws Throwable方法,它在对象回收之前调用,处理收尾工作,例如释放资源等等。不手动调用垃圾回收,系统会在一定时间内自己处理掉,本程序直接自己调用垃圾回收,自己处理掉。*/public void finalize() throws Throwable{System.out.println("对象被释放。。。"+this.toString());}}class SystemDemo03{public static void main(String[] args){Person p = new Person("王丽丽",12);p=null;   //断开实例化对象System.gc();//执行垃圾回收,但是在回收前会掉用finalize()方法,会打印出对象被释放,如果没有这句话不会打印出。}}




0 0