静态代码块优先于主方法,且只执行一次。
特点1.随着类的加载而加载
2.优先于对象存在
3.被所有对象所共享
4.可以直接被类名所调用
使用注意:
1.静态方法只能访问静态成员
2.静态方法中不可以写this,super关键字
3.主函数是静态的
finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效。
规则 1.try块是必须的,catch块和finally块都是可选的,但必须存在一个或都存在。try块不能单独存在。
2.try块里的语句运行中出现异常会跳过try块里其他语句,直接运行catch里的语句。
3.无论try块中是否有异常,无论catch块中的语句是否实现,都会执行finally块里的语句。
4.如果try块或catch块中有return语句,finally块里的语句会执行在try块或catch块中的return语句前。
5.如果finally块里有return语句,则直接返回,而不执行try块或catch块里的return语句。
6.只有一种办法不执行finally块里的语句,那就是调用System.exit(1);方法,即退出java虚拟机。
执行顺序优先级:静态域,main(),构造代码块,构造方法。
String中的对象是不可变的,也就可以理解为常量, 显然线程安全 。
HashMap允许一个key为null,多个value为null,而Hashtable不允许有null值。
| Map集合类
| key
| value
|
| — | — | — |
| HashMap
| 允许为null
| 允许为null
|
| TreeMap
| 不允许为null
| 允许为null
|
| ConcurrentMap
| 不允许为null
| 不允许为null
|
| HashTable
| 不允许为null
| 不允许为null |