- 博客(49)
- 收藏
- 关注
原创 java中处理无符号数字的工具类
在大型的商业系统中需要跟其他各种语言开发的子系统或者组件通信,其他的系统可能会支持无符号数字,比如c语言开发的服务系统,但java都是有符号的,往往会造成传递过来的unsigned数字被转换为负数,造成逻辑上的错误,java 6是不会支持unsigned数字了,因此需要自己去做一些转换。代码如下: import java.math.BigInteger; import java.nio.B...
2014-04-19 18:22:07
569
原创 win7下tomcat强制使用ipv4的方法
tomcat在win7下缺省使用ip v6,如果我们按照处理ip v4地址的方法去处理该地址,必然被无情的抛出异常,比如我们按照"."去分割ip地址,必然不能得到一个长度为4的数组。ipv6虽然好像很火,但当前使用最多的还是ipv4,很多代码也是基于ipv4写的,所以让tomcat强制使用ipv4还是有必要的,如何去做呢?其实很简单,在catalina.bat中修改java options即可:...
2013-09-16 10:43:52
854
原创 unicode编码的认识
1.初识unicode和ucs 1.1 unicode,翻译为统一码、万国码、单一码、标准万国码,是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简化地方式来呈现和处理文字。Unicode依随着通用字符集的标准而发展,同时也以书本的形式对外发表。[来自wiki]. unicode标准经历了多次修改,至今还在修改,相信未来还会修改下去,目前版...
2012-12-13 16:08:37
314
原创 tomcat中spring初始化两次问题解决
问题的提出: 当把app发布到webapps下后,又在server.xml的Host标签内配置缺省context时会出现如词问题,问题原因及一般解决方案参照http://shenxiaodong530.blog.163.com/blog/static/92207246201251814453126/,该解决方案修改了tomcat应用的部署结构,虽能解决问他,但不够优雅,缺省context和...
2012-09-20 23:44:18
355
原创 hibernate domain类时间类型管理
java中的Date既表示yyyy-MM-dd短日期,也能表示长日期,但mysql数据库中是由date和datetime表示的,hibernate缺省处理时有时会出现问题,保存出现异常,需要对@Entity类的>字段增加特殊的类型注解才可以: @Type(type="date") // from hibernate @Type(type="timestamp") // ...
2012-09-19 20:07:19
177
原创 linux 打开端口
1、 sudo vim /etc/sysconfig/iptables 2、 -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT 3、 sudo service iptables restart 4、/etc/init.d/iptable status
2012-09-16 16:13:36
188
原创 Thread interrupt理解
一个线程可用调用另一个线程的interrupt方法来试图中断另一个的运行,线程也可以中断自己,如果线程没有运行,则interrupt将不会有任何影响。当一个线程试图中断另外一个线程时,checkAccess方法会被调用来判断访问权限。之所以说是试图,是因为一个线程不能绝对中断另一个线程,interrupt只是做一个标记,需要线程自己来处理是否停止。 如果被中断的线程正在处于wait,jo...
2012-08-29 11:44:05
227
原创 HttpServletRequest.getRequestUri不能获取forward之前的uri解决
当调用 RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)后,再调用javax.servlet.ServletRequest的getRequestUr方法得到的是forward后的uri,之前的uri得不到了。servlet规范明确规定了这种情况:getRequestURI ...
2012-08-20 19:32:17
1904
电影url点击次数统计功能设计
简介 电影的点击次数代表着电影受欢迎的程度,系统中需要统计每一部电影的历史总点击次数和某一段时间内的点击次数,依据这些数据可以给用户推荐当前最热的电影,吸引用户下单。 现在实现 目前线上系统具有记录每部电影总点击次数的功能,其实现是:电影表中设计一个记录点击次数的字段,当用户请求电影详情时实时修改该字段为当前值+1 缺点 mysql数据写性能不强,并发性能差,当有大量用户访问时会...
2012-08-16 00:16:32
483
订单流水号生成器设计
订单流水号需求 每天的流水号从1开始,流水号不重复,按照时间有序 流水号生成器支持大并发,不低于10000并发,生成效率高,不超过20ms,考虑网络环境因素 流水号生成器支持持久化和故障转移 [编辑]实现设计 使用ttserver作为存储器实现,使用ttserver的hash存储模式,这种模式支持完整的memcached的协议,可以使用increment指令对某一字段执行...
2012-08-16 00:13:18
638
单点登录设计
sso介绍 sso是Single sign-on的缩写,翻译成中文是单点登录的意思,所谓的单点登录是指在有多个应用系统的情况下,成功登录任一应用系统后再登录其他的系统是不用再输入用户名密码登录而直接可以登录到系统。一般使用cookie技术实现。 使实现sso原理 条件 浏览器需要支持cookie 所有的应用系统在同一个顶级域内,比如:顶级域是www.ichaoying.com,那...
2012-08-16 00:11:36
312
使用apache alias/sendfile功能实现高性能的图片服务
问题的提出 在java webapp开发过程中有很多需要下载图片的需求,一般情况下我们都是用tomcat/jetty等类似的java web 容器提供java web程序运行服务,由于web容器可以直接提供http服务,所以架构师往往就直接使用java容器来直接提供图片的下载服务,这种做法往往带来的大量用户下载是web容器运行效率不佳,有时会影响servlet页面的处理效率。尽管现代的we...
2012-08-16 00:06:29
162
Java程序为什么需要数据库连接池
引言 java应用开发中经常有程序员讲需要配置数据库连接池,如果不配置连接池,应用在大量用户访问的情况下会发生数据库连接异常,也就是会说连不上数据库,然后如数家珍的列举一大堆连接池组件,比如:dbcp、c2p0、bonecp。。。。,各个都系出名门,都号称具有什么什么优势,更有好事者自己开发一个连接池。那为什么要引入连接池呢?换句话说引入连接池会带来什么好处呢?下面就让我们来分析一下,探测...
2012-08-16 00:02:54
372
原创 【转载】Java枚举应用方法
DK1.5引入了新的类型------枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BL...
2012-08-15 23:55:58
129
ThreadLocal线程安全的奥秘
ThreadLocal,存储线程内部的数据,线程独享,没有线程安全问题,它是如何做到这些的呢?原因就是数据存储在Thread实例中,每一个Thread的实例拥有ThreadLocal.ThreadLocalMap threadLocals 成员,该成员是包共享的。ThreadLocal的set方法把数据存储在当前线程的threadLocals map中,保证每个线程数据的独立。 Threa...
2012-08-15 23:53:56
180
原创 使用maven创建java项目
创建普通java项目 mvn archetype:generate -DgroupId=com.xxx -DartifactId=superdao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 创建eclipse工程 mvn eclipse:eclipse ...
2012-08-15 23:48:47
144
原创 linux常用命令
Linux常用命令 ★ which 文件名 查看可执行文件的位置 ★ whereis 文件或目录名称 查看文件的位置 ★ locate 配合数据库查看文件位置 ★ updatedb 立即更新数据库 ★ Find 路径 文件 -name"g*"以"g*"开头的文件 -atime 1 将当前目录下,一天内被存取过的文件搜索出来 -ctime 1 将当前目录下,一天内被改变,新增过的文件...
2012-08-15 23:46:23
127
原创 maven安装配置
安装 下载二进制分发包,解压 把maven加到PATH中 配置M2_HOME export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4 配置maven参数 vi ~/.m2/settings.xml 添加如下内容 <settings> <profiles> ...
2012-08-14 10:12:18
139
原创 git基础知识--linux环境
1、 create branch 1.1 git br brname 1.2 git br brname tagname 2. remote branch git co brname git push origin brname 3. download branch git fetch origin brname git co -b brname...
2012-08-14 09:49:53
160
centos 安装lua笔记
1、安装libreadline 库: sudo yum install readline-devel.i686 2、下载源码 wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar -xzvf lua-5.1.4.tar.gz 3、编译 cd lua-5.1.4 make linux sudo cp src/lua /usr/lo...
2011-12-10 22:45:00
196
eclipse导入maven webapp
1、安装m2eclipse插件: help-->Install new Software... 点击add按钮,名字填入 m2e, locationl填入http://download.eclipse.org/technology/m2e/releases 下载插件,很慢 2、使用maven创建web app cd workspace mvn archety...
2011-12-01 00:46:00
151
net-snmp安装笔记
1、下载5.3.4版本,最新5.7版本安装完成后启动时报can not find module错误,没有搞定,所以使用旧版本,wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.3.4/net-snmp-5.3.4.tar.gz/download 2、解压,tar xzvf net-snmp-5.3.4.tar.gz 3...
2011-08-03 19:14:00
232
使用全文索引技术实现高效的like模糊查询功能
曾经在工作中遇到了一个难办的问题:我们有一个表大概有50万条数据,其中有一个字段是字符串类型需要实现like 模糊查询,我们使用的是mysql,虽然已经建立了索引,但是由于使用的是%a%模式匹配,很不给力,在大量并发下,数据库会挂掉,或者用户等到抓狂查询结果还不出来,后来想出了一个办法解决了这个问题,每次查询可以控制在15ms左右,效果很是不错。我们采用是全文索引技术: 1、使用lucene或者...
2011-07-06 23:49:00
425
使用keepalive+lvs实现mysql master-master自动故障转移
1.准备机器,需要至少准备2台机器 3.配置mysql双机master-master实现,不再赘述,参见另一篇mysql mmm的博文 2.安装lvs和keepalived和配置keepalived,参见http://www.keepalived.org/sery-lvs-cluster.pdf,注意lvs的最新版本是1.26,对应的是linux2.6.28以上内核版本,版本需要一致, 否则...
2011-03-08 20:09:00
139
centos下安装配置Tokyo Cabinet java client
1. wget http://fallabs.com/tokyocabinet/javapkg/tokyocabinet-java-1.24.tar.gz 2. tar -xzvf tokyocabinet-java-1.24.tar.gz 3. cd tokyocabinet-java-1.24 4. ./configure 5. make 6. make install 7. cp...
2011-01-31 17:25:00
170
centos下安装配置jmagick
1. 下载ImageMagick-6.4.0-0.tar.gz from http://downloads.jmagick.org/6.4.0/ImageMagick-6.4.0-0.tar.gz,注意最新版本和java client api可能会有冲突 2. tar -xzvf ImageMagick-6.4.0-0.tar.gz 3. mkdir /usr/local/imagemagic...
2011-01-11 10:03:00
131
centos下tomcat与apache整合
1. 首先需要安装apache,安装步骤参见其官网,然后安装apache jk module 1.1. wget http://mirror.bjtu.edu.cn/apache//tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz 1.2. tar -xzvf tomcat-conn...
2011-01-07 18:20:00
120
centos下使用java wrapper 配置java守护进程
1、下载java wrapper Community版,wget http://wrapper.tanukisoftware.com/download/3.5.7/wrapper-linux-x86-64-3.5.7.tar.gz 2、解压,tar -xzvf wrapper-linux-x86-64-3.5.7.tar.gz 3、建立java守护进程目录,mkdir /usr/local/j...
2011-01-07 11:48:00
189
centos下配置mysql mm 步骤
配置mysql 1.GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'replpassword'; #配置复制账号 2.GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'%' IDENTIFIED BY 'monpassword'; #配置监控账号 3.G...
2011-01-01 11:22:00
181
centos下安装mysql5.1步骤
mysql linux安装步骤: 1. make a directory, e.g, cd /usr/local mkdir mysql 2. cd /usr/local/mysql, then download from mysql.org, you should select a compiled version,e.g http://downloads.mysql.com/arc...
2010-12-23 16:47:00
136
集成iBATIS3和bonecp
bonecp是一款开源的、高效的数据库连接池组件,它号称是现在最快的连接池组件,官网上称是dbcp的25倍,但是iBATIS3并没有为它开发类厂,iBATIS3只支持3中类型的类厂,分别是UNPOOLED,POOLED和JNDI,要想集成只能自己开发了,自己开发也不难,只要实现DataSourceFactory接口就可以了,代码很简单: package com.ibatis.factory...
2010-09-15 19:11:00
134
18位身分证校验码计算
18位的身份证的最后一位是校验码,这个校验码采用的是ISO 7064 Mod 11-2校验系统实现的,其校验公式如下: 公式说明: n:字符串的字符个数(包括校验码) i:字符位置序号(由右至左,包括校验码,空格与分隔符不及),即最右边的字符i=1 ai:字符值,0-10,10用X表示 r:底数,2 M:模数,11 java实现: private stat...
2010-07-25 15:03:00
321
ab压力测试,tomcat内存泄漏解决
项目开发结束了,需要做一下压力测试,就使用apache自带的ab程序进行压力测试,300个并发20000个请求,压了4组,服务器端内存就疯长到了330m,jvm一共才配置了512m,tomcat基本响应就很慢了,经过观察,330m内存基本不释放,查看自己开发的代码,没有发现不断向静态队列里不停地压对象的代码,应该基本排除是自有代码的问题,于是不停地google,发现了http://ddupnow....
2010-07-20 11:12:00
155
SO_LINGER 用法
SO_LINGER 此选项指定函数close对面向连接的协议如何操作(如TCP)。缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据 发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构: struct linger { int l_onoff; /* 0 = off, nozero = on */ int ...
2010-06-13 09:43:00
172
thrift php客户端编写
1、准备thrift php客户端基础类,这个可以从thrift的源码包得到,在 thriftsrc/lib/php/src下,一般有如下目录和文件:ext,protocol,transport目录和thrift.php,autoload.php文件,我们把这些文件和目录copy到一个指定的thrift root目录下,比如 c:/php/thrift/root 2、如果是linux环境,可以考...
2010-06-12 11:49:00
164
thrift安装手记
由于项目需要集成多语言开发的东西,我们选择了使用thrift,它是facebook的核心框架之一,所以花了几天时间来研究安装,折腾的精疲力尽,终于搞定,安装步骤如下: install jdk for linux(如果需要集成java,可以不装) 1、去官方网站下载安装包,如果是64位系统,记得选择linux x64,现在是1.6版, java1.5下载:http://java.sun....
2010-05-07 14:51:00
130
基于mongodb的标签系统设计
以前基于lucene设计过一个标签系统,在数据量和并发量比较小的情况下勉强可以使用,数据超过100万条时查询就超过1秒,排序更是影响很大的性能,不适合中型网站的规模,最近在研究nosql数据库,发现mongodb很不错,支持多值字段,而且在其内部是通过倒排索引实现的,足可i支持一个标签系统,而且mongodb是的查询功能与关系数据库最接近,并发读写都具备比较好的性能,于是开始测试,发现从建立索引2...
2010-04-10 16:35:00
505
Mysql Explain 详解[转载]
一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二.explain输出解释 +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+...
2010-03-21 23:51:00
115
mysql explain用法(转载)
EXPLAIN语法(获取SELECT相关信息) EXPLAIN tbl_name 或: EXPLAIN [EXTENDED] SELECT select_options EXPLAIN 语句可以用作DESCRIBE 的一个同义词,或获得关于MySQL 如何执行SELECT 语句的信息: · ...
2010-03-21 23:49:00
119
通用数据库访问开源框架
类似于iBatis,使用sqlmap文件保存sql,支持单个select,update,delete,也支持批量sql执行,先执行完的结果可以作 为下一个sql的输入,支持事务,支持存储过程,输入参数可以是class或map或者没有,输出可以是dataset, class object,class objectslist,map, maps list.sql条件自适应使用以前发布的sqlpa...
2010-03-21 23:36:00
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