- 博客(152)
- 资源 (11)
- 收藏
- 关注

原创 服务器知识:RAID技术图解
前段时间,跟着运维部门一块安装新到的一批服务器,在服务器刚到的时候,需要对新的服务器做RAID,做RAID的目的,是让改善磁盘的访问效率,增强磁盘的可用性和容错能力。当然如何需要看要做什么RAID了。 接下来,对RAID技术的种类进行一下整理。RAID0 在N块磁盘的情况下:数据在内存缓冲区写入磁盘的时候,根据磁盘的数量将数据分成N分,这些数据同时写入到N块磁盘中,使得数据整体的写入
2016-04-15 17:08:03
5323
13

原创 centos安装redis+三种启动方式
redis是一个nosql数据库。这一系列博客主要是针对服务器环境安装时候遇到的问题。使用nosql数据库可以提高数据的访问效率。因为我的项目中用到了redis,而现在需要搭建一个测试环境,所以整理一下。 在centos上安装redis可以通过直接通过命令行进行安装,当然前提是可以联入外网的。redis安装安装redis所需的必要包yum install gcc下载redis安装包//下
2016-03-24 20:34:49
53395
27

原创 linux环境安装(jdk+Jboss)
大多服务器都是用linux,因为linux作为服务器比windows服务器性能要高。当我们项目上线的时候,一般都会发布到linux服务器上。 本节会讲解linux服务器的环境简单搭建。 首先,要装一个linux服务器(linux环境安装)。如果要发布java项目的话,首先需要安装jdk,然后在使用一个应用服务器部署项目。1、jdk安装1.1下载linux环境的jdk,
2016-03-17 21:05:10
3449
9

原创 使用vagrant安装linux环境
vagrant简介 vagrant是一个构件虚拟开发环境的工具。他用于创建部署虚拟的开发环境,说白了就是使用vagrant装虚拟机,而装虚拟机的文件由运维组对开发环境做的一个镜像。 这样做的目的,省去了我们搭建开发环境,直接装一个虚拟机,把正在使用的开发环境的镜像还原进去。 当然使用vagrant最主要解决的一个问题就是,让开发环境同步。“代码在我机子上运
2016-03-15 19:32:46
4463
8

原创 高并发update的 死锁产生原因
在说这个之前首先了解一下讲一下update语句sql中的情况。死锁产生的条件:出现循环等待资源。update对锁的流程: 当sql发出一个update请求之后,数据库会对表中的每条记录加上U锁。然后数据库会根据where条件,将符合条件的记录转换为X锁。对不满足条件的记录释放U锁。环境模拟1. 创建数据库环境--创建数据库 create database DeadLockTest;
2016-01-20 16:58:14
55760
49

