- 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来使用
时间: 2024-10-10 04:33:44