Calendar类:
在java.Util包里
-----------------
StringBuffer类和String Builder类:
public final class StringBuffer
extends Object
implements Serializable, CharSequence
public final class StringBuilder
extends Object
implements Serializable, CharSequence
String 类有个重要的特色----String 的值是不可变的,这就致使每次对String 的操做都会生成新的String 对象,不只效率低下,并且大量浪费有限的内存空间。
StringBuffer:线程安全的,在多线程状况下,优先选用StringBuffer
StringBuilder:线程不安全的,速度快,在单线程状况下,优先选用StringBulider。
StringBuffer的默认构造函数,系统默认分配16个字符的空间 以下:
public StringBuffer() {
this ( 16 );
}
StringBuffer的带参数的构造函数,以下;
public StringBuffer(String str) {
this(str.length() + 16 );
append( str);
}
例子:
StringBuffer sb = new StringBuffer();
System. out.println( "默认capacity===" + sb.capacity()); //16
System. out.println(sb.length()); //0
// 声明并初始化
StringBuffer sb1 = new StringBuffer( "hello world" );
System. out.println( " sb1的capacity==" + sb1.capacity()); //27
System. out.println( " sb1的length== " +sb1.length()); //11
// 利用append()来设置StringBuffer的内容
// 使用StringBuffer的默认构造函数,系统默认分配16个字符的空间 。调用append方法后,str中的字符去填充分配好的内存空间
// 若是要填入的字符串的大小不大于16(就是原来已分配的空间大小),则原有的空间大小不会变化,capacity仍是16
//若是要填充的字符串的长度大于16,那么capacity= (原capacity+1)*2
StringBuffer sb2 = new StringBuffer();
String str2 = "hello world";
sb2.append(str2);
System. out.println( " sb2的capacity== " + sb2.capacity()); //16
System. out.println( " sb2的length== " + sb2.length()); //11
StringBuffer sb3 = new StringBuffer();
String str3 = "hello worldhellow";
sb3.append(str3);
System. out.println( " sb3的capacity== " + sb3.capacity()); //34 = (16 + 1)*2
System. out.println( " sb3的length== " + sb3.length()); //17
StringBuffer sb4 = new StringBuffer();
String str4 = "hello worldhello";
sb4.append(str4);
System. out.println( " sb4的capacity== " + sb4.capacity()); //16
System. out.println( " sb4的length== " + sb4.length()); //16
Math类:
1:常数
PI :double,圆周率
E :double,天然对数
2:截取(注意方法的返回类型)
double ceil(double d) -返回不小于d 的最小整数 (向上取值)
double floor(double d) -返回不大于d 的最大整数 (向下取值)
int round(float f) -返回四舍五入后的整数
long round(double d) 返回四舍五入后的整数
3:变换 ( int long float各类类型类似)
double abs(double d) -返回绝对值
double min(double d1, double d2) -返回两个值中较小的值
double max(double d1, double d2) -返回两个值中较大的值
4:开平方立方,随机数,一个数的次幂计算
double sqrt(double d) -返回平方根
double cbrt(double a) -返回立方根
double random() -返回随机数 public static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0,无限接近1.0
double pow(double a,double b) 返回第一个参数的第二个参数次幂的值
实例以下:
//ceil 表示向上取值
double a1 = Math.ceil(5.121); //6.0
double a2 = Math.ceil(5.91); //6.0
double a3 = Math.ceil(-5.12); //-5.0
double a4 = Math.ceil(-5.9); //-5.0
double a5 = Math.ceil(0); //0.0
//floor表示向下取值
double b1 = Math.floor(5.12); //5.0
double b2 = Math.floor(5.9); //5.0
double b3 = Math.floor(-5.12); //-6.0
double b4 = Math.floor(-5.9); //-6.0
//round表示四舍五入
double c1 = Math.round(5.12); //5.0
double c2 = Math.round(5.9); //6.0
double c3 = Math.round(-5.12); //-5.0
double c4 = Math.round(-5.9); //-6.0
//开立方
double i= 27f;
int i1 = ( int) Math. cbrt(i);
System. out.println( "开立方==" +i1); //3
//开平方
double j= 8f;
int j1 = ( int) Math. sqrt(j);
System. out.println( "开平方==" +j1); //2
//绝对值
System. out.println(Math. abs(1.1)); //1.1
System. out.println(Math. abs(0)); //0
System. out.println(Math. abs(-2.3)); //2.3
//最大值最小值
System. out.println(Math. max(1.1, -2.3)); //1.1
System. out.println(Math. max(-1.1, -2.3)); //-2.3
//静态常量
System. out.println(Math. E); //2.718281828459045
System. out.println(Math. PI); //3.141592653589793
//求一个数的几回幂 double pow(double a,double b)
double d1 = 4.0;
double d2 = 5.0;
System. out.println(Math. pow(d1, d2)); //4的五次方 = 4*4*4*4*4 =1024.0
Date类:
DateFormat 类:
在java.text包里
SimpleDateFormat 类:在java.text包里
层次关系以下:
java.lang.Object java.text.Format java.text.DateFormat java.text.SimpleDateFormat
public abstract class DateFormat extends Format
public class SimpleDateFormat extends DateFormat
主要有两个方法:
方法:parse(String source) 把字符串转换成日期
方法:format(Date date) 把一个 Date 日期时间格式转换
例子以下:
import java.text.*;
import java.util.*;
public class FormatMethodTest {
public static void main(String[] args) {
Date d = new Date();
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS");
String str = df.format(d);
System.out.println(str); //获取当前时间
}
}
Calendar类:在java.util包里
public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>
1:如何初始化
Calendar 类是经过一个静态方法 getInstance()来获取 Calendar 实例。
2:使用Calendar 对日期进行部分析取:能从日期里面按照要求析取出数据,如年月日、星期等。
方法:get(int field) 返回给定日历字段的值
3:使用Calendar 进行日期运算:对日期进行加加减减的运算。
方法:add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
4:为Calendar 设置初始值
方法setTime(Date date) 使用给定的 Date 设置此 Calendar 的当前时间
方法setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值
具体例子以下:
import java.util.Calendar;
public class CalendarGetMethodTest{
public static void main(String[] args) {
Calendar cal = Calendar.getInstance(); // Calendar 类(是抽象类)是经过一个静态方法 getInstance()来获取 Calendar 实例。
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH) + 1; //第一个月是 JANUARY,它为 0
int d = cal.get(Calendar.DAY_OF_MONTH);
System.out.println("y===" + y + ",m===" +m +",d===" + d); //y===2013,m===12,d===20
}
}
import java.util.Calendar; java
public class CalendarAddMethodTest{ web
public static void main(String[] args) { 安全
Calendar cal = Calendar.getInstance(); // Calendar 类(是抽象类)是经过一个静态方法 getInstance()来获取 Calendar 实例。 // 多线程
cal.add(Calendar.DATE, 7); // 在当前日期基础上加7天, 这里返回y===2013,m===12,d===24 app
cal.add(Calendar.HOUR_OF_DAY, -72); // 在当前日期基础上往前退72个小时,返回y===2013,m===12,d===17dom
int y = cal.get(Calendar.YEAR); ide
int m = cal.get(Calendar.MONTH) + 1; 函数
int d = cal.get(Calendar.DAY_OF_MONTH); ui
System.out.println("y===" + y + ",m===" +m +",d===" + d); this
}
}
import java.util.Calendar;
public class CalendarSetTimeMethodTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance(); // Calendar 类(是抽象类)是经过一个静态方法 getInstance()来获取 Calendar 实例。
cal.setTimeInMillis(1234567890123L);
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH) + 1;
int d = cal.get(Calendar.DAY_OF_MONTH);
System.out.println("设置的时间是:y===" + y + ",m===" +m +",d===" + d); //设置的时间是:y===2009,m===2,d===14
}
}
贴代码费老鼻子劲了,睡觉