原创 ValueStack详解:EL和OGNL用法
最近在做一个OA的项目,经常出现因为 ${name} 和${#name}的区别导致,界面数据显示不出来。 所以需要对这两种使用方法进行总结一下。什么是值栈 值栈包含两个部分:Stack和Map。在对象栈Stack中存放的是一个个对象,Map中存放的是键值对。struts2的工作流程 左侧的分别为struts2的各种拦截器。值栈解析对于页面请求:xx.action?i
2015-11-23 22:33:23
2339
16

原创 性能优化:空间换时间
问题背景 在程序开发过程中,我们对于数据的处理,会有一些校验。 校验分为两种:简单校验和复杂校验。 对于一些简单的校验,如用户是否存在,密码是否正确等等。这种校验,可以说几乎不耗时的。所以也没必要在这里做优化。 对于复杂的校验,需要进行联合查询,通过查询很多次之后,才可以得出 数据的正确性与否。当然
2015-10-28 21:33:48
11656
26

原创 菜鸟学Struts——I18N对国际化的支持
大家肯定都喜欢玩游戏吧。对于是一个游戏迷的话,肯定玩过不少非常棒的经典单机游戏。比如说,国产的《古墓丽影》、《刺客信条》、《鬼泣》国产的仙剑,古剑等。在众多游戏系列中,国产的不必说了,下载破解了就能玩。但是对于哪些,下载下来是英文的韩文的游戏。对于电脑白痴的游戏迷来说,第一反映是:这游戏有没有汉化补丁? 为什么一些经典的游戏可以用汉化补丁?我们在开发程序的时候,是否也提供
2015-08-02 14:31:00
2419
10

原创 动态代理实现横切——封装事务
上节课中,通过现象2可知道:如果对各个实现相同的控制,则需要重复写大量的代码。比如说,写日志,事务的开启,关闭,回滚等一系列操作。 但是在开发的过程中,如果经常注意以上的开发,那开发效率将很低的。而且还容易出错。 面对上面的问题,如果只是面向对象的编程。那开发的时候,程序员不仅要专注于业务逻辑的Coding,而且还要在后面写上日志的处理办法,事务的开启关闭等一系列与业务逻辑无关
2015-07-27 22:17:09
1826
34

原创 Tomcat与Servlet工作流程
什么是Tomcat? Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。什么是Servlet? Servlet是在服务器上运行的小程序。,说白了Servlet就一个应用程序,用于提供服务。什么是JSP? JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。
2015-06-26 22:27:33
5530
31

原创 .net利用nuget管理类库包——各系统交互
高校云平台,开发过程中,每个团队开发一个子系统。每个子系统内部又分别开个各子模块。 对于整个平台来说,各自的开发不影响其他人的开发。即面向接口的编程。 那么对于各个模块来说,又是如何统一调用其他模块的接口的呢? 在开发过程中,接口的开发与使用 肯定是不定时更新的。那么整个平台就肯定使用一个工具来统一管理各个模块的接口。 使用nuget进行管
2015-01-31 15:37:34
3200
45

原创 MVC下载Excel文件:js接受乱码 简单处理办法
在做考试系统的时候,需要向题库里面批量导入试题。所以在导题之前需要下载一个Excel模版。在MVC中下载模版,需要创建一个Excel模版,然后发到前台。即点击之后,弹出一个下载框,提示下载(保存位置)。 现象:在MVC中,点击下载模版按钮,不提示下载。原因:js接受 fileResult类型乱码。 如果是单纯的生成一个特定的Excel的文件,然后发到前台,即没
2015-01-18 18:25:06
3114
18

原创 js与mvc 数据的交互
在做考试系统中,遇到最头疼的问题,就是前台与后台的交互。对于使用easyui来说,刚接触不久,有点陌生。 查着文档,看着Demo。做起来着实有点头疼。 首先,前台使用的是MVC+Easyui,后台使用的WCF提供服务。那么前台的数据,是如何与后台进行交互的呢? 页面上的所有事件都是通过js来调用的。那么就必须是 js里面写事件,然后把前台的数据,
2014-12-28 19:45:36
7987
29

原创 C#解决 动态创建库、动态创建表
最近在做高校平台,这个系统可以被多个学校使用。既然如此,每个学校所要保存的数据当然不可能存放在一个库中。一个学校一个库,那么有几个学校用呢?未知。得了,库的数量得视情况而定。 动态创建库可以解决这种问题。而在子系统(考试系统)里面,在题型管理模块,由于题型的数量众多,而且数据库表内容位置。所以采用动态创建数据表来解决此问题。
2014-11-29 18:45:47
10654
26

原创 MVC基础入门——最基础小例子
Mvc在学习《Headfirst》的时候,就接触过了。对于这个庞大的模式。非常的感兴趣。Mvc就是设计模式的升华。在没有接触过Mvc的时候,一直都是在使用的三层架构,使用的UBD三层来做项目。对于这个新接触的名词,还是很陌生的。所以需要来逐渐的来学习,如何使用Mvc。首先,MVC是在web开发上面提出的。所以要对比一下,web方式与mvc方式的区别。MVC(模型Model-视图
2014-11-23 23:24:53
3573
18

原创 字符串模式匹配算法--详解KMP算法
在软考的复习中,看到过几次 字符串的模式匹配算法。看起来挺难的。所以花了点时间查了查关于字符串匹配的算法。下面详细介绍一下KMP模式匹配算法 以及next[j]函数如何计算。
2014-10-26 10:14:54
10231
50

原创 机器语言——码运算(详解反码补码由来)
在高中之前,数学是这样的,1+1=2 .这些都是死的。上了大学之后,这个世界是这样的……机器语言最低级的语言,只有两个标志 0和1.通过这两个标志来实现计算。以前我们所做的数学运算都是在10进制上面进行的。而计算机只能用二进制的数来进行运算。那么,是如何进行计算的?反码 补码 又是怎么引入的。主要内容:解释反码 补码 由来。
2014-09-28 15:55:12
8490
52

原创 软工——详解白盒测试
软件测试,是一个容易被遗忘的过程。人们都看到了软件开发的美好,却忽视了软件测试的重要性。软件测试目的:发现程序中的错误。 为了发现程序的错误,测试用例的制定也是非常重要的。只有尽可能用较少的测试用例,检测出程序的错误。软件测试计划的制定: 之前学习软件工程的时候,白盒测试中的覆盖不太清楚。在复习软考的过程中,又重新看了一遍软工。终于明白各种覆盖,究竟是什么
2014-09-13 17:47:53
2984
38

原创 asf与vga同步播放
以前,从来只知道rmvb,avi等播放视频的格式。后来才发现,许多的教学视频,都不是传统的视频格式。软件工程的格式是csf格式的。这下子,又看到了asf,vga格式的。而且这两个文件是一块播放的。这下子就头疼了。asf文件,是主讲人讲课的音视频。另一个文件vga文件,就是跟老师讲课同步使用的幻灯片。所以要vga和asf同步播放才行。 1.首先安装VGAPlayer.exe文件。2.
2013-11-23 10:10:02
5417
25

原创 换系统---保留旧数据
就在上周,我们应为某种原因。不得不采取所有人重装系统的措施。 大约是提前一周多的时间接到的通知吧。不巧的是,当时大部分的人都在做机房收费系统。也基本上快结束了。 对于这个通知,每个人采取的措施都不相同。对于快要结束的同学来说,他们在装系统前的一个星期。抽出大量的时间来赶工。只希望在重装系统之前把系统验收了。赶紧结束这个项目。对于刚刚开始的同学,只能按计划走。
2013-11-09 19:31:57
3430
37
原创 工作日计算的方案汇总
工作日计算的方案汇总前言方案选择实现第三方api的实现自己维护数据实现实现思路优化方案总结前言 在工作中,有不少的需求,是需要按照工作日来计算的数据。因为每一年的假期安排以及补休都是不确定的。所以处理起来有点麻烦。近期整理了一下实现的方案都有哪些。记录一下方案选择使用第三方的api开源的接口收费的接口自己维护数据实现第三方api的实现对于使用第三方api的,下面给出...
2019-07-24 17:13:04
1379
原创 由“芝诺悖论”引发的思考
前段时间在学习高等数学的时候,引发了对“芝诺悖论”的思考。 芝诺悖论-阿基里斯与龟的故事是这样的:阿基里斯是古希腊神话中身手矫健并且善跑的英雄,在一次阿基里斯与乌龟赛跑的比赛中(设A为起点),乌龟被允许先出发;当阿基里斯起跑时,乌龟已经抵达路途中的某处(设为B点)。因为阿基里斯跑的很快,他很快就到了B点,而这时,乌龟已经又向前移动了一点距离到了C点,当阿基里斯跑到了C点...
2018-08-17 16:02:57
1107
1
原创 学习金字塔理论有感
我们从出生到现在一直在学习,而且每个人都是在同一基础,同一个课堂上教出来的学生,但是还是有很大的差距,是什么导致有的人学的时间长反而学习平庸,有的人学习时间短却成绩非常好。里面的学习方法肯定是不一样的。这段时间看到了一个文章,讲述的是“学习金字塔”,如图: 上图是当时美国教育学家埃德加 · 戴尔(Engar Dale)研究出的“学习金字塔”(The Con...
2018-08-17 16:02:33
3758
原创 sublime text 格式化json
在开发的过程中,json数据是经常使用的。查日志。。但是查到的日志,都是一长串。。之前最长使用的是sojson网站,打开之后,然后格式化json 在模拟数据。但是发现,查的多了,每次都打开浏览器 格式化,觉得挺繁琐的。然后听说sublime text 可以对json数据进行处理。然而我也经常使用,随意就研究了一下。 首先,sublimetext 需要安装插件。 安装 1、打开vi
2017-07-31 22:24:12
13113
1
原创 使用explain优化sql
对于复杂、效率低的sql语句,我们通常是使用explain sql 来分析sql语句,这个语句可以打印出,语句的执行过程。这样方便我们分析,进行优化。 首先,说一下,explain查询出来的数据如何分析。 table :这一列是查询设计的表。 type :很重要的一列,显示了查询使用了那种类型,是否使用的索引,能反映出语句的质量。一般这个指标从好到坏依次是:system>co
2017-07-10 15:17:12
13144
4
原创 lock wait timeout exceeded; try restarting transactio解决方案
问题原因: 今天线上环境,突然出现一个问题,追踪原因是数据库中的一条语句报错,错误内容: lock wait timeout exceeded; try restarting transactio 执行update table set status = 1 where id = 10002;是可以的。 而执行update table set stat
2017-05-25 17:10:38
136444
12
原创 java8中list排序
在项目开发中,很多页面的展示,都是按照一定的顺序排列的。 要想获取一个有序的list,有两种做法: 一、使用sql查出有序的list 这种方式进行排序,是最常用的,取数据的时候,我就要求数据是按照一定的顺序排列的。这种方式适合简单的列表的读取,如果页面展示的list需要多个组合计算得到。那么顺序就不能够保证了 二、用java8的sort方法排序 这种方式,对于对象类型的list排序,需要指
2017-04-06 21:03:33
13751
原创 git版本回滚:revert和reset
在使用git的时候,如果错误push之后,经常会回滚版本。 git的回滚有两种方式:一:revert命令git revert 版本id: 这个命令可以用一个相反的提交来回滚指定版本所做的修改。然后在git push 即可吧线上的代码更新。 在使用git revert 的时候,遇到一个问题。对于merge提交的代码,会出现下面的错误:Commit XXX is a m
2017-03-03 11:47:54
15046
2
原创 Java8中stream用法
做信用评分计算的时候,需要通过分值 查询相应满足的条件,以此来获取信用额度。这些额度配置单独维护了一张配置表。 如果是在人工审核中,获取配置信息,值需要连接一次数据库就可以了。但是如果是批量计算呢。每条记录都会连接数据库。所以在批量处理的情况下, 不宜使用此种方式。最早的时候,在.net中开发的时候,有lamda表达式,可以对list进行筛选。我们可以在计算之前,把所有的配置信息都读出来,之后的计
2017-02-25 11:04:54
2196
1
原创 java解析嵌套Json的方法
Json数据示例:{"product":{"result":"1","data":{"value":"4"},"costTime":15,"operation":"3"},"code":600000,"flag":{"flag_telperiod":1},"swift_number":"3100034_20161221153228_0705","exceptions":[]}目的,要获取value:
2017-01-11 17:14:31
13465
3
原创 mybatis批量更新错误,MySQLSyntaxErrorException
使用mybatis进行批量更新的时候,错误信息如图: mysql数据库: 执行的语句如下:<update id="batchUpdate" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"
2016-11-12 11:08:43
2245
6
原创 利用js实现 禁用浏览器后退
现在很多的内部系统,一些界面,都是用户手动点击退出按钮的。但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的。容易出现误操作。 所以在有些页面上,适当的禁用浏览器的后退,是可以提高很大的用户体验。 在网上查,可以查到很多js禁用后退的材料。用的多的方法如下:1、回退后,产生一个前进事件。 这种方式,不算是一个满意的解决方式。因为用户能体验到
2016-11-12 10:39:07
64756
41
转载 springmvc常用注解
spring mvc常用的注解:个介绍。 @Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,你也可以自己指定,如下 方法一: @Controller public class TestController {} 方法二: @Controller(“tmpController”) pub
2016-08-31 23:25:35
635
5
转载 事务的传播特性
事务的几种传播特性 1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启 2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行 3. PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。 4. PROPAGATION_R
2016-08-31 23:23:32
541
4
原创 JVM的垃圾收集
上一章主要讲解了jvm的内存组成。这一章,来说一下,jvm中的垃圾回收。垃圾回收策略引用计数法 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记清除法 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清
2016-08-30 16:51:39
503
4
原创 jvm内存模型
在学习JVM的时候,首先需要了解JVM的构成。然后在学习里面的gc收集器算法、种类等。 蓝色的为线程共有,灰色的为线程私有的。 所谓线程私有,即在jvm运行的过程中,只有有一个线程使用,就会重新生成一套。而线程共有,则jvm一起共用,与线程的数量没有关系。程序计数器 多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个
2016-08-30 11:17:57
677
2
原创 solrcloud——zookeper集群
由于现在项目中数据越来越多,之前使用的是一个单节点的solr服务器,使用起来感觉有一些慢。所以现在需要搭建一个solrcloud来满足需求。 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。 它有几个特色功能: 1)集中式的配置信息 2)自动容错 3
2016-07-27 17:26:13
926
5
原创 java并发编程之CyclicBarrier
CyclicBarrier提供2个构造器://@param parties指让多少个线程或者任务等待至barrier状态;//@param barrierAction为当这些线程都达到barrier状态时会执行的内public CyclicBarrier(int parties, Runnable barrierAction) {}//@param parties指让多少个线程或者任务等待至
2016-07-24 11:37:36
612
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人