wait(),notify()必须出现在 synchronized 方法或块中,
否则会出现异常。原因是因为 会释放对象锁,而锁必然
是出现在同步方法或块中。另外,同 一样,也必
须捕捉异常 InterruptedException。
和 ,方法都扔出一个 异常。
变量 只能在定义处赋值(即:常量)。
编译是通过的。
注意 类的方法 不能写成
!!""!!#$!"" $!%
&%&
抽象类中可以有构造方法!接口中不能定义构造方法!
接口的实现类实现的方法必须和接口的方法抛出同样的异常#不许是子类#这和 ' 不一
样(同样#如果接口方法没有抛#实现方法也不能抛
实现类实现的方法必须显式的声明成 #什么都不写都不行#啊(((
都为不可到达的语句,出编译错误:
%)*
%+%+)*
%+!,$-%.+
但是 %%)*没事!"!+%+,$-%.+;也可以编译过!
静态方法将随着类的变化而变化,看例子:
/)
')0#0*+
*
&/)
')0#0*+
*
/"&+
+
打出来的是 #(静态方法是不能 ' 的,只是隐藏
/)
'')0#0+对于子类来说,相当于根本没有这个
方法,当然不必遵守 ' 规则
*
*
&/)
')0#0+
*
*
12)
'34)
/"&+
+
错误!子类中的是子类新添方法,多态不能调用子类新添方法或属性。
*
*
对于 % 不能用 和 关键字
5"!+或 5;
%"!#5"!+,$+66)
07"0665+
*编译错误,5%
'#也就是说只要是 都能使虚拟机退出#88+同样的是合法的
"966错误,不可以直接对常数进行66运算
9::多少位都是 9+9,,;9 变成了最小负数#9!!!!!!!
最大正数是 !99999999
最小负数是 9!!!!!!! <9=>=?;@=?
"8A!!!98+对("A!!!9+编译错(
9::9是 !
变量不能是 % 和 的
"9+"+错(需要显式
%"9+"+就 (我也不知道为什么#% 就可以而且#据我实验只有 和 的
关系这样#其他不行
%'BC.CD#7
EFG7CDH.9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ECIG7CDH.!9999999999999999999999999999999
&%'5
'#%5
'DD % 5
JJK 'CD #
%CD#%%
' 5 L
DD M
'%%DD%
/ 'K 5 '
%'M#
%'%'
J%9"JJFF+
J%<"JJFF+
%95%<+(
!!""!!但是用 # 来比较时,6!!: !!。搞什么?
/'(是允许的)
'或者声明 B 而
没有实现 '
C只有 #%##%才有资格加
%##可
以(而且是常用)在 中。
/''#'''
# C%D/' " C%/' '
''"'%'因为 是对象!' 中的 ' 在对
象的国界中不通行。对象数组如果要赋值,必须有父子关系!
N%正确的顺序是
111111 父类的初始化: ,9: 变量声明,<:N,;:父类的 N
111111 的变量声明(比如 "<)+
111111N(比如 )*)(注意它是 的,
所以里面引用的都必须是属于类的变量或方法!也就是必须也是 的)
1111112普通变量声明。(比如O'=<!!!)
111111&(当然必须在有创建 前提下)(而前面两个是类的行
为无需创建 )
""'% 两个不能转化的类型比较,比
如 % 和
5%%%%
F'类的直接嵌套类可以有 变
量,但自己必须是 的。而在方法里面根本不能有任何 的东西!记住一点,
是类的!类可以有静态变量,静态嵌套类,静态方法。其中静态嵌套类
可以有静态变量。除此外,其他东西都不能声明为静态!
类的普通 先初始化再到 。
! " # $
"% &'("#
'%%%
)
&**'+,-./0-
1
2 %%
%
)
&
&13**-./0-
Abstract:
10
4
4% '
, #
5 0 # 4
%6