04 2021 档案
摘要:【deerhang】 like以%起始的索引无效,当起始没有%,结尾有索引的时候可以生效(%在结尾的时候,索引也不一定会用得到,查询结果和该索引条件数量与总量比例有关) or语句没有同时使用索引的时候索引会失效,只有or左右的条件都是索引的时候才能生效 组合索引,一句最左原则,只有第一个条件是索引的
阅读全文
摘要:浅析DDD——领域驱动设计的理解 我觉得领域驱动设计概念的提出,是为了更清晰的区分边界。这里的边界包括业务边界和功能的边界,每个边界都包含具体的领域对象,当业务和功能的领域对象一一对应上之后,业务的变化就能很清晰的反馈到功能实现上,到这里就做到了业务架构驱动了技术架构的发展。 DDD是一个概念性很强
阅读全文
摘要:6种状态分别是: NEW、RUNNABLE、TERMINATED、WAITING、TIMED_WAITING、BLOCKED NEW:线程创建完毕 RUNNABLE:线程运行中,又分为READY + RUNNING TERMINATED:线程死亡 WAITING:线程调用wait方法,需要调用not
阅读全文
摘要:垃圾回收有三种方式 * 一、清除:将需要回收对象的内存空间存放在内存列表中,当需要为新对象分配内存的时候,就会从内存列表中拿取空间分配。不过这种分配方式有两个缺点 * 第一个缺点是内存空间碎片化,由于对象在内存空间的分配是连续的,而内存列表中的内存是碎片的,可能就会造成总的剩余空间可以分配对象,但是
阅读全文
摘要:【deerhang】 在JVM的垃圾回收阶段,GC线程首先要进行对象的可达性分析。为了避免多线程对可达性分析的影响引出了安全点检测的概念 当GC线程进行GC前,需要等待其他线程进入安全点。例如JVM调用本地方法的时候就是一个安全点,因为它不会在JVM的堆内存操作对象。JVM就是通过对这些安全点的检测
阅读全文
摘要:【deerhang】 创建对象的四种方式:new关键字、反射、Object.clone()、unsafe方法 new和反射是通过调用构造器创建对象的,创建对象的时候使用invokespecial指令 构造器的限制:如果一个类没有定义构造器的话,Java编译器会为该类生成一个无参构造器。子类需要调用父
阅读全文
摘要:【deerhang】 java的异常全部继承于Throwable,Throwable下有两个实现类:Error和Exception Error意味着不可恢复的错误,例如OutOfMemoryError和StackOverFlowError,这类错误信息不需要捕获,一般无法自动恢复。 Exceptio
阅读全文
摘要:【Deerhang】 TLAB是全程Thread Local Allocation Buffer,中文大致的含义是:线程私有内存分配区。它存在的意义是提高线程在JVM堆上创建对象的效率。那么它是如何做到的呢? JVM的堆空间是线程共享的一块存储空间,用来存放对象信息。 这里的Eden是新生代区域,o
阅读全文
摘要:【Deerhang】 我们知道Java程序的运行是依赖于JVM虚拟机的,JVM类语言经过编译生成class字节码文件,字节码又经JVM进一步的编译生成机器码,最终运行在硬件上。那么JVM存在的意义是什么? 拿Java语言为例,Java是一门高级的计算机语言,它的实现复杂、抽象程度高,是无法将这种高级
阅读全文

浙公网安备 33010602011771号