java基础复习--6

static关键字
 用static修饰的变量叫做“类变量”,它随着类的加载而存在于方法区中。
 非静态方法既可以访问静态也可以访问非静态
 静态方法中不可以定义this,super关键字
main函数
 public static void main(String[] args){}
什么时候使用静态?
 静态变量(类变量):当对象中出现共享数据时
 静态函数:当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
静态的应用:工具类
 方法静态化
 构造函数私有化
 class ArrayTool
 {
 private ArrayTool(){}
 
 public static void printArray(int[] arr)
 {
  System.out.print("[");
  for(int i=0;i<arr.length;i++)
  {   
   if(i!=arr.length-1)
   {
    System.out.print(arr[i]+",");
   }
   else
   {
    System.out.println(arr[i]+"]");
   }
  }
 }
 
 public static int getMax(int[] arr)
 {
  int max=0;
  for(int i=0;i<arr.length;i++)
  {   
   if(arr[i]>arr[max])
   {
    max=i;
   }
  }
  return arr[max];
 }
 
 public static int getMin(int[] arr)
 {
  int min=0;
  for(int i=0;i<arr.length;i++)
  {   
   if(arr[i]<arr[min])
   {
    min=i;
   }
  }
  return arr[min];
 }
 
 private static void swap(int[]arr,int a,int b)
 {
  int temp=0;
  temp=arr[a];
  arr[a]=arr[b];
  arr[b]=temp;
 }
 
 public static void selectSort(int[] arr)
 {
  for(int i=0;i<arr.length-1;i++)
  {
   for(int j=i+1;j<arr.length;j++)
   {
    if(arr[i]>arr[j])
    {
     swap(arr,i,j);
    }
   }
  }
 }
 
 public static void bubbleSort(int[] arr)
 {
  for(int i=0;i<arr.length-1;i++)
  {
   for(int j=0;j<arr.length-1-i;j++)
   {
    if(arr[j]>arr[j+1])
    {
     swap(arr,j,j+1);
    }
   }
  }
 } 
 }
帮助文档的制作javadoc
 /**
 @author @version @param @return
 */
 使用工具:javadoc
 javadoc -d c:\myhelp(目录)-author -version ArrayTool.java
 注意:要生成帮助文档的类,必须为public类
 默认的构造函数的权限和所属类一致
静态代码块
 格式:
  static
  {
   静态代码块中的执行语句
  }
 特点:随着类的加载而执行,只执行一次,并优先于主函数
 用途:给类进行初始化
区分:
 静态代码块,给类初始化 static{}
 构造代码块,给对象初始化 {}
 构造函数,给相对应的对象初始化...
Person p=new Person("zhangsan",20);
 该句话做了什么?
 1、找到Person.class文件并将其加载到内存中
 2、执行该类中的static代码块,如果有的话,给Preson.class进行初始化
 3、在堆内存中开辟空间,分配内存地址
 4、在堆内存中建立对象的特有属性,并进行默认初始化
 5、对属性进行显示初始化
 6、对对象进行构造代码块初始化
 7、对对象进行对应的构造函数的初始化
 8、将内存地址付给栈内存中的p变量
单例设计模式
 思路:
 1、将构造函数私有化
 2、在类中创建一个本类的对象
 3、提供一个方法可以访问到该对象
 class Single//饿汉式
 {
  private Single(){}
  private static Single s=new Single();
  private static Single getInstance()
  {
   return s;
  }
 }
 class Single1//懒汉式
 {
  private static Single1 s1=null;
  private Single1(){}
  public static Single1 getInstance()
  {
   if(s1==null)
   {
    synchronized(Single1.class)
    {
     if(s1==null)
     {
      s1=new Single();
     }
    }
   }
   return s1;
  }
 }


 

posted on 2012-11-01 21:18  g__yao  阅读(113)  评论(0)    收藏  举报