首页 > 代码库 > java知识点:读万卷书,行万里路(二)

java知识点:读万卷书,行万里路(二)

  • local variable:在方法体中声明的变量
  • 编译源代码时可指定环境变量
  • 标识符 = 变量名
  • 数组不是原生类
  • 只有abstract 和 public 可以修饰 interface
  •      扩展:abstract 和 final 冲突,不能修饰一个类
  • 实例方法:通过类的实例才能访问的方法
  • 类方法 = 静态方法 = static method

  • Propagation:事务传播行为

PROPAGATION_REQUIRED

如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS

支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY

使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW

新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED

以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER

以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED

如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。


  • static include VS dynamic include
static include : 先包含, 后编译, 将包含进来的文件看作一个整体
dynamic include: 先编译, 后包含



  • volatile:
 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后再取变量值时,就直接从寄存器中取值
优化器在用到volatile变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份 
volatile适用于多线程应用中被几个任务共享的变量  

  • 加载器:
引导类加载器(bootstrap class loader):它用来加载java 的核心库,是用原生代码实现的.
扩展我加载器(extensions class loader):它用来加载java的扩展库
系统类加载器(system class loader):它根据java应用的类路径(CLASS PATH)来加载java类
tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader.需要加载WebApp下的类时,就取出ClassLoader来使用



java知识点:读万卷书,行万里路(二)