JAVA SE6全方位学习总结

第1~6章

1,两种运行java Applet的方式

package ch2;

import java.awt.*;

//这是一个java Applet的样本,展示了两种运行java Applet的方式,直接运行,和在html代码中运行
public class SayHello extends java.applet.Applet
{
    public void init()
    {
        setSize(100,100);
    }
   
    public void paint(Graphics g)
    {
        g.drawString("Hello Java 2!",20,50);
    }
}

直接运行java SayHello.java  或者或在html里运行:appletviewer  SayHello.java

2,带标签的break和continue的用法:

package ch6;


//loop的用法,还有break,continue,可以试试去掉loop以后使用break和continue的效果,是不一样的
public class Mark
{
    public static void main(String argv[])
    {
        int i,j;
        Loop1:
        for (i=1;i<=5;i++)
        {
            Loop2:
            for (j=1;j<=5;j++)
            {
                if (j == 3)
                    break Loop2;//跳出loop2循环
                   
                if (i == j)
                    continue Loop1;//继续下一轮的loop1循环
                   
                System.out.println(i+"*"+j+"="+i*j);
            }
        }
    }
}   


第7~8章

1,类类型在类族中的转换,转换后关于方法调用注意的问题!

2,super(),this()调用父类构造函数和自己的其他构造函数,规则

3,重载,遮蔽(属性),改写(方法)

4,接口注意事项,标记接口的概念和用处

public class Prog8_5
{
    public static void main(String argv[])
    {
        Tank tank = new Tank();
        Fighter fighter = new Fighter();
        /*类型是Tank的,两个方法都可以调用,若Car tank = new Tank();
        则tank只能调用Car里德方法move*/
        tank.move();
        tank.shoot();
        fighter.move();
        fighter.shoot();
    }
}

public class Prog8_6
{
    public static void main(String argv[])
    {
        Weapon tank = new Tank();//接口也可以当一个类型来声明对象!!!
        Weapon fighter = new Fighter();
       
        tank.shoot();//只能调用这个接口里的方法!!!
       
        fighter.shoot();
    }
}

区别!!!

第9章  Object类常用方法

1,类的类型转换,兄弟类型不能转换,通过转换为父类在往兄弟类型转也不行!!!一个是编译时错误一个是运行时错误。

不论你怎样转来转去,一个对象当初是什么样的类,它永远都是那个类的对象

在转换过程中的调用方法和属性的问题?、、?

2,对象包含内容相等的判断,对于你自己的类,需要改写equals方法,举个例子:

public class MyObject
{
    public  int data;

    public MyObject(int i)
    {
        data=i;
    }

    public boolean equals(Object obj)
    {
        if (obj != null && (obj instanceof MyObject))
            if (this.data == ((MyObject)obj).data)
                return true;

        return false;
    }
}

3,散列码

两个相同的对象(内容相同,不是引用相同)他们的散列码相同。散列吗是改写的方式是将用于equals方法中的属性,取其wrapper了类的hash code,所以你改写equals的时候,hashcode也要改写

package ch9.equals;

public class MyObject implements Cloneable
{
    public  int data;

    public MyObject(int i)
    {
        data=i;
    }

    public boolean equals(Object obj)
    {
        if (obj != null && (obj instanceof MyObject))
            if (this.data == ((MyObject)obj).data)
                return true;

        return false;
    }

    public int hashCode()
    {
        return (new Integer(data).hashCode());
    }

    public Object clone()
    {
        try
        {
            return super.clone();
        }
        catch (CloneNotSupportedException e)
        {
            System.out.println(e);
            return null;
        }
    }
}

package ch9.equals;

public class Prog9_6
{
    public static void main(String argv[])
    {
        MyObject obj1 = new MyObject(1);
        MyObject obj2 = new MyObject(1);
    MyObject obj3 = new MyObject(3);
//1,2hashcode相等
    System.out.println("obj1's hash code :"+obj1.hashCode());
    System.out.println("obj2's hash code :"+obj2.hashCode());
    System.out.println("obj3's hash code :"+obj3.hashCode());
    }
}

以上还包含了对象clone的方法!!!

第十章  深入内存

1,java.util.Arrays API的使用

toString与deepToString,deepEquals,,排序sort。查找binarySearch

2,参数传递,只有传值!传对象引用其实也是传值

3,垃圾回收

finalize是在对象被回收前,GC调用到的方法,可以利用它做一些事情,确认对象有没有被回收。打印信息什么的

第十八章  内部类

成员是内部类:类级别和对象级别。

区别!!!

public class InnerClasses
{
	private static String staticAttribute = "Outter class' static attribute";
	private String instantiateAttribute = "Outter class' instantiate attribute";
	
	public void instantiateMethod()
	{
		System.out.println("Outter class' intantiate method");
	}
	
	public static void staticMethod()
	{
		System.out.println("Outter class' static method");
	}
	
	public static class StaticInnerClass
	{
		public StaticInnerClass()
		{
			System.out.println("static Inner class");
		}
		
		public void access()
		{
			System.out.println(staticAttribute);
			staticMethod();
		}
	}
	
	public class InstantiateInnerClass
	{
		public InstantiateInnerClass()
		{
			System.out.println("Instantiate Inner class");
		}

		public void access()
		{
			System.out.println(instantiateAttribute);
			instantiateMethod();
		}
	}
}

public class InnerClassExample1
{
	public static void main(String argv[])
	{
		InnerClasses.StaticInnerClass in;
		in = new InnerClasses.StaticInnerClass();
		in.access();
	}
}

public class InnerClassExample2
{
	public static void main(String argv[])
	{
		InnerClasses out = new InnerClasses();
		InnerClasses.InstantiateInnerClass in;
		in = out.new InstantiateInnerClass();
		in.access();
	}
}

两种成员是内部类的访问方法!

区域式内部类

匿名内部类!

第19,20章  包装类 深入字符串处理

第21章  文件处理 线程

前面已写

数据流连接的原理!Filter流类体系。很重要

posted @ 2011-03-23 20:15  jinmengzhe  阅读(1220)  评论(0编辑  收藏  举报