黑马程序员_Java基础_常用类库

本文详细介绍Java中常用的类库,包括StringBuilder与StringBuffer的区别及使用、Runtime类的应用、System类的功能、日期操作类的使用技巧、数学运算类的介绍、正则表达式的实战案例以及定时任务调度TimerTask类的实现。
摘要由CSDN通过智能技术生成

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

一、StringBuffer与StringBuilder

在Java中,字符串的操着是最长用的操作之一了,因为String对象不会改变这一原因,所以如果要进行大量的字符串连接操作时是非常浪费空间的,在字符串连接中,String类会产生很多垃圾对象。为了提高性能,应该使用StringBuffer或者StringBuilder类进行字符串的修改操作。

StringBuffer与StringBuilder的区别在于:StringBuffer是线程安全的,而StringBuilder是线程不安全的,所以,StringBuilder的效率要高于StringBuffer,在工作中推荐使用StringBuilder。当然,如果多个线程同时操作一个对象的话,还要根据情况自己选择。这两个类的使用方式完全一样,就以StringBuilder类来说明该类的常用操作:

package com.itheima.library;

/**
 * Java常用类库
 * @author Administrator
 *
 */
public class CommonLibrary {

	public static void main(String[] args) {
		//验证字符串是不会改变的
		String str = "aa12";
		
		changeString(str);
		//str的内容没有改变
		System.out.println(str);
		
		StringBuilder mBuilder = new StringBuilder();
		//StringBuilder的内容会改变的
		//验证
		changeStringBuilder(mBuilder);
		System.out.println(mBuilder);
		//字符串追加
		mBuilder.append("aaa").append("bbbb");
		System.out.println(mBuilder);
		//字符串插入,在索引为11的位置上加入cccc字符串
		//这点需要注意,插入的位置一定要在原来的长度范围之内。
		mBuilder.insert(11, "cccc");
		System.out.println(mBuilder);
		//反转操作
		mBuilder.reverse();
		System.out.println(mBuilder);
		//删除指定范围的字符
		mBuilder.delete(4, 7);
		System.out.println(mBuilder);
	}
	//为了说明String对象是不会改变的,可以用这段代码测试
	public static void changeString(String src){
		src = src + "122333";
	}
	//验证StringBuilder的内容是会改变的。
	public static void changeStringBuilder(StringBuilder mBuilder){
		mBuilder.append("内容发生了改变。。。。");
	}
}

二、Runtime类

Runtime类表示的是Java运行环境相类,该类的实例化过程是由Java虚拟机进行的,通过该类可以获取Java虚拟机的信息,如果想要获取该类的对象只能通过getRuntime()方法获取。

package com.itheima.library;

import java.util.concurrent.TimeUnit;

public class CommonLibrary1 {
	
	public static void main(String[] args)throws Exception {
		System.out.println("--");
		Runtime mRuntime = Runtime.getRuntime();
		//启动eclipse
		Process process = mRuntime.exec("eclipse.exe");
		TimeUnit.SECONDS.sleep(5);
		//5秒之后关闭
		process.destroy();
		
	}
	
}

三、System类

System类中的方法都是静态的,其中最常用的方法就是System.out();System.in();System.currentTimeMillis();   另外System类可以获取运行环境的一些信息,System.getProperties();

四、日期操作类

主要的类有:Date(基本日期类),DateFormat与SimpleDateFormat(日期格式化类), Calendar(日历类,里面封装了大量的日期计算的方式)

package com.itheima.library;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期操作类
 */
public class CommonLibrary2 {

	public static void main(String[] args) throws Exception{
		//获取当前日期
		Date date = new Date();
		//格式化当前日期
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(df.format(date));
		String currDateStr = "2014-01-29 15:48:00";
		//把字符串的日期形式转化为long类型的时间格式
		System.out.println(df.parse(currDateStr).getTime());
		//Date类在使用的时候存在局限性,特别是对于日期的操作上,官方文档中建议我们如果要对日期类进行运算 
		//就要用到Calendar类
		Calendar mCalendar = Calendar.getInstance();
		//得到当前的年份
		System.out.println(mCalendar.get(Calendar.YEAR));
		//获取当前的月份,
		System.out.println(mCalendar.get(Calendar.MONTH+1));
		//获取当前是一个月中的几号
		System.out.println(mCalendar.get(Calendar.DAY_OF_MONTH));
		
		//日期类的计算
		//13个小时前的时间
		mCalendar.add(Calendar.HOUR_OF_DAY, -13);
		System.out.println(df.format(mCalendar.getTime()));
		
		//获取当年最后一天的日期的long类型
		mCalendar.set(Calendar.YEAR, mCalendar.get(Calendar.YEAR));
		mCalendar.set(Calendar.MONTH, 11);
		mCalendar.set(Calendar.DAY_OF_MONTH,31);
		mCalendar.set(Calendar.HOUR_OF_DAY, 23);
		mCalendar.set(Calendar.MINUTE,59);
		mCalendar.set(Calendar.SECOND,59);
		mCalendar.set(Calendar.MILLISECOND,999);
		System.out.println(df.format(mCalendar.getTime()));
	}
}
五、Math、Random、BigDecimal(精确的数据计算)、NumberFormat与DecimalFormat(数字格式化类)这写类需要经常使用,慢慢就能记得住

六、正则表达式

在Java中使用正则表达式能解决很多复杂的问题,所以,正则表达式非常重要【表示--正则这块不是太熟悉,不能够有效的作出总结】个人看到一篇博客中对正则的总结非常好,在这里感谢这位仁兄分享:http://blog.csdn.net/allwefantasy/article/details/3136570。感觉很惭愧,当然也不能只加个别人的链接在笔记中,下面写下自己对正则的练习案例:

package com.itheima.library;

import java.util.Arrays;
import java.util.List;

/**
 * 正则表达式练习
 * 处理字符串<font face="Arial,Serif" size="+2" color="red"/>
 * 处理之后变为:
 * face Arial,Serif
 * size +2
 * color red
 */
public class CommonLibrary3 {

	public static void main(String[] args) {
		String str = "<font face=\"Arial,Serif\" size=\"+2\" color=\"red\"/>";
		String[] sbuStrs = str.split("\\s+");
		String[] newSub = new String[sbuStrs.length-1];
		//截取数组
		System.arraycopy(sbuStrs, 1, newSub, 0, newSub.length);
		for (String string : newSub) {
			System.out.println(string.replaceAll("(=)?\"(/>)?", " "));
		}
	}
}
七、Java中的定时任务调度TimerTask类

在Java中提供了定时任务的类库,能够实现在么某个时间开始间隔多少时间执行一段任务【虽然在Java高新技术里面有更好的定时任务的实现方式,但是作为开发者需要知道这块内容】

package com.itheima.library;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class CommonLibrary4 {

	public static void main(String[] args) {
		//定时输出当前时间
		new Timer().schedule(new TimerTask() {
			@Override
			public void run() {
				DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				System.out.println(df.format(new Date()));
			}
		}, 1000, 1000);
	}
}


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值