数组拷贝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)单例类的一个最重要的特点是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例。
模式应该就是对于某一类问题抽象出来的解决方法!