Born to be proud
8/24
2014

Typecho在SAE上的伪静态化

JAVA语言初学者注意的一些细节:


◇wait醒了以后重新找锁,sleep锁还在.
◇static在codesegment中, 可用 类名.* 访问,可计数用.
◇static方法不能访问非静态的成员与函数.
◇Java使用extends关键字继承,不允许多继承.C中为:

class derived extends base{...}    //java
class derived:public base{...}    //c

◇类修饰符只有public与default(省略不写).
image

◇子类构造函数调用父类构造方法必须写在第一行.
◇多态要有继承,有重写,父类引用指向子类对象.
◇含有抽象方法的类必须被声明为抽象类,必须被继承,方法必须被重写,抽象类不能被实例化.
◇final变量值不能被改变(成员变量,局部变量(形参)),final方法不能被重写,final类不能被继承.
image

◇接口是抽象方法和常量值的定义的集合,是特殊的抽象类(没有变量和方法的实现) 关键字:implements
◇接口中声明的属性默认为public static final(也只能是),只能定义抽象方法默认方法为public(也只能是).

String s1 = “helllo”;
String s2 = “helllo”;
s1 == s2    //true

s1 = new String(“Hello”);
s2 = new String(“Hello”);
s1 == s2    //false
s1.equals(s2)    //true

◇stringbuffer可以对字符串进行改变,序列可变关键字append,insert
◇C里可以 char[] a = “abc”,java里必须char[] a = {‘a’,’b’,’c’}
◇基础数据类型包装类,分配到堆空间.
◇set没有顺序不可重复,list有顺序可重复(equals),map一对一对装.
image

◇两个对象equals,则hashCode相同。重写equals,则需要重写hashCode
◇遍历的简便写法:

for(int i: arr) {
    system.out.println(a[i]);
}

◇能使用泛型尽量使用泛型.
◇线程的2种启用方法:

runner1 r = new runner1();
thread t = new thread(r)
t.start();
class runner1 implements runnable {}    //接口(尽量用接口,更灵活)

runner1 r = new runner1
r.start();
class runner1 extends thread {}    //线程

◇TCP可靠稳定,UDP不可靠,速度快.
◇能使用继承方法的,不直接继承Frame
image
◇Frame 默认布局管理器 boderlayout
◇Panel默认布局管理器 flowlayout
image