1、StringBuffer:
回顾:String类一旦不创建就不能被改变了
String类不适用于一下情况;
public class Demo{
public static void main(String args[]){
String str="";
for(int i=0;i<100;i++){
str+=i;
}
}
}
因为这样指针会被改变多次;
StringBuffer 也是一个字符串对象,但是此对象的内容可以改变,只是代码的形式少有不同;
StringBuffer 必须先实例化:
public class Demo{
public static void main(String args[]){
String str="";
//用+表示字符串的连接
//str="A"+"B"+"C";
StringBuffer sb=new StringBuffer();
sb.append("A").append("B");
sb.append("C").append(1);
}
//StringBuffer传递的是引用;
public static void fun(StringBuffer s){
s.append("LID--->Name");
}
}
2、包装类:
IO操作时字符串变为整形:Integer
在java中提倡一种思想:一切皆对象,java中用有八种数据类型,
byte Byte
char Character
short Short
int Integer
float Float
double Double
long Long
boolean Boolean
包装类的作用,就在于转型上:字符串---》相应的数据类型;
public class Demo{
public static void main(String args[]){
String str="123";
int i=Integer.parseInt(str);
System.out.println(i);
float f=Float.parseFloat(str);
System.out.println(f*2);
}
}
3、Runtime类:
运行时类---》使用此类可以调用本机上的程序;
Runtime类没有构造方法,则外部无法实例化;
因为在类中构造方法私有化了,所以程序的外部无法实例化对象;
能不能让记事本打开三秒后自动关闭:
运行的程序是一个进程;
public class Demo{
public static void main(String args[]) throws Exception{
Runtime r=Runtime.getRuntime();
//运行程序:调用本机的程序;
Process p=r.exec("notepad.exe");
Thread.sleep(3000);
//关掉进程;
p.destroy();
}
}
4、Random类:
表示一个随机数类,例如:要产生一个不大于100的10个随机整数;
Random类在java.util包中;
import java.util.*;
public class Demo{
public static void main(String args[]) throws Exception{
Random r=new Random();
for(int i=0;i<10;i++){
System.out.println(r.nextInt(100));
}
}
}
5、取得时间的类:java.util包下:
Date类和Calendar类;
Calerdar可以将时间精确到毫秒;
import java.util.*;
public class Demo{
public static void main(String args[]) throws Exception{
Calerdar c=new GregorianCalendar();
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH)+1);
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
}
}
有时希望可以进行格式转换:
例如:
原格式:2007-5-17 16:19:20
转化后的格式:2007年5月17日 16时19分20秒
应该用几步完成以上的转变呢:
从原格式中丢弃格式取出具体的时间数字;
准备一个新的格式;
将原格式中的时间数字放到新格式中;
SimpleDateFormat类再类是在java.text包下;
import java.util.*;
import java.text.*;
public class Demo{
public static void main(String args[]) throws Exception{
String str="2011-4-12 23:10:22";
//1 准备原始格式
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//2 准备新格式
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//3 摘出时间数
Date d=sdf1.parse(str);
//4 将时间出入到新的模板中
String newStr=sdf2.format(d);
System.out.println(newStr);
}
}