现在的位置: 首页 > 综合 > 正文

java无难事笔记(六)

2013年10月14日 ⁄ 综合 ⁄ 共 3251字 ⁄ 字号 评论关闭

数组拷贝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)单例类的一个最重要的特点是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例。

 

模式应该就是对于某一类问题抽象出来的解决方法!

抱歉!评论已关闭.