引用类型的传递:基本数据类型是进行值传递,引用数据类型则是地址进行引用传递。
所谓引用传递,指的是一块堆内存空间,同时被多个栈内存所指向,引用传递的核心认识,不同的栈内存指向了同一块堆内存之中,所做的修改影响所有的栈内存。
*
*对象克隆,clone()实现克隆必须实现Cloneable接口,是标示接口,指一种能力的体现。
*对象的克隆实际上就是建立一个内存空间将原有对象中的信息复制过来。
*
*java的反射机制:在运行状态中,对于任意一个类都能够知道这个类的所有方法和属性。
* 对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象的方法的功能。
*功能:在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,判断一个类所具有的成员变量和方法,调用任意一个对象的方法。
*getClass()方法返回对象类型为class
例:
/*传统工厂模式
* interface Book{
public String getTitle();
}
class MathBook implements Book{
public String getTitle(){
return "数学类图书";
}
}
class Factory{
public static Book getInstance(String className){
if("mathBook".equals(className)){
return new MathBook();
}
return null;
}
}
public class TestFactory {
public static void main(String[] args) {
// TODO Auto-generated method stub
Book book = Factory.getInstance("mathBook");
//Book book = Factory.getInstance(" ");
System.out.println(book.getTitle());
}
}
*/
interface Book{
public String getTitle();
}
class ComputerBook implements Book{
public String getTitle(){
return "计算机图书";
}
}
class MathBook implements Book{
public String getTitle(){
return "数学类图书";
}
}
class Factory{
public static Book getInstance(String className){
Book book =null;
try{
book = (Book)Class.forName(className).newInstance();
}catch(Exception e){
e.printStackTrace();
}
return book;
}
}
public class TestFactory{
public static void main(String args[])throws Exception{
Book book = Factory.getInstance("ComputerBook");
System.out.println(book.getTitle());
}
}