eclipse 大型開發的集成軟件
應用最廣
安裝myeclipse之後
功能更強
主要有工作區
工程兩個概念
工程
將很多有關聯的java文件放到同一個工程中
這樣這些java文件就可以同時執行
大大提高效率
同時
應該多主要eclipse的開發小技巧
可以大大節省時間
靜態導入
import static java
lang
Math
*;這樣就可以直接調用Math中的靜態方法
如max(
)
如果不導入就要寫成Math
max(
)
高級for循環
for(Object obj : array) { 代碼塊}
其中array為Object類型數組或者集合
這樣就可以實現數組或集合的遍歷
枚舉(enum)
可以看成一個包含很多元素的類
如public enum WeekDay{ SUN
MON
TUE}
對於其中元素可以直接引用WeekDay
SUN
幾個重點方法WeekDay
valueOf(
SUN
)就是獲得一個WeekDay元素實例SUN
***枚舉類中構造方法必須private化
所以可用於單例設計模式
可變參數(jdk
新特性
重點)
public static int plus (int x
int … args) //加…表示不確定
{
int sum =
;
for(i=
;i<args
length;i++) //參數被放入數組中
{
sum+=args[i];
}
return sum;
}
這樣就可以隨便調用了
plus(
)
plus(
)……都可以
基本數據的知道裝修及拆箱(jdk
新特性)
如
Integer i =
;
實際上
執行上面那句代碼的時候
系統為我們執行了
Integer i = new Integer(
)
此即基本數據類型的自動裝箱
享源模式
運用共享技術有效地支持大量細粒度的對象
概念
也就是說在一個系統中如果有多個相同的對象
那麼只共享一份就可以了
不必每個都去實例化一個對象
比如說一個文本系統
每個字母定一個對象
那麼大小寫字母一共就是
個
那麼就要定義
個對象
如果有一個
M的文本
那麼字母是何其的多
如果每個字母都定義一個對象那麼內存早就爆了
那麼如果要是每個字母都共享一個對象
那麼就大大節約了資源
在Flyweight模式中
由於要產生各種各樣的對象
所以在Flyweight(享元)模式中常出現Factory模式
Flyweight的內部狀態是用來共享的
Flyweight factory負責維護一個對象存儲池(Flyweight Pool)來存放內部狀態的對象
Flyweight模式是一個提高程序效率和性能的模式
會大大加快程序的運行速度
應用場合很多
反射
實質
把類中各成分映射成相應java類
如成員變量
成員方法
構造方法
main方法
用Class類來代指這類事物
主要與class的區別
class只是一個修飾語
Class就是具體的類
本質是字節碼
獲取Class字節碼的方法
類名
class
如int
class
String
class
Integer
class
getClass()
如String str =
asd
; str
getClass()
Class
forName(
類名
)
Class的幾個重要方法
isPrimitive()是否為基本數據類型
一
構造方法的反射
getConstructor(parameter(
type
class) ; getConstructors()(獲得的是構造方法數組)
如
Constructor constructor = String
class
getConstructor(StringBuffer
class)
String str = (String)connstructor
newInstance(new StringBuffer(
ades
))
其中newInstance(parametertype)是最重要的方法
可以直接獲得所屬類的實例對象
二
成員變量的反射Field:
class Point p {int x=
;int y =
;}
Field fieldx = p
getClass()
getField(
x
)
System
out
println(fieldx
get(p))
即可得到p中x的值
三
成員方法的反射
必須導入java
lang
reflect
*;包治好才能使用
String str =
dafsf
Method methodCharAt = String
class
getMethod(
charAt
int
class)
System
out
println(methodCharAt
invoke(str
))
方法的反射是最能 體現反射的意思的
即以方法為中心
原來作用的類和參數都作為該方法的參數
四
main方法的反射
package com
baidu
exam;
import java
lang
reflect
Method;
class Point {
public static void main(String[]args)throws Exception
{
String name = args[
];
Method mainMethod = Class
forName(name)
getMethod(
main
String[]
class)
mainMethod
invoke(null
(Object)new String[]{
eAWDR
rgsfe
gs
})
//此時強制轉換特別重要
}
}
class Hello
{
public static void main(String[]args) {
for(String str:args){
System
out
println(str)
}
}
}
將main方法發射的實例
五
數組的反射
有一個關於數組反射的工具類Array
在java
lang
reflect包中
關鍵方法
Array
get(Object [] obj
int i)得到obj數組中第i個元素i的值
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25752.html