27、有的接口中没有任何抽象方法,如cloneable,叫作标识接口。它仅仅是告诉编译器自己可以被克隆。

  如果类中的成员有引用,则涉及到浅拷贝还是深拷贝的问题。

  浅拷贝是把除了引用成员的全都拷贝一份,而对于引用部分则指向同一处。而深拷贝是把所有的都拷贝一份。

  调用super.clone()方法,它可以在运行时刻,object中的clone()识别出你要复制的哪一个对象,然后为此对象分配空间,并进行对象复制,将原始对象的内容一一复制到新对象的存储空间中。

  28、Integer的

  valueOf(String s) //把s转化成一个包装类对象返回

  parseInt(String s) //把s转化成一个int型数据返回

  封装类的对象的值是不能被修改的,只能是读。

  29、java中,每个class都有一个相应的Class对象。也是说,当我们编写一个类,编译完成后,在生成的.class文件中,会产生一个Class对象,用于表示这个类的类型信息。

  获取class实例的三种方式:

  a)利用对象调用getClass()方法获取该对象的class实例;

  b)使用class类的静态方法forName(),用类的名字获取一个class实例

  c)运用.class的方式来获取class实例,对于基本数据类型的封装类,还可以用.type来获取相对应的基本数据类型的class类型。如:

 

以下是代码片段:
Point pt = new Point(); 
  Class c1 = pt.getClass(); 
  System.out.println(c1.getName()); 
  try{ 
  Class c2 = Class.forName("Point"); 
  System.out.println(c2.getName()); 
  } 
  catch{……} 
  Class c3 = Point.class; 
  System.out.println(c3.getName()); 
  Class c4 = int.class; 
  System.out.println(c4.getName()); 
  Class c5 = Integer.TYPE; 
  System.out.println(c5.getName());

 

  

        30、java中的反射api:主要用于:对于某个不知道名字的类,通过反射机制调用他们的构造函数,为构造函数及其他函数进行传参,调用。

  31、runtime这个类提供了应用程序与环境之间的接口。可以获取jvm的总共内存,已占有的内存。用getRuntime()方法获取其实例。

 

Runtime rt = Runtime.getRuntime();
System.out.println(rt.freeMemory());
System.out.println(rt.totalMemory());

 

   另可以有执行命令,返回一个process. 为应用程序做准备。

 

try{rt.exec("notepad");}
try{rt.exec(javac ArrayTest.java);};