乐观锁与悲观锁

乐观锁与悲观锁何为乐观锁和悲观锁乐观锁对应于生活中乐观的人,总是想着事情往好的方向发展;悲观锁对应于生活中悲观的人,总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另一种人悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别     阅读全文
丁起男's avatar
丁起男 01月 26,2021

java-SPI

java-SPI什么是spi?spi全称serviceproviderinterface,是java提供的一套用来被第三方实现和扩展的接口,是一种将服务接口与服务分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引入了spi接口的实现者,通过本地的注册发现获取到具体的实现类,轻松可插拔     阅读全文
丁起男's avatar
丁起男 01月 26,2021

java-switch常见问题

java-switch常见问题javaswitch支持byte、short、int类型,在jdk1.5时,支持了枚举类型,在jdk1.7时,又支持了string类型为什么不支持long?switch底层是使用int类型来进行判断的,即使是枚举、string类型,最终也是转变成int类型。由于long     阅读全文
丁起男's avatar
丁起男 01月 22,2021

java-对象的内存布局

java-对象的内存布局在java中对象的内存不久分为两种情况,非数组对象和数组对象数组对象和非数组对象的区别就是数组对象需要额外的空间存储数组的长度length对象头对象头又分为MarkWord和ClassPointer两部分MarkWord:包含一系列的标记位,比如轻量级锁的标记位,偏向锁标记位     阅读全文
丁起男's avatar
丁起男 12月 14,2020

java-对象的创建过程

java-对象的创建过程基于HotSpotVM分代模型一个对象new出来先判断线程栈是否能分配下如果能分配下,直接分配在栈中如果分配不下则进行第二步判断该对象是否足够大如果足够大,则直接进入老年代如果不够大,则进行第三步判断创建对象的线程的tlab(本地线程缓冲区)空间是否足够如果足够,直接分配在t     阅读全文
丁起男's avatar
丁起男 12月 14,2020

jvm-类加载过程

jvm-类加载过程加载通过类的全名获取其二进制字节流将字节流代表的静态结构转化为方法区识别的运行时数据结构在内存中实例化这个类的java.lang.Class对象(不一定是堆内存中的,HotSpot就将Class对象放在了方法区里),程序访问这个类在方法区中的类型数据时会通过这个类去访问连接验证文件     阅读全文
丁起男's avatar
丁起男 11月 20,2020

java字节码

java字节码魔数(Magic)所有的.class文件的前四个字节都是魔数,魔数的固定值为:CAFEBABE。jvm可以根据文件的开头来判断这个文件是否可能是一个.class文件,如果是,才会继续进行之后的操作版本号(Version)版本号为魔数之后的4个字节,前两个字符表示次版本号(MinorVe     阅读全文
丁起男's avatar
丁起男 11月 03,2020

spring自动装配的方式

spring自动装配的方式no默认的方式是不进行自动装配,通过显示设置ref属性来进行装配byName通过参数名自动装配,spring容器在配置文件中发现bean的autowire属性被设置成byName,之后容器试图匹配、装配和该bean的属性具有相同名称的beanbyType通过参数类型自动装配     阅读全文
丁起男's avatar
丁起男 10月 30,2020

spring 依赖注入的方式

spring依赖注入的方式构造器注入publicCatDaoImpl(Stringmessage){this.message=message;}<beanid="catDaoImpl"class="com.CatDaoImpl"><const     阅读全文
丁起男's avatar
丁起男 10月 30,2020

spring bean作用域

springbean作用域singleton单例模式springioc容器中只会存在一个共享的bean实例,无论有多少个bean引用它,始终指向同一对象。该模式在多线程下是不安全的。singleton作用域是spring中的缺省作用域,也可以显示的将bean定义为singleton模式prototy     阅读全文
丁起男's avatar
丁起男 10月 30,2020