使用quartz实现不重启服务器修改自定义配置

为了方便维护系统,开发中通常会设置一些自定义参数,写在单独的配置文件里,需要调整时可直接登录服务器修复配置文件,而不需要修改程序。但尴尬的是,web服务器并不会自动重新加载配置文件,重启服务器又会中断服务。本文是一个使用quartz解决此问题的示例。 项目结构: 其中,system.properties是自定义配置文件,内容只有一行: debug=false这个定义了一个debug参...
阅读(444) 评论(0)

Java与算法之(13) - 二叉搜索树

查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 5, 12, 2, 6, 10, 14, 1, 3, 4, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单: int key = 15; int[] datas = new int[] { 8, 5, 12, 2, 6, 10, 14, 1, 3, 4, 7, 9, 11, 13, 15 }; for(...
阅读(3307) 评论(0)

苹果充值常见的刷单手段和防范方法

苹果充值的刷单现象在游戏行业非常普遍,很多团队挖空心思寻找漏洞以非法获利。常见的手段主要有以下六种: 伪造充值凭据(receipt)以小额凭据骗取大额商品 凭据重复使用 凭据重复使用信用卡黑卡/退款利用外币卡折扣赚取差价利用苹果对小额消费不做验证的"36技术" 其中,前三种是开发者本身的程序问题,可通过完善代码中的验证流程解决,后三种则是利用了苹果充值的政策的一些漏洞。但是...
阅读(21088) 评论(0)

Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)

贪吃的小老鼠又回来了,这次有什么新的办法吃到奶酪呢? 规则不变,只能上下左右在格子内移动。 因为上次的深度优先算法让老鼠走了不少冤枉路,这次老鼠带来了帮手探路鼠。探路鼠的使用规则如下: 小老鼠按右、下、左、上的顺序向身边四个格子尝试放出探路鼠,如果遇到猫、出边界、已经有探路鼠存在的格子则放弃。 每只探路鼠都有唯一的顺序号,第一只从1开始,每放成功一只序号递增1。 老鼠探路完成后,...
阅读(1792) 评论(0)

Java与算法之(11) - 合并排序

天下事,合久必分,分久必合。合并排序的基本思想正是先分再合。 例如对3, 1这个数列排序,首先是分,分为3和1两个数列,然后再合并并排序。合并需要额外的辅助空间,即建立一个两个数列长度之和的空数组用于存储合并结果。 合并分为三步: 1)两个数列在起始位置各分配一个"指针",对比指针位置的数字,取较小的数字存入辅助数组。数字被移出的一侧,指针右移一格,再次比较两个指针位置的数字,直到某一侧的指...
阅读(1438) 评论(0)

Java与算法之(10) - 希尔排序

希尔排序是插入排序的一种,是直接插入排序的改进版本。 对于上节介绍的直接插入排序法,如果数据原来就已经按要求的顺序排列,则在排序过程中不需要进行数据移动操作,即可得到有序数列。但是,如果最初的数据是按倒序排列的,则在进行插入排序时每次的比较都需要向后移动数据,这样,将导致算法的效率很低。 希尔排序的思想是把数列划分为若干个较小的数列,对每组数列使用直接插入排序算法排序,随着增量逐渐减少,每...
阅读(1837) 评论(0)

Java与算法之(9) - 直接插入排序

