java 常用类库

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是系统自带的直接使用,不能创建自己的Runtime
		Process 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值