0%

Basic Knowledge

Maven常用命令

scope详解

https://www.cnblogs.com/hzzll/p/6738955.html

dependencies与dependencyManagement的区别

根据maven子模块继承父模块的特性,不难理解两者肯定都有继承父模块依赖的作用,但是要注意他们的区别是:

dependencies里面声明的依赖,子模块会默认全部继承,不用手动去引入依赖;而dependencyManagement里面声明的依赖,则不会再子模块中自动去隐式依赖,只有子模块中声明了依赖,并且没有指明依赖的版本这种情况才会到父模块中寻找dependencyManagement中的对应依赖,要注意的是,如果子模块声明了依赖版本号,那么在dependencyManagement中如果也有同一依赖库的不同版本共存的话,maven优先去依赖的是子模块自己的版本

Maven仓库下载依赖太慢的解决方案

将仓库中心更改为阿里云的,修改setting.xml,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>

<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
</settings>
Read more »

程序 = 数据结构 + 算法

算法的效率度量

时间复杂度(Time complexity)

算法的时间复杂度是一个函数,它定性描述该算法的运行时间,时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数,使用这种方式时,时间复杂度可被称为是渐近的(渐近分析(asymptotic analysis、asymptotics),在数学分析中是一种描述函数在极限附近的行为的方法)。
例如,如果一个算法对于任何大小为n(必须比n0大)的输入,它至多需要$5n^{3}+3n$的时间运行完毕(也就是时间开销和问题规模n的关系为:$T_{(n)}=5n^{3}+3n$,这个时候,低阶项3n应该被抛弃,首项系数5也不保留),那么它的渐近时间复杂度是$O(n^{3})$;某个算法的运行时间至多需要$n^{2}+3n+1000$,那么其时间复杂度为$O(n^{2})$。

渐近规则:

  • 多项相加,只保留最高阶的项,且系数变为1;
  • 多项相乘,都保留。

阶数由低到高如下:

上图从左到右的算法中,随着问题规模的增大,时间开销会依次递增。

BOILERPLATE:

1
2
3
4
5
6
7
8
void test(int n){// n为问题规模
int i = 1; // 只运算1次
while(i<=n){ // 总共会运算n+1次
i++; // 总共会运算n次
doSomething(i); // 总共会运算n次
}
doMore(i); // 只运算1次
}

这个算法的时间开销与问题规模n关系如下:
$T(n)=3n+3$
换算成渐近的时间复杂度就是O(n)
如果在while循环里面增加一个for循环:

Read more »

TodoItem

eslint-plugin-vue todo

调试技巧 todo

前端加密的库CryptoJS使用demo todo

以及相同的流行的库有什么?

Vue的生命周期 todo

Problem Solution

Vue.js devtools灰色状态

首先要确保编译的控制台没有error,在Sources里面有源码可以debug。

Invalid prop: type check failed for prop “queryForm”. Expected Array, got Promise

Read more »

踩过的坑

指数基金的坑

之前买过几只指数基金,因为没有太多时间去仔细研究,我就从天天基金最近的热销版中挑选了农业、消费、饮食、建筑四个方向的指数,加上受疫情影响,按道理后面应该是利好方向的,所以总共买了6万左右。

然而我忽略了一个投资的定律:

  • 别人都纷纷买入了一段时间大涨之后,绝对不能轻易跟投,指不定就已经是山顶了;
  • 别人都纷纷卖出也不是进场的时候,指不定还在半山腰;

债券基金

纯债基金

  • 纯债基金与非纯债基金,力哥建议投资优先考虑纯债基金,在想要投资债券基金的情况下。
    • 这里要注意的是,纯债基金中是允许投资可转债的,这种从严格意义上来讲是非纯债基金,如果投资范畴定位在百分之百纯债基金的话,那么要抛弃包含可转债的纯债基金。

投资技巧

  1. 基金基于四四三三的情况下;或者直接在天天基金网选择长时间的范围来排名前三十位的,其网站有长期纯债可选。
  2. 剔除投资了可转债的基金。
  3. 剔除小公司基金。
  4. 剔除基金规模太大的,比如超过20亿。
  5. 剔除同一家大型基金公司的非王牌基金。
  6. 挑选出综合费率最低的。
  7. 选择成立时间相对更长的,基金经理年龄较大,其管理时间较长的。
Read more »

Basic Knowledge

各种查询条件组装

参考:https://mynews.likecoder.com/News/54208

mybaties数据源配置类型(POOLED、JNDI、UNPOOLED)

  • dataSource的类型可以配置成其内置类型之一,如UNPOOLED、POOLED、JNDI。
    • 如果将类型设置成UNPOOLED,mybaties会为每一个数据库操作创建一个新的连接,并关闭它。该方式适用于只有小规模数量并发用户的简单应用程序上。
    • 如果将属性设置成POOLED,mybaties会创建一个数据库连接池,连接池的一个连接将会被用作数据库操作。一旦数据库操作完成,mybaties会将此连接返回给连接池。在开发或测试环境中经常用到此方式。
    • 如果将类型设置成JNDI。mybaties会从在应用服务器向配置好的JNDI数据源DataSource获取数据库连接。在生产环境中优先考虑这种方式。

自动分页要开启PaginationInterceptor插件

https://mybatis.plus/guide/page.html

1
2
3
4
5
6
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}

${} vs #{}

1
2
3
#方式能够很大程度防止sql注入。
#方式会在外面加一层字符串标识的包装:"xxx" or 'xxx'
$方式无法防止Sql注入。
Read more »