數組拷貝System.copyArrays
對於對象拷貝的只是對象的引用,對象數組拷貝的僅僅是引用,因此修改拷貝後的對象的值也會影響原始對象的值!
數組從起始地start-start+length-1
數組排序Arrays.sort() java.util.Arrays
數組查找 Arrays.binarySearch()
對象的排序Arrays.sort()
對象的排序,
對象必須實現java.lang中的Comparable接口
覆蓋compareTo方法
public int compareTo(Object o)
{
Student t = (Student)o;
if(no<t.no)
return 1;
elseif(no==t.no)
return 0;
else
return -1;
}
//當兩者需要交換位置的時候返回正值,不要交換的時候返回負值,不要任何動作的時候返回0;
重寫toString方法可以直接打印對象,這是因爲在打印對象的時候,會調用toString方法
import java.util.Arrays;
class Student implements Comparable
{
intno;
Stringname;
Student(intno,String name)
{
this.no= no;
this.name= name;
}
publicString toString()
{
return"no="+no+","+"name="+name;
}
publicint compareTo(Object o)
{
Student t = (Student)o;
if(no<t.no)
return 1;
elseif(no==t.no)
return 0;
else
return -1;
}
}
class Test
{
publicstatic void main(String[] args)
{
Student[]stu = new Student[]{new Student(21321221,"lai"),newStudent(21325221,"chun"),new Student(21524226,"bin")};
Arrays.sort(stu);
for(inti =0;i<stu.length;i++)
{
System.out.println(stu[i]);
}
}
}
基本數據類型
Integer 和 int轉換,基本數據類型和對應的類
把字符串轉換爲一個基本數據類型parseInt()靜態方法)
把一個字符串轉化爲Integer類,toString(int i)返回一個String
把一個字符串轉換爲Integer類, valueOf
其它封裝類也是如此,Boolean比較不同!
(基本數據類型,封裝類,String類型轉換)
只能建立一個只讀的封裝類,其值是不可改變的
Class文件
Point pt=new Point();
Classc1=pt.getClass();
System.out.println(c1.getName());
try
{
Classc2=Class.forName("Point");//forName會拋出異常,必須去捕獲異常,否則會出現錯誤。
System.out.println(c2.getName());
}
catch(Exceptione)
{
e.printStackTrace();
}
Classc3=Point.class;
System.out.println(c3.getName());
Classc4=int.class;
System.out.println(c4.getName());
Classc5=Integer.TYPE;
System.out.println(c5.getName());
Classc6=Integer.class;
System.out.println(c6.getName());
newInstance()調用缺省的構造方法,用來創建實例,
調用反射API調用帶參數的構造函數來創建對象
動態加載一個類,動態調用一個方法!
反射API可以去反省,查看自身的信息!
有時候需要知道比Class類所提供的信息多得多的有關一個類型的信息。出於這種目的,可以使用程序包java.lang.reflect中的類,換句話說就是所說的反射API。這個類集提高了Class類的能力和有效性。
反射API支持一種名爲自省的行爲,這種行爲實際上使一個類描述自身。
反射API使對象具有反射自己和發現自身內容的能力。程序包java.lang.reflect定義了很多類,這些類總體上對一個對象作了完整的描述。
下面給出了這3種類表示類的構建塊:
(1)Constructor類的每個實例都提供了關於一個類的一個構造函數的信息,並且爲調用程序提供了使用這個構造函數以創建一個對象的方式。
(2)Method類的每個實例都提供了關於一個類的一種方法的信息,並且爲調用程序提供了調用這種方法的方式。這種方法可能是類的方法或者實例的方法,而且可能是抽象的。
(3)Field類的每個實例都提供了關於一個類的一個域的信息,並且爲調用程序提供了獲得和設置這個域的值的方法。這個域可以是類變量或者實例變量。
每一個運行實例都有一個Runtime對象,是運行環境和程序之間的一個接口,通過getRuntime()可以獲得運行程序的一個Runtime實例,通過這個實例可以知道java虛擬機有多少內存可以用和總的內存有多少!
可以去調用exec來執行外部程序
Exec會返回一個Process類
設計模式(典型問題和問題的解決方案)
單例(Singleton)模式
(1)一個類只有一個實例,而且自行實例化並向整個系統提供這個實例,這個類稱爲單例類。
(2)單例類的一個最重要的特點是類的構造方法是私有的,從而避免了外部利用構造方法直接創建多個實例。
模式應該就是對於某一類問題抽象出來的解決方法!