- 博客(40)
- 收藏
- 关注

原创 Redis的主从同步
我们知道Redis的持久化方案可以保证即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上的持久化数据恢复到内存中,但是当redis服务器的硬盘破坏了就可能会导致数据的丢失,那么这种情况下怎么办呢?针对此种情况,redis就提出了主从复制机制这种方法,以此来就可以避免这种单点故障。 在了解主从同步前,我们需要先了解一些基础知识:1.主redis中的数据有从red
2016-12-06 23:21:06
2846
3

原创 设计模式之责任链模式
责任链模式: 责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 这就好比《红楼梦》中击鼓传花的故事,贾母、贾赦、贾政、贾宝玉和贾环是五个参加击鼓传花游戏的传花者,他们组成一个环链。击鼓者将花传给贾母,开始传花游戏。花由贾母传给贾赦,由贾赦传给贾政,由贾政传给贾宝玉,又由贾
2016-10-13 23:19:14
1242
1
原创 JVM调优之分代垃圾回收
我们知道java虚拟机对对象的存储划分为三个代,年轻代(Young Generation)、年老点(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的。分代垃圾回收策略针对不同对象的生命周期不同,采取不同的收集方式,以达到更高的回收效率。
2018-03-16 10:22:03
370
2
原创 java开发中简单定时器的实现
今天分享的是由spring注解实现的定时调度任务,非常简单,快速上手,只需两步。 第一步,在spring配置文件命名空间中加入:xmlns:task="http://www.springframework.org/schema/task"在xsi:schemaLocation 中加入http://www.springframework.org/schema/task h
2017-11-09 16:59:29
1451
1
原创 RabbitMQ的ack与nack
在消息中间件的使用中,我们特别在意的一件事就是保证消息不会丢失并且被准确消费,昨天简单写了一个消费者来观察消息的消费情况,现把研究结果跟大家分享一下。首先先看一个方法: connection = factory.newConnection(); final Channel channel = connection.createChannel(); channel.q
2017-08-25 10:27:27
38694
17
转载 mongodb常用命令
MongoDB由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系
2017-07-19 11:35:22
394
4
原创 mysql分页大数据性能优化
使用 mysql 进行分页很常见,平时一般采用的方法也就是 limit,以此来达到查询到我们所需的数据,当起始页较小时,查询没有性能问题, 就像下面这条语句 select * from product limit 10000, 20 0.8秒 那么我们把起始记录改为40w看下, select * from product limit 400000, 20 3.5秒
2017-07-07 16:27:12
545
4
原创 mongo添加索引以及解决Sort operation used more than the maximum 33554432 bytes of RAM
在 mongo 使用过程中遇到了一个问题,需求就是要对mongo 库中查询到数据进行分页,mongo库我们知道都会存储大容量的数据,刚开始使用的 skip 和 limit 联合使用的方法,来达到截取所需数据的功能,这种方法在库里数据容量小的情况下完全可以胜任,但是如果库里数据多的话,上面两个方法就不好使了,就像题目中那个错误,这时会报一个 Query failed with error cod
2017-07-07 11:37:16
11376
4
原创 mongoDB查询,高级查询,含java操作mongo查询
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象
2017-06-13 14:16:28
14031
2
转载 GBK、GB2312、iso-8859-1之间的区别
1. 概述本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。2. 编码基本
2017-04-17 19:32:28
11674
5
原创 解决web.xml和jar包发布不到tomcat问题
从maven导出web项目的时候,有时候会发现发布到tomcat时,web.xml和jar包会出现发布不上去的问题,这样的话对几个文件稍加修改一下就可以正常发布了。 首先在eclipse中打开navigator视图,打开项目的 settings 文件夹,在里面会看到这些文件。 修改上图中带有红色下划线的文件,我把修改后的截图贴在下面,对照着修改就行了。
2017-03-02 16:22:48
3083
4
原创 linux系统修改时间
今天分享一条linux小技巧,在linux环境下快速修改时间,可以解决linux系统时间与本地时间不统一,或快8小时,或16小时各种问题。 在命令行输入 date -s "20170227 11:20:30" ,然后回车。就可以设置成2017年2月27日11时20分30秒。简单粗暴、 这种方法在你正产关闭机器的时候回保存,如果没有正常关闭下次就不行了。这时可以在设置一条命令
2017-02-27 11:32:41
610
5
原创 java中遍历类中的属性和属性值
有些时候我们需要一个类中的所有属性信息,在类属性少的情况下我们可以一个一个的通过get和set获得,但是如果多了的话就比较麻烦了,在这里我们可以通过反射来遍历。public void getAlixIntegrity(ApplyCust applyCust) throws NoSuchMethodException, Exception{ // 获取实体类的所有属性,返回Field数
2017-02-17 13:41:20
7958
3
转载 @RequestBody, @ResponseBody 注解详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;同时对曾经看的一篇文章中讲述的某些部分进行澄清 (文章地址:http://www.byywee.com/page/M0/S702/702424.html)。简介:@RequestBody
2017-02-09 18:23:59
601
2
原创 mybatis的Dao的开发
小编今天来介绍一下mybatis的Dao的开发方式,熟悉mybatis的人都知道它Dao的开发有两种方式,一种是传统的Dao方式,还有一种就是采用Mapper代理的方式,可以说在一些老项目中传统Dao的方式比较常见,而现在我们更倾向于喜欢采用Mapper代理的方式来进行开发。下面就简单介绍一下这两种方式。 首先是传统Dao开发,此种方法需要接口+实现类完成。需要dao实现类继承SQ
2016-11-20 22:38:39
906
3
原创 HQL连接查询
Hibernate进行多表查询与SQL其实是很相似的,但是HQL会在原来SQL分类的基础上又多出来一些操作。HQL的多表连接查询的分类如下: 其实这些连接查询语法大致都是一致的,都是HQL查询的是对象而SQL查询的是表。那么我们来比较一下SQL和HQL的连接查询。SQL连接查询:HQL连接查询: 在HQL中,我们不用写关联
2016-11-18 23:30:36
4572
4
转载 百万级访问量网站的技术准备工作
当今从纯网站技术上来说,因为开源模式的发展,现在建一个小网站已经很简单也很便宜,所以很多人都把创业方向定位在互联网应用。这些人里大多数不是很懂技术,或者不是那么精通,而网站开发维护方面的知识又很分散,学习成本太高,所以这篇文章将这些知识点结合起来,系统的来说,一个从日几千访问的小小网站,到日访问一两百万的小网站,中间可能会产生什么问题,以及怎么才能在一开始做足工作尽量避免这些问题。 你
2016-10-31 00:13:22
1274
3
转载 <转载>如何成为一名优秀CTO
如何成为一名优秀CTOCTO如果你还在整天写文章辩论 PHP 是最好的语言,那说明你还没有成为一名真正的 CTO。CTO 并不是团队中最疯狂的黑客,编写代码是 CTO 最不重要的工作。 在我看来, CTO 是一个能够与其他技术人交流技术并引导他们更好的完成项目执行的人。 另一方面, CTO 是一个保护技术团队免受外部干扰的人,并勇于在需要时承担错误责任的人。
2016-10-26 01:02:02
4380
5
原创 万能的BaseDao设计
BaseDao设计的初衷是为了方便我们的使用,不用写很多的重复的代码,今天就说说它的设计思路。我们就是要用反射加泛型加面向接口编程来实现,从网上找了一个UML图,我们就用下图大体简单设计一下。 大体按图中的内容写吧,首先定义一个interface BaseDao,
2016-10-23 22:08:55
22156
4
原创 Struts2之文件上传
之前写过一篇上传文件的文章,用是FileUpload组件,今天就介绍一下Struts2中的文件上传吧,其实它底层采用的就是FileUpload,只是进行了简单的封装,用起来更加方便了。下面就详细介绍一下。 首先,在Action中定义上传文件和上传文件名,生成get和set,那么当表单提交到action的时候,就会把上传文件封装进来,这里封装的具体操作是通过默认的拦截器实现的,以下是摘取的
2016-10-23 21:04:55
1348
3
原创 Spring的基于AspectJ的AOP开发
在软件业,AOP为Aspect Oriented Progranmming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效
2016-10-14 23:21:49
1597
2
原创 进阶Java之Struts中的值栈
什么是值栈? 值栈:ValueStack,类似于域对象,值栈应用在Struts2的action里面,在值栈中可以存值和取值。其贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个 ValueStack 对象). 相当于一个数据的中转站,我们知道,每次访问action时候,都会创建action对象,那么,在每个action对象里面就都存在一个值栈对象。值栈的使
2016-10-11 22:50:58
2316
3
原创 Java进阶之类加载器
当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构,引导类加载器(bootstrap classloader),扩展类加载器(extension classloader),应用类加载器(system classloader)。三者的关系:bootstrap classloader是extension classloader的parent,extension classloade
2016-10-09 23:28:05
1337
4
原创 Java进阶之Hibernate主键生成策略详解
1.increment 由Hibernate从数据库中去除主键的最大值(每个session只取一次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。 Hibernate调用org.hibernate.id.IncrementGenerator类里面的generate()方法,使用select max(idColumnName
2016-10-07 22:36:09
1405
1
原创 Java进阶之hibernate中cascade与inverse
我们都知道的是cascade强调的是操作关联对象,inverse强调的是外键的维护权。在我们设置了级联操作后,在保存的时候就会级联保存另外的级联对象,而设置了inverse之后,如果两个对象之间有双向维护关系,就会在设置的一方放弃外键维护权,那它们两个共同使用的时候会产生什么结果呢? 我们可以通过一个简单的案例测试一下,就能得到结果,案例中customer与linkman为一对多关
2016-10-02 00:31:54
1813
3
原创 Oracle进阶之你可能会用到的命令(一)
不管你天天使用Oracle还是刚接触Oracle,下面的这些命令或许在你忘记了的时候能帮忙快速找回来。1. 查看当前用户 show user;2. 去掉重复记录的关键词 distinct3. 字符串拼接连接符 ||4. 录屏 spool 路径 spool off5. 查看参数设置 select * from v$nls_param
2016-09-25 22:17:46
2300
6
原创 Java进阶之FileUpload完成上传
FileUpload是Apache commons下面的一个子项目,用来实现Java项目下的文件上传功能,常见的文件上传还有SmartUpload,Servlet3.0,Struts2。 在这里我用的是commons- fileupload-1.2.1,下面就是一个简单实例,解析过程都写到代码中的注释上了,注释很详细//创建磁盘文件项工厂 DiskFileItemFactor
2016-09-25 22:14:14
3710
5
转载 用jquery生成二级菜单的实例代码
这篇文章介绍了用jquery生成二级菜单的代码,需要的朋友可以参考一下javascript页面中的函数 复制代码代码如下:function querySub(id,sid/*选中的项*/){$.post('${path}/page/article/querySubChannelArticle.action',
2016-09-22 00:19:34
1483
5
原创 SQL和SQL*Plus
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql语句。 我们通常所说的DML、DDL、DCL语句都是sql语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql * plu
2016-09-22 00:00:26
1364
8
原创 Java进阶之动态代理
首先先解释一下什么是代理模式,代理模式的作用就是为其它对象提供一种代理用来控制对这个对象的访问。那么,代理模式会有哪些角色呢?代理模式涉及到的角色有: 1、抽象角色,声明真实对象和代理对象的共同接口/ 2、代理角色,代理对象角色内部含有真是对象的引用,从而可以操作真实对象,同时代理对象提供与真是对象相同的接口以便在任意时刻都能代理真是对象。同时,代理对象可以在执行真实对象操作时
2016-09-11 23:53:02
1427
5
原创 自定义注解
Java的Annotation是在5.0版本之后引入的,可以用于创建文档,跟踪代码中的依赖性,并且可以执行编译时期检查。注解就是给虚拟机看的,代表程序的一些特殊的功能。JDK中提供了@Override,@SuppressWarning,@Deprecated三种注解,当让还有元注解,@Target,@Retention,@Documented,@Inherited,元注解的作用负责注解其它注解。
2016-09-11 13:23:23
1186
3
原创 内连接与外连接
本篇文章只是简单介绍一下数据库中的内连接和外连接。 举最简单的两个表的例子,有表A和表B,表A如下:Aid主键,自增; 表B如下:Bid主键,自增 有SQL基本知识的人都知道,两个表要做连接,就必须有个连接字段,从上表中的数据可以看出,在A表中的Aid和B表中的Bnameid就是两个连接字段。 现在先说内连接:利用内连接可获取两
2016-08-25 19:55:09
1236
5
原创 子类能否重写父类的静态方法
今天突然讨论到了子类继承父类的静态方法问题,有人坚持说能写,有人说不能重写,那到底能不能冲写呢?这个问题很简单,测试一下就完了。 先是父类代码:public class Fu { public static void show() { System.out.println("父类的静态方法"); } public void method() { System.out.
2016-07-27 00:28:24
24569
26
原创 Java中Iterator迭代器设计原理
我们知道迭代器(Iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么Iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不是一个类呢? 我们假设迭代器迭代数据的功能定义为了一个类,那么,会有这样的问题。不同的集合,由于数据结构不一样,所以他们的存储方式也是不一样的。也就是说,迭代器获取的时候,获取的方式是变化的,也就是不固定的。所
2016-02-14 18:15:12
3228
13
原创 文件管理File类
File类——静态实用类,提供许多静态方法,用于移动、复制和删除文件等等。下面以实例进行详细分析。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;//引入命名空间namespace
2015-12-30 15:32:58
1514
20
原创 哈希表,HashTable
举一个简单的例子,每个学校都会给学生们发一个学号,作为唯一的标识,这样在以后的学习方面会带来很大的方便。比如,要查找某个学生的姓名,只需要知道他的学号,就都OK了。这里面就用到了我们将要说的哈希表。 哈希表,以键值对的形式往里面存值,在简单的一些应用中,我们通过键(key)可以方便的找到它对应的值(value)。那么哈希表具体怎么用,常用的就是存值,取值,遍历,判断,移除,输出
2015-12-27 15:33:31
1550
26
原创 活动图中的action与activity
画过UML活动图的都知道,在活动图中有个action和activity。乍一看,这两个元素差不多,但是实质上两者还是有区别的。Activity 活动状态用于表达状态机中的非原子的运行,其特点如下:(1)活动状态可以分解成其他子活动或者动作状态。(2)活动状态的内部活动可以用另一个活动图来表示。(3)和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。(4
2015-11-15 18:46:03
12862
15
原创 面向对象技术与UML的基本构造
在学习UML 之前,我们应该先初步掌握面向对象技术基础,因为面向对象将会是我们在以后学习中不可避免的,也恰恰是我们所要学习的。面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关
2015-11-07 15:51:43
2429
15
原创 在PE系统中上网
我们平时都知道在PE环境下可以装系统,其实在PE环境下可以的做得事很多,现在说说在PE里完成正常上网功能。 有时候你的系统崩溃了,但是你又急需上网功能,这时可以进PE,在Pe中完成你的工作。在PE中可以有三种方法实现联网(目前知道有这三个),简单的介绍下。一,宽带连接。二,无线网连接。三,手动配IP连接。 先介绍第一种,
2015-10-24 18:59:36
28678
30
原创 机房收费系统之组合查询
对于机房收费系统,总体来说不太难,比较让人费脑筋的地方也不过上下机,组合查询和结账部分,这三部分是需要我们动脑筋的,在做之前,我们得先熟悉这几部分的作用是什么,它们能实现什么功能,只有我们把其中的逻辑思路理清了,在接下来实际操作完善的时候才会得心应手。组合查询的实现有很多种方式,各有优劣,下面是我实现组合查询的部分代码。以学生上机统计信息窗体为例。从左到右各个控件的名称为:cboFie
2015-08-16 21:26:25
1679
32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人