c28

1970-1-1 yangjing

java内存逃逸','1. 栈上分配\r\n    一般而言,创建对象都是从堆中来分配的。栈上分配主要是指在Java程序的执行过程中,在方法体中声明的变量以及创建的对象,将直接从该线程所使用的栈中分配空间。在栈上来分配空间给新创建的对象\r\n2.  内存逃逸\r\n  \r\n 逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故...

阅读全文>>

评论(0) 浏览(27)

c29

1970-1-1 yangjing

八大happen-before原则,备忘','单线程happen-before原则:在同一个线程中,书写在前面的操作happen-before后面的操作。\r\n锁的happen-before原则:同一个锁的unlock操作happen-before此锁的lock操作。\r\nvolatile的happen-before原则:对一个volatile变量的写操作happen-before对此变量的任意操作(当然也包括写操作了)。\r\nhappen-before的传递性原则:如果A操作 happen-before B操作,B操作happen-before C操作,那么A操作happen-befo...

阅读全文>>

评论(0) 浏览(34)

c30

1970-1-1 yangjing

InnoDB行锁总结','1、InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁。2、由于MySQL的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但是如果是使用相同的索引键,是会出现锁冲突的。应用设计的时候要注意这一点。3、当表有多个索引的时候,不同的事务可以使用不同的索引锁定不同的行,另外,不论是使用主键索引、唯一索引或普通索引,InnoDB都会使用行锁来对数据加锁。4、即便在条件中使用了索引字段,但是否使用索引来检索数据是由MySQL通过判断不同执行计划的代价来决定的。 &...

阅读全文>>

评论(0) 浏览(36)

@2020 HowTD 浙ICP备18004985号

浙公网安备 33010202001281号