Avril Lavigne Blog

Happiness is accompanied by sorrow,and it would turn sunny after rain as well.
If rain remainsafter rain and sorrow remains after sorrow ,please take those farewells easy,
and turn to smiling look for yourself who is never to appear.

fastjson泛型踩坑

"welcome to ARTAvrilLavigne Blog"

一、fastjson泛型报错 1.1、现象简述   项目代码开发过程中,继续新增方法利用fastjson泛型转换API接口的响应字符串为对象后获取元素抛异常为com.alibaba.fastjson.JSONObject cannot be cast to com.xxxx.JobZoneInfo.   fastjson泛型转换报错位置写法如下所示...

软件测试方法总结

"welcome to ARTAvrilLavigne Blog"

一、软件测试方法 1.1、简述   软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。   软件的六个生命周期:计划,需求分析,代码设计,代码编码,测试,运行,维护   软件测试流程:需求分析,制定测试计划,编写测试用例,用例评审,执行测试,测试评估   软件测试阶段:单元测试、集成测试、系统测试、验收测...

JDK1.8之StampedLock读写锁

"welcome to ARTAvrilLavigne Blog"

一、StampedLock 1.1、简述   StampedLock是Java8引入的一种新的所机制,可以认为它是读写锁ReentrantReadWriteLock的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略。如果有大量的读线程,也有可能引起写线程的饥饿。而StampedLock则提供...

Spring之Bean的加载过程

"welcome to ARTAvrilLavigne Blog"

一、概述 1.1、说明   Spring 作为 Ioc 框架,实现了依赖注入,由一个中心化的 Bean 工厂来负责各个 Bean 的实例化和依赖管理。各个 Bean 可以不需要关心各自的复杂的创建过程,达到了很好的解耦效果。对Spring 的工作流进行一个粗略的概括,主要为两大环节: 解析:读 xml 配置,扫描类文件,从配置或者注解中获取 Bean 的定义信息,注册一些扩展功能。...

mybatis踩坑记录

"welcome to ARTAvrilLavigne Blog"

一、mybatis遇坑记录 1.1、问题说明   这两周做维保平台的报表记录模块的需求,遇到mybatis的一个隐藏的大坑BUG。一一检查数据库以及mybatis的xml配置与mapper文件都是正确的,并且别人写的配置查询模块的sql方法都正常执行,我写的报表模块就是出问题,在断点下运行到执行mapper的sql方法时一直都是报错,不管是增删改查的方法都会报错,报错记录例如为:org....

mysql的索引数据结构

"welcome to ARTAvrilLavigne Blog"

一、mysql索引 1.1、索引数据结构   MySQL的索引使用B+树作为数据结构,而不是B树。原因如下所示: B+树的磁盘读写代价更低:B+树的内部节点并没有指向关键字具体信息的指针,因此其内部节点相对B树更小,如果把所有同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多,一次性读入内存的需要查找的关键字也就越多,相对IO读写次数就降低了。 ...

DCF与PE模型企业估值

"welcome to ARTAvrilLavigne Blog"

一、DCF模型 1.1、DCF模型定义   DCF现金流量贴现法(Discounted Cash Flow Method),即把企业未来特定期间内的预期现金流量还原为当前现值。由于企业价值的真髓还是它未来盈利的能力,只有当企业具备这种能力,它的价值才会被市场认同,因此理论界通常把现金流量贴现法作为企业价值评估的首选方法,在评估实践中也得到了大量的应用,并且已经日趋完善和成熟。   定义公...

多线程之Callable接口

"welcome to ARTAvrilLavigne Blog"

一、创建线程的方法   常见的四种创建线程的方式:Thread、Runnable接口、线程池、Callable接口 1、通过继承Thread类实现 特点:多个线程之间无法共享该线程类的实例变量。重写run方法,用start方法启动线程 2、实现Runnable接口 特点:较继承Thread类,避免继承的局限性,适合资源共享。需要实现不返回任何内容的run()方法,然后用new T...

mysql索引总结

"welcome to ARTAvrilLavigne Blog"

一、索引介绍   索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。建立索引的目的是加快对表中记录的查找或排序。 1.1、索引原理   索引一般以文件形式存在磁盘中(也可以存于内存中),存储的索引原理大致概括为以空间换时间,数据库在未添加索引的时候进行查询默认的是进行全量搜索,也就是进行全局扫描,有多少条数据就要进行多少次查询,然后找到相匹配的...

JAVAの锁

"welcome to ARTAvrilLavigne Blog"

一、JAVA的各种锁   Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。Java中往往是按照是否含有某一特性来定义锁,通过特性将锁进行分组归类,再使用对比的方式进行介绍(本文中的源码来自JDK 8和Netty 3.10.6)。下面给出本文内容的总体分类目录: 二、乐观锁 VS 悲观锁   乐观锁与悲观锁是一...

みなさんのごおうえんをおねがいします~~