基本数据类型的范围:
如int,4字节,每字节8位共32位,应该共能存2^32个数,但第一位是符号位(0是正数,1是负数)其中无论是+0还是-0都是0,因此实际能表达的数为2^32-1字节,范围是-2^31到2^31-1
同理
byte1字节,能存2^8-1个数,范围是-2^7到2^7-1
short2字节,能存2^16-1个数,范围-2^15到2^15-1
long8字节,能存2^32-1个数,范围-2^31到2^31-1
AOP的理解:
AOP面向切面编程,有两个关键点1、连接点2、切面;其中切面又包括通知、切点
通知:要切入的方法,即要在指定位置执行什么
切点:在哪里切入,即在哪个或那些方法处进行切入
连接点:在切点的什么位置切入,如方法前、环绕、返回前、抛出异常时等等
最典型的AOP:声明式事物
AOP的原理:使用JDK动态代理和cglib动态代理生成动态字节码,类似把切面和切点按制定顺序生成到同一class文件中,执行时执行生成的代理类
JDK动态代理负责为借口创建代理
CGLIG动态代理负责为类创建代理
值得注意的是,AOP无法影响到private、final、static方法;无法被AOP影响的方法无法开启新的事物,单如果在能开启事务的方法中调用以上方法,因事物传播特性的影响,仍可在事物中
事物传播特性:
required:如果当前没有事务就新建一个事务,如果有就加入到当前事物中
requires_new:新建事务,如果当前事务存在,则挂起当前事务
supports:支持当前事务,如果没有事务,则以非事务方式执行
no_supports:以非事务方式执行,如果当前存在事务,则挂起当前事务、
never:以非事物方式执行,如果有事务,则抛异常
还有两个记不住了