- 博客(14)
- 资源 (3)
- 问答 (5)
- 收藏
- 关注
转载 CQRS解耦
借用公司大佬写的一句话:好的模型设计基础上,良好的解耦是支撑业务不确定性的关键。 在项目开发中深有感触,系统架构如果做到了良好的解耦,可以大大的提高整个系统的可扩展性,可复用性。可以快速的支撑不同业务的接入,并且整个系统架构不会因为业务量的繁多,不同业务之间的差异而显得混乱。其中包含了CQRS解耦,也就是读写分离的思想,其中的奥秘还需要慢慢深入的探索。在了解的过程中看到了汤雪华大神的帖子,在此做...
2018-12-15 20:07:58
663
原创 内部排序和外部排序小结
一、内部排序的比较: 1、从时间复杂度来看: 简单选择排序、直接插入排序和冒泡排序的平均复杂度都为 O(n2),并且实现过程也较为简单,但是直接插入排序和冒泡排序在最好的情况下时间复杂度可以达到 O(n),而简单选择排序则与序列的初始状态无关。 希尔排序作为插入排序的扩展,对较大规模的排序都可以达到很高的效率,但是目前未得出其精确的渐近时间。 堆排序是利用一种称为堆的数据结构,可以在线性时...
2018-08-14 16:49:13
12509
1
原创 归并排序
归并排序 “归并”的含义是将两个或者两个以上的有序表组合成一个新的有序表。假设待排序表含有n个记录,则可以看成n个有序的子表,每个子表长度为1,然后两两归并,得到 n/2 个长度为2或者1的有序表;再两两归并,直到合并成一个长度为n的有序表为止,这种排序方法称为 2-路归并排序。 递归的2-路归并排序算法是基于分治算法的 ,以O(NlogN)最坏情形时间运行,而所使用的比较次数几乎是最优的...
2018-08-13 17:42:00
4695
1
原创 选择排序(简单选择排序和堆排序)
选择排序的基本思想是:每一趟(例如第i趟)在后面的 n-i+1 个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第 n-1 趟做完,待排序元素只剩下一个,就不用再选了。这里主要讲简单选择排序和堆排序(重点,面试中问到过) 一、简单选择排序 基本思想:假设排序表为 L[1....n] ,第i趟排序即从L[i,,,,n] 中选择关键字最小的元素与 L(i) 交...
2018-07-26 22:26:27
26141
3
原创 交换排序(冒泡排序和快速排序)
所谓交换,就是根据序列中的两个元素关键字的比较结果来对换这两个记录在序列中的位置,主要的有冒泡和快速排序 一、冒泡排序 冒泡基本思想:假设待排序表长为n,从后往前(从前往后)两两比较相邻的元素的值,若为逆序,则交换他们,直到序列比较完,则称为一趟冒泡:结果将最小的元素交换到待排序列的第一个位置。下一趟冒泡时,前一趟确定的最小元素不再参与比较。这样最多做 n-1 趟冒泡就能把所有的...
2018-07-26 19:04:05
1057
原创 插入排序(直接插入排序、折半插入排序和希尔排序)
插入排序是一种简单直观的排序方法,其基本思想是在于每次将一个待排序的记录, 按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 插入排序可分为:直接插入排序、折半插入排序和希尔排序。 1、直接插入排序 插入排序在实现上通常采用就地排序(空间复杂度为O(1)),因此在从后面的比较过程中,需要反复的把已经排好序的元素逐步向后挪位,为新元素插入空间。 pu...
2018-06-15 22:33:48
3107
原创 在Windows服务器上安装JDK,Tomcat,MySQL进行项目的部署运行
在Windows服务器上安装JDK,Tomcat,MySQL进行项目的部署运行。今天因为要部署项目到服务器上,又是一个新的服务器又要重新进行环境的搭建,所以今天又弄了很久才部署成功。所以记录一下。 1,此处安装基于Windows的服务器,大家可以去腾讯云或者阿里云上购买,学生价很便宜。 2,登录腾讯云,可以修改服务器的密码 3,记住服务器的用户名密码,在本地搜索“远程桌面连接”,用用户名(Wind
2017-11-28 21:28:02
9654
4
原创 分治算法之快速排序
分治算法由两部分组成: 分:递归解决较小的问题(基本情况除外)。 治:然后从子问题的解构建原问题的解。 传统上,在正文中至少含有两个递归调用的例程叫作分治算法,而正文中只含有一个递归调用的例程不是分治算法。一般坚持子问题是不相交的(即基本不重叠)。 分治算法的经典例子有归并排序和快速排序,它们分别有O(N logN)的最坏情形以及平均情形的时间界。 所有有效的分治算法都是把问题分成一些子
2017-10-06 21:38:31
14029
1
原创 用递归程序求解随机产生一个正整数n(n>=100000),确定n是否是它所有因子之和
## 用递归程序求解随机产生一个正整数n(n>=100000),确定n是否是它所有因子之和(完数) ## 了解什么是因子:因子就是所有可以整除这个数的数,不包括这个数自身,例如:6的因子为1,2,3。 完数:即某正整数的所有因子之和等于该数,即为完数。例:6的因子为1,2,3且6=1+2+3;即称6为完数。 进行分析,要求利用递归实现,递归是一种直接或间接引用自身的定义方法。一个合法的递归定义包括两
2017-09-26 11:31:36
5395
1
转载 设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。 概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整
2017-08-10 13:01:40
209
原创 设计模式之简单工厂模式
因最近做项目时要自己搭框架,全程都是面向对象思想,涉及到很多设计模式,于是去看了《大话设计模式》这本书,很多都是借鉴这本书的,第一章讲的便是简单工厂模式。 书中讲的是一个毕业生去面试,考官叫他设计一个简单的计算器,由此引出设计模式。 Class Program { public static void main(String[] args) { try{ C
2017-08-08 22:51:17
308
原创 通过反射和缓存区对一个类中的私有属性,私有方法进行设值,取值操作
今天做项目的时候遇到一个问题,当实体类User里属性和get,set方法全是私有的,我们要怎么对其中的属性,和方法进行操作。我们知道一般的new对象是肯定行不通的。 现有两种方法来解决这个问题,其中一种方法是我们熟悉的反射操作,还有一个方法便是利用缓存区StringBuilder或者StringBuffer配合构造方法来实现。 /** * 用户表 * @author Aar
2017-07-24 21:30:47
475
原创 简单制作属于自己的二维码
一、二维码的简介 二维码或者二维条码是用某种特定的几何图形按一定的规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的图形。二维码有各式各样。 二维码上有很多的点和空白,其中的点代表二进制的1,而空白代码二进制的0。 二维码依据码制的编码原理,通常分为三种:线性堆叠式二维码、矩阵式二维码、邮政码。 a,线性堆叠式二维码:建立在一维条码基础上,按需要堆积成两
2017-04-26 15:23:43
10386
原创 既然选择远方,那便风雨兼程
作为一个带点文艺风的程序小白的第一篇文章,我是一个普通本科学校软件专业的一名大二学生,从c语言的学习到java,从讨厌到喜欢,从什么都不懂到越来越好奇。虽然现在还是菜鸡一个,希望通过自己的努力慢慢的一点点进步,身边优秀的人很多,要不断的超越就要付出比他们更多的努力,写博客的原因是想总结自己在学习过程中的一些经验、笔记,同时也希望可以提升自己的基础知识,继续文艺下去,可以的话希望可以帮到有需要的人,
2017-01-01 20:05:18
386
求大神指点,然后把前端页面连接后台
2016-10-26
求大神赐教 抽象类与接口的区别和特点
2016-10-08
求大神解答JAVA,接口,继承问题
2016-10-04
求大神,想按下堆栈按钮时,调用JTable让这个控件显示在界面上,即显示出堆栈顺序
2016-10-03
如何用正则表达式提取中文文档中的英文单词,并按字典顺序排序,这个表达式该如何写
2016-10-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人