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
}
}
貼代碼費老鼻子勁了,睡覺