一.高級For循環
1.格式:
for(數據類型 變量名 :被遍歷的集合(Collection)或者數姐)
{
}
2.高級for對集合進行遍歷。
只能獲取集合元素,但是不能對集合進行操作。
迭代器除了遍歷,還可以進行remove集合中元素的動作。
3.傳統for循環和高級for循環有什麼區別呢?
高級for有一個侷限性,必須有被遍歷的目標。
建議在遍歷數組的時候,還是用傳統for循環,因爲傳統for循環可以定義角標。
4.示例:
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
for (String s : al)
{
s ="kk";
System.out.println(s);
}
二 可變參數
1.JDK1.5版本出現的新特性。
方法的可變參數:
在使用時注意:可變參數一定要定義在參數列表的最後面。
2.代碼演示:
class ParamMethodDemo
{
public static void main(String[] args)
{
//show(3,4);
/*
//雖然少定義了多個方法。但是每次都要定義一個數組,作爲實際參數。
int[] arr = {3,4};
show(arr);
int[] arr1 = {2,3,4,5};
show(arr1);
*/
/*
可變參數
其實就是上一種數組參數的簡寫形式。
不用每一次都手動的建立數組對象。
只要將要操作的元素作爲參數傳遞即可。
隱式將這些參數封裝成了數組。
*/
show("haha",2,3,4,5,6);
//show(2,3,4,5,6);
//show(2,5,3,5,56,76,43,2,3,);
//show();
}
public static void show(int... arr)
{
System.out.println(arr.length);
}
public static void show(String str,int... arr)
{
System.out.println(arr.length);
}
}
三靜態導入
StaticImport 靜態導入當類名重名時,需要指定具體的包名。
當方法重名時,要指定具體所屬的對象或者類。
import static java.util.Arrays.*;//導入的是Arrays這個類中的所有靜態成員。
import static java.lang.System.*;//導入了System類中所有靜態成員。
四 System類
1.System(java.lang):
System:類中的方法和屬性都是靜態的。
out: 標準輸出,默認是控制檯。
in : 標準輸入,默認是鍵盤。
該類中的方法:
1)static Properties getProperties()
確定當前的系統屬性。
2)static String getProperty(String key)
獲取指定鍵指示的系統屬性。
3)static String getProperty(String key, String def)
獲取用指定鍵描述的系統屬性。
2.Properties(java.util)類:
extends Hashtable<Object,Object>
Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載。
屬性列表中每個鍵及其對應值都是一個字符串。
該類中的方法:
1)String getProperty(String key)
用指定的鍵在此屬性列表中搜索屬性。
2)String getProperty(String key, String defaultValue)
用指定的鍵在屬性列表中搜索屬性。
3)Object setProperty(String key, String value)
調用 Hashtable 的方法 put 相似。
五Runtime類
1.Runtime(java.lang)對象
該類並沒有提供構造函數。
說明不可以new對象,那麼會直接想到該類中的方法都是靜態的。
發現該類中還有非靜態方法。
說明該類肯定會提供了方法獲取本類對象,而且該方法是靜態的,並且返回值類型是本類類型。
由這個特點可以看出該類使用了單例設計模式完成。
該方法是static Runtime getRuntime();
2.該類中方法:
1)getRuntime()
public static Runtime getRuntime()
返回與當前 Java 應用程序相關的運行時對象。Runtime 類的大多數方法是實例方法,
並且必須根據當前的運行時對象對其進行調用。
2 exec()
public Process exec(String command)
throws IOException在單獨的進程中執行指定的字符串命令。
這是一個很有用的方法。對於 exec(command) 形式的調用而言,其行爲與調用 exec(command, null, null) 完全相同。
3.Process進程類----destroy()方法
abstract void destroy() 殺掉子進程。
六.Date
1.Date類(java.util包中)
1).構造方法:
public Date()
分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。
2.DateFormat類(java.text包)
該類是個抽象類,其子類是SimpleDateFormat
1)SimpleDateFormat的構造方法:
SimpleDateFormat(String pattern)
用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。
2)日期和時間模式 結果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
3)format()方法
public final String format(Date date)
將一個 Date 格式化爲日期/時間字符串。
代碼示例:
public static void main(String[] args) { Date d = new Date(); System.out.println(d);//打印的時間看不懂,希望有些格式。 //將模式封裝到SimpleDateFormat對象中。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss"); //調用format方法讓模式格式化指定Date對象。 String time = sdf.format(d); System.out.println("time= "+ time); long l = System.currentTimeMillis(); Date d1 = new Date(l); System.out.println("d1:"+d1); }
七 Calendar類
1.Calendar抽象類(java.util)-----日曆
Calendar 對象能夠生成爲特定語言和日曆風格實現日期-時間格式化所需的所有日曆字段值
1)Calendar 類是一個抽象類,它爲特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等
日曆字段之間的轉換提供了一些方法,併爲操作日曆字段(例如獲得下星期的日期)提供了一些方法。
瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量
2)getInstance()方法:
與其他語言環境敏感類一樣,Calendar 提供了一個類方法 getInstance,
以獲得此類型的一個通用的對象。Calendar 的 getInstance 方法返回一個 Calendar 對象,
其日曆字段已由當前日期和時間初始化:
Calendar rightNow = Calendar.getInstance();
3)get()方法:
public int get(int field)
返回給定日曆字段的值
4)set()方法:
public final void set(int year,int month,int date)
設置日曆字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
5)add()方法:
public abstract void add(int field,int amount)
根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量。
例如,要從當前日曆時間減去 5 天,可以通過調用以下方法做到這一點:
add(Calendar.DAY_OF_MONTH, -5)。
八 Math類和Random類
1.Math類(java.lang包中)//隱式導入類
1)ceil():
static double ceil(double a)
返回最小的(最接近負無窮大)double 值,該值大於等於參數,並等於某個整數。
2)floor():
static double floor(double a)
返回最大的(最接近正無窮大)double 值,該值小於等於參數,並等於某個整數。
3)round():
static long round(double a)
返回最接近參數的 long。
4)pow():
static double pow(double a, double b)
返回第一個參數的第二個參數次冪的值。
5)random():
static double random()
返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。
2.Random類(java.util)
1)nextInt():
int nextInt()
返回下一個僞隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。
代碼:
Random r = new Random();
for (int x=0; x<10; x++)
{
//int d = (int)(Math.random()*10+1);//返回0.0到1.0之間(含0不含1)的隨機數。
int d = r.netInt(10)+1;
sop(d);
}