直接插入排序是最简单的排序算法,也比较符合人的思维习惯。想像一下玩扑克牌抓牌的过程。第一张抓到5,放在手里;第二张抓到3,习惯性的会把它放在5的前面;第三张抓到7,放在5的后面;第四张抓到4,那么我们会把它放在3和5的中间。 直接插入排序正是这种思路,每次取一个数,从前向后找,找到合适的位置就插进去。 代码也非常简单: /** * 直接插入排序法 * Created by aut...
阅读(1928) 评论(0)

Java与算法之(8) - 堆排序

堆是一种特殊的完全二叉树,其特点是所有父节点都比子节点要小,或者所有父节点都比字节点要大。前一种称为最小堆,后一种称为最大堆。 比如下面这两个: 那么这个特性有什么作用?既然题目是堆排序,那么肯定能用来排序。想要用堆排序首先要创建一个堆,如果对4 3 6 2 7 1 5这七个数字做从小到达排序,需要用这七个数创建一个最大堆,来看代码: /** * 堆排序 * 堆: 特殊的完全二叉...
阅读(3646) 评论(0)

Java与算法之(7) - 完全二叉树

树 下图是一“棵”树的样子。树这个名称起的很形象,整个数据结构由根、枝、叶组成,其中1为根节点,2、3是1的子节点,4、5、6、8、9、10这几个没有子节点的节点称为叶节点。 节点的度:一个节点的子树的数量称为该节点的度。例如,图中节点2的度为3,节点3的度为2。 树的度:一棵树的度是指该树中节点的最大度数。如图中树的度是3。 节点的层数:每个节点都处在一定的层次上,图中根...
阅读(3695) 评论(0)

在IDEA中实战Git

工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小袁修改了部分源码,提交到远程仓库 场景四:小张从远程仓库获取小袁的提交 场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发 场景六:小袁把分支提交到远程Git仓库 场景七...
阅读(27915) 评论(7)

Java与算法之(6) - 八皇后问题

在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 (文字和图片来自百度百科) 如果动手来摆放皇后,可以用这样一种思路:在最左侧一列放下一个皇后,然后在右边一列从上到下找到第一个与左边皇后不冲突的位置,摆放第二个皇后;在向后一列,从上到下找到第一个与前两个皇后不冲突的位置摆放第三个皇后,依次类推,直到在最后一列摆下...
阅读(4124) 评论(0)

Java与算法之(5) - 老鼠走迷宫(深度优先算法)

小老鼠走进了格子迷宫,如何能绕过猫以最短的路径迟到奶酪呢? 注意只能上下左右移动,不能斜着移动。 在解决迷宫问题上,深度优先的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径。 首先用一个二维数组来把迷宫“数字化”。 int[][] maze = new int[5][4];迷宫中每个格子的横纵坐标对应数组的一维和二维索引,例如最左上角的格子是maze[0][0],...
阅读(6217) 评论(0)

Java与算法之(4) - 数字全排列

全排列是指n个数(或其他字符)所有可能的排列顺序,例如1 2 3三个数字的全排列是 1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1 那么问题来了,任意输入一个大于1的数字n,列出1-n这n个数字的全排列。...
阅读(4722) 评论(0)

Java与算法之(3) - 斐波那契数列

斐波那契数列问题:如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第三个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,1年后能繁殖出多少对兔子?...
阅读(4330) 评论(0)

Java与算法之(2) - 快速排序

快速排序的基本思路是,每次选定数列中的一个基准数,将小于基准数的数字都放到基准数左边,大于基准数的数字都放到基准数右边。然后再分别对基准数左右的两个数列分别重复以上过程。仍以4 3 6 2 7 1 5为例。 选定最左侧数字4为基准数,首先从右开始向左找小于4的数,找到第一个数1后停止。然后从左开始向右找到第一个大于4的数,即6。 交换这两个数的位置,得到 继续寻找,仍然从右边...
阅读(3998) 评论(0)

Java与算法之(1) - 冒泡排序

冒泡排序法的原理是,每次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。 例如对4 3 6 2 7 1 5这7个数字进行从小到大的排序,从最左侧开始,首先比较4和3 因为是从小到大排序,4和3的顺序显然是错误的,交换他们,得到...
阅读(4044) 评论(1)

ODBC、JDBC和四种驱动类型

早期的数据库开发领域没有通用的应用程序编程接口,开发人员在使用不同数据库产品时,必须学习和使用厂商专用API,例如Oracle Call Interface、Microsoft Database Library等。针对业界对通用编程接口的需求,微软推出了ODBC(Open Database Connectivity)方案,并获得厂商和开发人员的认可。ODBC建立了一组规范,并提供了对数据库访问的标...
阅读(1854) 评论(0)

Maven适配多种运行环境的打包方案

项目从开发到部署会历经多个运行环境,如开发环境、测试环境和生产环境,不同环境中项目的配置文件通常也会不同,典型的如数据库连接配置。我们当然不希望每次部署打包前都去修改配置文件以适配环境,利用Maven的Profile和资源过滤,可以实现自动按环境设置调整配置文件。...
阅读(1199) 评论(0)

从头开始基于Maven搭建SpringMVC+Mybatis项目(4)

接上文内容,上一节中的示例中完成了支持分页的商品列表查询功能,不过我们的目标是打造一个商品管理后台,本节中还需要补充添加、修改、删除商品的功能,这些功能依靠Mybatis操作数据库,并通过SpringMVC的数据验证功能检查数据合法性。既然是后台,那么肯定还需要验证和登录,这部分使用拦截器(interceptor)来实现。此外,我们还需要解决诸如中文处理、静态资源过滤等经常会造成麻烦的小问题。...
阅读(4611) 评论(0)

从头开始基于Maven搭建SpringMVC+Mybatis项目(3)

接上文内容,本节介绍基于Mybatis的查询和分页功能,并展示一个自定义的分页标签,可重复使用以简化JSP页面的开发。 在上一节中,我们已经使用Maven搭建好了项目的基础结构,包括一个父项目petstore-parent和数据库持久层模块petstore-persist及Web站点petstore-web,现在来为petstore-web添加一些功能。对于初学者来说,可能...
阅读(42092) 评论(2)
55条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:358314次
    • 积分:3460
    • 等级:
    • 排名:第9011名
    • 原创:51篇
    • 转载:1篇
    • 译文:0篇
    • 评论:40条
    博客专栏
    文章分类
    最新评论