n2

Spring实现AOP的多种方式

本秂侑毒 提交于 2020-01-06 05:54:23
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术。AOP是OOP的补充,是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP可以分为静态织入与动态织入,静态织入即在编译前将需织入内容写入目标模块中,这样成本非常高。动态织入则不需要改变目标模块。Spring框架实现了AOP,使用注解配置完成AOP比使用XML配置要更加方便与直观。 上一篇随笔中已经详细讲了代理模式 。 一、基于XML配置的Spring AOP 在讲注解实现AOP功能前先用前面学习过的使用xml配置Spring AOP功能,这样是为了对比以便更好的理解。 1.1、新建一个Maven项目,添加引用,项目的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven

C#高级参数ref的使用

限于喜欢 提交于 2020-01-05 21:37:41
ref关键字用于将方法内的变量改变后带出方法外。具体我们通过例子来说明: 例子中,将变量n1和n2交换了。如果没有加ref参数,由于没有swadDemo()方法没有返回值,调用后,n1和n2是不会交换的,但是加了ref后,变量便会在swadDemo()中改变后并带出。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace blog { class Program { static void Main(string[] args) { refDemo(); } #region 使用高级参数ref private static void refDemo() { int n1 = 1; int n2 = 2; swadDemo(ref n1, ref n2); Console.WriteLine("n1:" + n1 + "\r\n" + "n2:" + n2); Console.ReadLine(); } #endregion #region 高级参数ref用法 public static void swadDemo(ref int a, ref int b) { //注意,这个方法中

oracle函数 SUBSTR(c1,n1[,n2])

倾然丶 夕夏残阳落幕 提交于 2020-01-01 05:35:56
【功能】取子字符串 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串. 【返回】字符型 【示例】 SQL> select substr('13088888888',3,8) test from dual; test -------- 08888888 来源: https://www.cnblogs.com/fanweisheng/p/11120070.html

【shell】整数运算,小数运算

↘锁芯ラ 提交于 2019-12-27 06:32:00
【shell】整数运算,小数运算 1.整数运算 【demo01】expr typeset x=10 typeset y=2 n1=`expr $x + $y` n2=`expr $x - $y` n3=`expr $x \* $y` #使用expr时 符号* 需要转义 n4=`expr $x / $y` n5=`expr $x % $y` echo n1=$n1,n2=$n2,n3=$n3,n4=$n4,n5=$n5 【demo02】小括号 typeset x=10 typeset y=2 ((n1=$x+$y)) ((n2=$x-$y)) ((n3=$x*$y)) ((n4=$x/$y)) ((n5=$x%$y)) echo n1=$n1,n2=$n2,n3=$n3,n4=$n4,n5=$n5 echo $(($x+$y)) echo $(($x-$y)) echo $(($x*$y)) echo $(($x/$y)) echo $(($x%$y)) 说明:((n1=$x+$y)) 等价于 n1=`expr $x + $y` 【demo03】中括号 typeset x=10 typeset y=2 echo $[$x+$y] echo $[$x-$y] echo $[$x*$y] echo $[$x/$y] echo $[$x%$y] 【demo04】let typeset x

IOI2020集训队作业 -17 (CF536D, AGC027F, AGC024E)

自古美人都是妖i 提交于 2019-12-27 01:50:14
A - CF536D Tavas in Kansas Sol 将每个点抽象成二维平面上的点,横坐标为这个点到 s s s 的最短路长度,纵坐标为这个点到 t t t 的最短路的长度。则任意时刻还没有选过的点总是在右上角的一个矩形内。以矩形的左下角位置作为状态进行 d p dp d p ,转移可以前缀和优化。时间复杂度 O ( n 2 ) O(n^2) O ( n 2 ) 。 Code # include <cstdio> # include <iostream> # include <algorithm> # include <cstring> # include <queue> # define ll long long using namespace std ; template < class T > inline void rd ( T & x ) { x = 0 ; char c = getchar ( ) ; int f = 1 ; while ( ! isdigit ( c ) ) { if ( c == '-' ) f = - 1 ; c = getchar ( ) ; } while ( isdigit ( c ) ) x = x * 10 - '0' + c , c = getchar ( ) ; x * = f ; } const int N = 2010 ;

矩阵微积分的一些实用结论与推导

断了今生、忘了曾经 提交于 2019-12-26 23:06:56
矩阵微积分的一些实用结论与推导 向量与矩阵的相关运算 矩阵的一元运算 矩阵的拉直算子 矩阵的迹 矩阵的行列式 伴随矩阵与矩阵的逆 矩阵的二元运算 矩阵的乘法 Hadamard乘积 Kronecker积 数量对向量的导数 数量对列向量的导数 对内积运算求导 对矩阵与向量的乘积求导 对二次型求导 矩阵对矩阵的导数 数量对矩阵的导数 对矩阵的一元运算求导 对拉直算子求导 对矩阵的迹求导数 对矩阵的行列式求导数 对矩阵的二元运算求导 对矩阵的乘法求导 对矩阵的Hadamard乘积求导 对矩阵的张量积求导 在一些优化问题中,经常会出现选择向量或者矩阵来最优化某个目标函数的情况,要想从理论上求解这类优化,就需要正确计算目标函数关于向量或者矩阵的导数。比如多元回归模型中,要用最小二乘法估计回归系数,需要做以下的最优化: min ⁡ β Q = ( Y − X β ) 2 {\min_{\beta}} Q=(Y - X\beta)^2 β min ​ Q = ( Y − X β ) 2 然而现有的教材和论文都只是需要什么就临时查证推导一下,很少有系统地总结目标函数怎么对向量或矩阵求导的资料。这篇博文比较全面地整理了向量与矩阵的一些常用运算,以及怎么对这些常用运算求导的方法。有张量积和拉平算子就足以解决大部分领域的问题了,所以这篇博文不会涉及张量以及张量分析的内容

求两个有序数组的中位数或者第k小元素

核能气质少年 提交于 2019-12-25 06:51:56
问题:两个已经排好序的数组,找出两个数组合并后的中位数(如果两个数组的元素数目是偶数,返回上中位数)。 设两个数组分别是vec1和vec2,元素数目分别是n1、n2。 算法1 :最简单的办法就是把两个数组合并、排序,然后返回中位数即可,由于两个数组原本是有序的,因此可以用归并排序中的merge步骤合并两个数组。由于我们只需要返回中位数,因此并不需要真的合并两个数组,只需要模拟合并两个数组:每次选数组中较小的数,统计到第(n1+n2+1)/2个元素就是要找的中位数。算法复杂度为O(n1+n2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 int findMedian_merge(vector< int > &vec1, vector< int > &vec2) { int N1 = vec1.size(), N2 = vec2.size(); int medean = (N1 + N2 + 1) / 2, i = 0, j = 0; for ( int k = 1; k < medean; k++) { if (i < N1 && j < N2) { if (vec1[i] < vec2[j])i++; else j++; } else if (i >= N1) //数组vec1到达末尾 j++; else

POJ1006: 中国剩余定理的完美演绎

岁酱吖の 提交于 2019-12-23 22:09:54
问题描述 人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。 问题分析 首先我们要知道,任意两个峰值之间一定相距整数倍的周期。假设一年的第N天达到峰值,则下次达到峰值的时间为N+Tk(T是周期,k是任意正整数)。所以,三个峰值同时出现的那一天(S)应满足 S = N1 + T1*k1 = N2 + T2*k2 = N3 + T3*k3 N1,N2,N3分别为为体力,情感,智力出现峰值的日期, T1,T2,T3分别为体力,情感,智力周期。 我们需要求出k1,k2,k3三个非负整数使上面的等式成立。 想直接求出k1,k2,k3貌似很难,但是我们的目的是求出S, 可以考虑从结果逆推。根据上面的等式,S满足三个要求:除以T1余数为N1,除以T2余数为N2,除以T3余数为N3。这样我们就把问题转化为求一个最小数,该数除以T1余N1,除以T2余N2,除以T3余N3。这就是著名的中国剩余定理,我们的老祖宗在几千年前已经对这个问题想出了一个精妙的解法。依据此解法的算法,时间复杂度可达到O(1)。下面就介绍一下中国剩余定理。

求两个有序数组的中位数和者第k小元素

筅森魡賤 提交于 2019-12-22 13:23:41
问题:两个已经排好序的数组,找出两个数组合并后的中位数(如果两个数组的元素数目是偶数,返回上中位数)。 设两个数组分别是vec1和vec2,元素数目分别是n1、n2。 算法1 :最简单的办法就是把两个数组合并、排序,然后返回中位数即可,由于两个数组原本是有序的,因此可以用归并排序中的merge步骤合并两个数组。由于我们只需要返回中位数,因此并不需要真的合并两个数组,只需要模拟合并两个数组:每次选数组中较小的数,统计到第(n1+n2+1)/2个元素就是要找的中位数。算法复杂度为O(n1+n2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 int findMedian_merge(vector< int > &vec1, vector< int > &vec2) { int N1 = vec1.size(), N2 = vec2.size(); int medean = (N1 + N2 + 1) / 2, i = 0, j = 0; for ( int k = 1; k < medean; k++) { if (i < N1 && j < N2) { if (vec1[i] < vec2[j])i++; else j++; } else if (i >= N1) //数组vec1到达末尾 j++; else

22.CAP理论

我只是一个虾纸丫 提交于 2019-12-21 16:39:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> CAP理论有以下两个版本: 第一个版本的解释:对于一个分布式计算系统,不可能同时满足一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三个设计约束。 第二个版本的解释:在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Avaliability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须牺牲。 对比两个版本的定义,有几个很关键的差异: 第二版定义了什么才是CAP理论讨论的分布式系统,强调了两点:interconnected和Share data (连接和数据共享),为何要强调这两点呢?因为分布式系统并不一定会互联和共享数据。最简单的如Memcache集群,相互之间没有连接和数据共享,因此Memcache集群这类分布式系统不符合CAP理论探讨的对象;而Mysql集群就是互联和进行数据复制的,因此是CAP理论讨论的对象。 第二版强调了write/read pair,也就是说,CAP理论关注的是数据的读写操作,而不是分布式系统中的所有功能。如Zookeeper的选举机制就不是CAP探讨的对象。 所以,相比来说,第二版定义更加精确。 一致性