常见的垃圾回收算法
摘要:什么是垃圾? 垃圾指的是在运行程序中没有任何指针指向的对象。垃圾回收的本质是清除掉内存中的已死对象,回收所占用的堆内存。使得该空间可以被再次使用。 垃圾回收的主要区域: a.方法区:主要回收常量池中废弃的常量(字面量及符号引用)及不再使用的类型 b.堆空间:回收垃圾(没有任何指针指向的对象) (1)
阅读全文
posted @
2020-12-23 00:34
含光Aries
阅读(498)
推荐(0)
lombok插件@Slf4j注解不生效问题解决办法
摘要:最近在尝试使用日志工具Sfl4j,当时使用log时报错,找了好久才解决这个问题。 1、首先需要下载Lombok插件 File->settings->Plugins 搜索Lombok,点击安装 pom.xml 中引入依赖 <properties> <maven.compiler.source>1.8<
阅读全文
posted @
2020-12-21 23:42
含光Aries
阅读(4014)
推荐(0)
MySQL like查询使用索引
摘要:在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要! 结论:后置百分号可以用到索引,前置百分号和两侧百分号用不了索引。 like 匹配/模糊
阅读全文
posted @
2020-12-20 21:01
含光Aries
阅读(2448)
推荐(0)
双重检验锁模式为什么要使用volatile?
摘要:并发编程情况下有三个要点:操作的原子性、可见性、有序性。 volatile保证了可见性和有序性,但是并不能保证原子性。 首先看一下DCL(双重检验锁)的实现: public class Singleton { private volatile static Singleton singleton;
阅读全文
posted @
2020-12-20 17:02
含光Aries
阅读(408)
推荐(0)
新生代和老年代的区别
摘要:所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有足够空间的时候就会 触发jv
阅读全文
posted @
2020-12-20 15:59
含光Aries
阅读(1628)
推荐(0)
事务的四大特性:
摘要:1、原子性(Atomicity): 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。 2、一致性(Consistemcy): 事务前后,数据库的状态都满足所有的完整性约束。 3、隔离性(Isolation): 并发执行的事务是隔离的,一个不影响一个。如果有两个事务,运行在相
阅读全文
posted @
2020-12-17 10:01
含光Aries
阅读(291)
推荐(0)
HashSet为什么可以有序输出?
摘要:首先HashSet是不保证有序,而不是保证无序,因为在HashSet中,元素是按照他们的hashCode值排序存储的。对于单个字符而言,这些hashCode就是ASCII码,因此,当按顺序添加自然数或者26个英文字符时,会产生一种HashSet也可以有序输出的“错觉”。
阅读全文
posted @
2020-12-17 09:52
含光Aries
阅读(890)
推荐(0)