- 博客(464)
- 资源 (26)
- 收藏
- 关注
原创 全角半角字符相互转换
import org.apache.commons.lang.StringUtils; /** * * 提供对字符串的全角->半角,半角->全角转换 * */ public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */
2017-05-02 10:00:27 2287
原创 java算法实践 将list中的元素按照属性分类成树状的map
java算法实践,同时也是一个有用的工具类。例如:一个学生信息的list,学生的信息由班级、性别、学号等,将list按照班级、性别分类。只需: Map map = CollectionTools.classifyList(studentAllList, "classId","sex");这个工具运用反射可将list中的每一个学生按照classId和sex分类
2017-04-22 10:04:23 2267
原创 VMware中CentOS设置静态IP与外网互动设置
静态IP设置方法请参见我另外一个博客http://blog.csdn.net/ycb1689/article/details/37659021VM设置基础知识普及,说法可能不太正确,仅仅是本人认为比较好理解的一种方式,勿喷Nat模式,能访问外网,外网不能访问VM中主机,好比是必须通过宿主机才能上网,不在一个网关、网段中桥接模式,内外网互相访问,且好比是跟宿主机是同一个网段与
2017-01-12 15:51:33 612
原创 Java实时读取日志文件
在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据;要求写一个程序能实时地读取日志文件中的内容,并且不能影响写操作与重命名操作。RandomAccessFile类中seek方法可以从指定位置读取文件,可以用来实现文件实时读取。JDK文档对RandomAccessFile的介绍
2016-11-25 09:32:43 10382 1
原创 集合ArrayList遍历修改问题
关于集合ArrayList的遍历修改问题:/*** 一个ArrayList对象aList中存有若干个字符串元素,* 现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素*/import java.util.*;public class Test3 { public static void main(String[] args) {
2016-11-23 13:03:04 3416 1
原创 Serializable兼容性问题及serialVersionUID的使用
兼容性问题 兼容性历来是复杂而麻烦的问题。不要兼容性: 首先来看看如果我们的目的是不要兼容性,应该注意哪些。不要兼容性的场合很多,比如war3每当版本升级就不能够读取以前的replays。 兼容也就是版本控制,java通过一个名为UID(stream unique identifier)来控制,这个UID是隐式的,它通过类名,方法名等诸多因素经过计算
2016-11-17 15:34:33 1770
原创 win7 未识别的网络(虚拟机)解决方法
进入注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}],先导出做备份。为:"DriverDesc"="VMware Virtual Ethernet Adapter for VMnet1"。找到后,添加一个“DWORD
2016-10-21 10:31:36 3988
原创 解决Java7下JTextPane不能自动换行的问题
Java7自带的JTextPane存在一个问题。我们知道默认情况下,如果JTextPane所在的JScrollPane禁止水平滚动条出现时,JTextPane是具备基于单词(Word)为最小单位的自动换行功能的。对于中文而言,最小单位就是一个汉字;对于英文或拉丁语言而言,就是以空格为单位的字母组合。但是有一个情况,如果你一直输入英文字母,中间不空格,那么JTextPane就会认为这是一个很长的单词
2016-09-07 14:53:28 5024 3
原创 Java工具类实现校验公民身份证的有效性
package com.api.util; import java.util.Calendar;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.Map; /** * 身份证验证的工具(支持5位或18位省份证) * 身份证号码结构: * 17位数字和1位校验码:6位地址码数字
2016-08-29 13:01:44 608
原创 java正则表达式替换字符串中带小数点的数字
temp.replaceAll("([1-9]+[0-9]*|0)(\\.[\\d]+)?",format.format(feeCount))
2016-08-05 19:32:37 5778 2
原创 java使用正则表达式提取方括号中内容
String regex = "(?<=\\[)(\\S+)(?=\\])"; Pattern pattern = Pattern.compile (regex); Matcher matcher = pattern.matcher (destZoneCode);
2016-08-05 18:42:51 18448
原创 修改log4j配置文件来减小Linux系统tomcat/logs目录下的catalina.out文件的大小
近两天linux下的tomcat/logs目录下catalina.out文件过大(基本上是每三个月就达到4G),除了网上找到的使用cronolog工具进行对此日志进行分割之外。也可以通过配置服务的log4j.properties文件进行屏蔽(估计这个是跟我的服务有关系,因为我的MSA服务里面打印了很多日志信息,具体log4j配置见下面)。因为我发现catalina.out文件里记录的日志都是在My
2016-05-14 14:38:05 2457
原创 quartz实现每周一至周五 非法定节假日 每天9:30-11:30,13:00-15:00执行定时任务
我的定时任务需求是:使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务。经过学习quartz,发现使用SimperTrigger和CronTrgger这两种触发器都无法满足这种需求的表达,我始终无法相信强大的quartz绝对不可能无法实现这种需求。经过别人的指点,终于在一篇法文的blog中找到了类似的解决办法,需要借助于quartz
2016-04-26 10:41:28 16890 3
原创 使用Mysql新版驱动的ReplicationDriver实现MySQL读写分离
在用过Amoeba 和 Cobar,还有dbware 等读写分离组件后,今天我的一个好朋友跟我讲,MySQL自身的也是可以读写分离的,因为他们提供了一个新的驱动,叫 com.mysql.jdbc.ReplicationDriver 说明文档:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replicatio
2016-04-07 17:08:51 3418
原创 JDBC进行Mysql读写分离测试
在程序中添加两个数据源、分别对应读跟写:#读#DBDriver=com.mysql.jdbc.Driverurl=jdbc\:mysql\:loadbalance\://10.11.0.75,172.16.0.202\:3306/DB_TEST7?roundRobinLoadBalance\=true&characterEncoding\=UTF-8name=TESTUSERpass=
2016-04-07 17:06:01 1393
原创 Spring+Hibernate进行双数据源测试Mysql集群读写分离
进行测试!环境就是SH框架、当然这只是一个简单的测试!准备环境就是Spring框架跟Hibernate框架的整合!然后在Spring配置文件中配置两个数据源、这里我采用的是从c3po数据源配置:注:配置文件中的url里面要加"&"符号的话得这样写"&"<beans xmlns="http://www.springframework.org/s
2016-04-07 17:02:32 1167 1
原创 如何在应用层通过spring特性解决数据库读写分离
方案1:当只有读操作的时候,直接操作读库(从库); 当在写事务(即写主库)中读时,也是读主库(即参与到主库操作),这样的优势是可以防止写完后可能读不到刚才写的数据; 此方案其实是使用事务传播行为为:SUPPORTS解决的。方案2:当只有读操作的时候,直接操作读库(从库); 当在写事务(即写主库)中读时,强制走从库,即先暂停写事务,开启读(读从
2016-03-22 10:10:40 686
原创 利用Spring实现数据库读写分离
借助于Spring框架在2.0.1之后提供的AbstractRoutingDataSource可以实现动态的选择数据源datasource,下面先举一个最简单的例子(可以参考这个链接 http://spring.io/blog/2007/01/23/dynamic-datasource-routing): 1.首先新建一个Catalog VO对象的DAO(见代码1),它继承了S
2016-03-22 10:01:00 2310
原创 如何才能做到网站高并发访问
高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的,就不要去访问动态服务器。以此类推:能不访问
2016-01-26 09:11:19 896
原创 生产场景不同角色linux服务器分区案例
鉴于大家对 http://oldboy.blog.51cto.com/2561410/629558 一文反应强烈,老男孩在发一篇《生产场景各linux不同角色服务器分区案例分享》希望能给大家一个摸不着,但看的见的老鸟对于生产场景分区的建议。服务器角色分区建议优点 RAID方案单机服务器如8G内存,300G硬盘
2016-01-23 21:09:47 1383
原创 虚拟机上网设置教程之如何用固定ip虚拟机上网
本文为大家带来的虚拟机上网设置教程之如何用固定ip虚拟机上网,虚拟机的网络连接里的“本地连接”就用“自动获取IP地址”就好,有固定IP的需要到“Internet协议”设置.(右键“本地连接”-双击“Internet 协议”,看看是不是自动的吧!固定IP的也在这里改!) 1.当然是将虚拟机的上网方式选为NAT咯.右键你要设置的虚拟机选“设置”(因为有的不止虚拟一台),在“硬件”中选“以太网”,将
2016-01-16 16:03:39 1485
原创 Win7下vmware虚拟网卡显示未识别的网络
本机Win7,点击网络查看虚拟网卡VMware Network Adapter VMnet3显示为未识别的网络,导致本机无法使用与虚拟机在一个子网下的IP。解决方法:1,进入注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}],先导出
2016-01-16 14:54:43 2827
原创 简单分享开放平台的设计理念和思路
以前的一个电商开放平台,里面的设计思路和理念拿出来和大家分享一下该平台统一各大电商服务提供方的服务,进行编排后提供为开放的API为各个业务产品服务。在设计平台架构时,主要考虑以下几个因素:1、高并发和高吞吐量,我们采用分段式的架构,段与段之间采用同步非阻塞方式的通信方式,并且在http协议接入部分采用异步servlet方式。2、整个平台的可用性,这其中包括以下几个方面
2015-10-09 10:05:56 915
转载 SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
电商平台中无论是前端还是后端会存在大量的业务应用,在整个交易的过程中请求是在各个业务应用中流转的,对于用户来讲只需要登录一次就可以访问所有的业务,这就是单点登录SSO。单点登录开源有很多的解决方案,比如基于session的SSO和基于cookie的SSO。业界使用比较多的基于session的SSO的开源解决方案比如CAS,流程示意图如下: 这里不去详细说明流程,读者可以参考其他
2015-10-09 10:04:38 947
原创 构建高并发高可用的电商平台架构实践
一、 设计理念 1. 空间换时间1) 多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存数据库Buffer、cach
2015-10-09 09:01:43 2965
原创 jenkins中配置powershell生成svn日志(word)
目标:从svn中得到日志,按给定的格式生成Word文件。word文件格式如下:每日构建更新记录标记说明:+ 新功能全部完成。# 新功能部分完成。@ 功能完善(原来已经完成的功能,再次完善)。* 修正bug(需要在“每日构建日志”中体现的BUG)。!不能从页面体现的内容。2013-03-14 Eagle_V2.0 SV
2015-08-28 10:59:56 1742
原创 jenkins邮件配置
jenkins自带的邮件管理太弱了,为了能按自定义的方式发送邮件,需要安装一个插件: Jenkins Email Extension Plugin。1.配置邮件:通过“系统管理”-“系统设置”,进行系统设置界面,上面的内容在“使用Jenkins配置自动化构建”中已经讲过,直接移动到设置页面的最下面,“邮件通知”部分,设置上“stmp服务器“和”用户默认邮件后缀“,如图:
2015-08-28 10:57:38 394
原创 使用Jenkins配置自动化构建
持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了。为了实现这个要求,我选择了Jenkins。从http://mirrors.jenkins-ci.org/windows/latest下载windows下的最新安装版jenkins。(如果不能安装,从http://mirrors.jenkins-ci.org/war/latest/jenkins.war
2015-08-28 10:53:50 428
原创 一步步优化JVM<七>:其他
边缘问题 在某些场景下,按照前面的一步步优化指导无法产生效果。这一节说明一下这些情况。 一些应用分配了一些少量的非常大的长时间存活的对象。这样的场景需要需要young代的空间比old代更大。 一些应用会经历很少的对象转移。这样的场景可能需要old代的空间远远大于存活对象的大小,由于old的占用量增长率很小。 一些应用有小延迟需求,会使
2015-07-28 12:21:59 457
原创 一步步优化JVM<六>:优化吞吐量
如果你已经进行完了前面的步骤了,那么你应该知道这是最后一步了。在这一步里面,你需要测试应用的吞吐量和为了更高的吞吐量而优化JVM。 这一步的输入就是应用的吞吐量性能要求。应用的吞吐量是在应用层面衡量而不是在JVM层面衡量,因此,应用必须要报告出一些吞吐量指标或者应用的某些操作的吞吐量性能指标。观察到的吞吐量指标然后用可以用来和应用需要的性能指标进行比较,如果达到或者超过要求,那么这
2015-07-28 12:21:48 746
原创 一步步优化JVM<五>:优化延迟或者响应时间(3)
CMS垃圾回收器周期 一旦young的空间大小(包含eden和survivor空间)已经完善得满足应用对MinorGC产生延迟要求,注意力可以转移到优化CMS垃圾回收器,降低最差延迟时间的时间长度以及最小化最差延迟的频率。目标是保持可用的old代空间和并发垃圾回收,避免stop-the-world压缩垃圾回收。 stop-the-world压缩垃圾回收是垃圾回
2015-07-28 12:18:05 506
原创 一步步优化JVM<五>:优化延迟或者响应时间(2)
优化CMS(concurrent garbage collection) 使用CMS,old代的垃圾回收执行线程会和应用程序的线程最大程度的并发执行。这个提供了一个机会来减少最坏延迟的频率和最坏延迟的时间消耗。CMS没有执行压缩,所以可以避免old代空间的stop-the-world压缩(会让整个应用暂停运行)。 优化CMS的目标就是避开stop-the-w
2015-07-28 11:48:55 777
原创 一步步优化JVM<五>:优化延迟或者响应时间(1)
本节的目标是做一些优化以满足对应用对延迟的需求。这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小。 这一步有如下可能的结果: 1、应用的延迟需求被满足了。如果这一步的优化操作满足了应用的延迟需求,你可以继续下一步优化(优化吞吐量)。
2015-07-28 11:43:06 538
原创 一步步优化JVM<四>:决定Java堆的大小以及内存占用
到目前为止,还没有做明确的优化工作。只是做了初始化选择工作,比如说:JVM部署模型、JVM运行环境、收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则。这一步将介绍如何评估应用需要的内存大小以及Java堆大小。首先需要判断出应用存活的数据的大小,存活数据的大小是决定配置应用需要的Java堆大小的重要条件,也能够决定是否需要重新审视一下应用的内存需求或者修改应用程序以满足内存需求。 注
2015-07-28 11:37:01 546
原创 一步步优化JVM<三>:GC优化基础
本节主要描述关于垃圾回收器性能的三个指标,三个关于垃圾回收器优化的基本原则,以及优化HotSpot VM的垃圾回收器的信息收集,在这些指标中权衡以及信息的收集是非常重要的。性能指标 吞吐量:衡量垃圾回收器运行在性能峰值的时候不需要关心垃圾回收器暂停的时间或者需要占用内存的能力。 延迟:衡量垃圾回收器最小化甚至消灭由垃圾回收器引起的暂停时间和应用抖动的能力。 内存
2015-07-28 11:31:03 476
原创 一步步优化JVM<二>:JVM部署模型和JVM Runtime
选择JVM部署模型 JVM部署模型的选择总体来说就是决定应用是部署在单个JVM实例还是多个JVM实例上(这里简单举例说明一下JVM实例,比如:我们常用eclipse开发,启动一个eclipse就是启动了一个JVM实例,然后在JVM中运行一个main程序,又会启动一个JVM实例,两个JVM实例是隔离开的)。哪一个是最适合你的应用的呢?这个是前面说到系统需求和潜在规则来决定的。比如说:
2015-07-28 11:28:47 455
原创 一步步优化JVM<一>:概述、方法及需求
现代JVM是一个具有灵活适应各种应用能力的软件,尽管很多应用能够在JVM的默认配置下运行良好,但是有些应用还是需要优化JVM配置以达到其性能要求。由于各种各样的应用能够运行在现在JVM上面,所以大量的JVM选项可以配置来提升应用的性能。不幸的是,对一个应用而言优化得很好的JVM配置,对应另外的应用不一定适合。所以,真正理解怎样优化JVM配置是非常有必要的。 优化现代JVM是一门很大
2015-07-28 11:19:03 491
原创 JAVA LADP获取AD域用户列表信息
import java.util.Enumeration;import java.util.Hashtable;import javax.naming.Context;import javax.naming.NamingEnumeration;import javax.naming.NamingException;import javax.naming.directory.Attrib
2015-07-08 14:53:57 6136 1
原创 JAVA字符串的GZIP压缩解压缩方法
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream;
2015-07-07 17:50:02 930
Swing下CS结构软件自动升级实现
2012-10-16
java处理GIF文件格式时进行相关分析的类
2012-10-15
图像数字水印的JAVA实现
2012-10-15
Java_TCPIP_Socket编程
2012-09-26
良好体验度的注册系统ASP.NET版本
2008-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人