小鸦 - 静态代码块的作用

[静态代码块] 作用是起环境(技术,模块)的搭建时, 作为入口使用。换种说法, 其作用和main方法一样 , 是一个入口.

例子: 数据库配置以及其工具类

因为是工具类,其方法必定均为static. 而在进行数据库相关操作之前, 我们必须配置它 ( 数据库的用户名和密码等参数 ). 这时候有两个方案

  1. 在各个方法的第一行统一加上 init()方法, 这样在方法被调用时候就会初始化配置
  2. 静态快 ( 类被加载时候初始化配置 )

效果是等价的.

这里数据库类的搭建,我们可以看成是 [数据库类模块] 的搭建, 其入口就是该 [静态代码块].

而我之所以说 [静态代码块] 是只用于搭建环境(技术,模块)的入口, 是因为其作用于main无差异 , 也就是说每多一个main的话, 就多一种main之间交错的可能性. (就像绳子交错一样). 这一说法 类似于多线程

了防止交错

  • 要不就是该 [静态代码块] 影响足够小, 以至于不可能交错. 如果main A影响线太长, 而没封装, 就有可能导致 在main B去操作了 main A的影响物时, 却没触发main A, 导致main A的影响物没有被赋予状态(数据)
  • 要不就是 [静态代码块] 的调用处于 [应用生命周期] 的起点.

你可能感兴趣的:(JAVA)