- 博客(127)
- 资源 (4)
- 收藏
- 关注
原创 Java中利用位与和位或进行函数参数优化的技巧
如果你留意过JDK中正则表达式处理的源码就会发现其实在java.util.regex.Pattern中就使用了这个技巧,这样我们在初始化java.util.regex.Pattern对象时就可以这么写:Pattern pattern=Pattern.compile("\\w",Pattern.CASE_INSENSITIVE|Pattern.COMMENTS|Pattern.MULTILINE);
2016-05-17 17:24:11
881
原创 DBCP连接池泄露问题
线上使用DBCP时,因为网络闪断、数据库重启、授权错误,在获取连接出现异常时,就可能导致连接数持续增多,配置以下参数可以进行补救:datasource.removeAbandoned=truedatasource.removeAbandonedTimeout=120datasource.logAbandoned=true datasource.removeA
2016-04-20 16:16:00
7343
原创 Mysql联合索引实测分析
对于为什么要使用联合索引,最重要的几点如下:1.在mysql查询中一次简单查询仅能使用一个索引,索引过多,会影响INSERT及UPDATE性能,简单说就是会影响数据写入性能。因为更新数据的同时,也要同时更新索引。但是索引列越多,通过索引筛选出的数据越少。有1000W条数据的表,有如下sql:select * from table where a = 1 and b =2 and c = 3,假
2016-03-18 10:37:26
924
转载 使用 Nginx 构建一个“高”可用的 PHP 集群
跳过没必要的介绍,直接进入主题。目前建立一个高可用集群的方案不少,可以使用硬件或软件 LVS 类构建,现在我说的方案是只用 Nginx 来进行构建。 这个集群的架构如下图: 上面我们共部署了5个节点,每个节点上配有 Nginx + PHP。这个架构的重点就在于,Nginx 不只是与本机的 PHP 通信,整个集群应该把 Nginx 部分抽象到面向业务的第一层,而 PHP
2016-03-15 09:35:09
3163
转载 JVM内幕:Java虚拟机详解
这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方
2016-03-15 08:49:56
551
转载 Mybatis拦截器Plugin源代码分析
package org.apache.ibatis.plugin;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.HashMap;import java.util.HashSet;impo
2016-03-10 08:50:02
637
原创 Java发送内嵌图片的邮件
使用Java发送邮件时,既需要发送html文档又需要在邮件中内嵌图片(非附件形式),这里封装了一个类使用JavaMail组织的邮件发送,支持多张图片发送,并指定图片位置。注意img标签src要如下写"其中abcd对应mageMailDto#imageCid,可以自行定义,不要出现重复。发送方法,注意替换几个邮件参数,如host、user、password /** * 发送内嵌图片
2016-03-02 18:22:49
5985
原创 JAXB将JAVA对象转换为XML时CDATA的问题
对Java对象转换为xml字符串时,如果有特殊字符如<>必须要是用<![CDATA[]]>来声明。我先尝试了使用XStream解决这个问题也有使用MOXy CDATA注解解决,最后发现,都存在一定的缺陷,甚至不能正常的实现该功能。最终解决方案有两个,都可以解决这个问题,但是第一个方案由于引用了sun的专有API,在编译时会存在警告,使用了内部的API并不是值得推荐的。但是这里也贴出来,供大家参考。
2016-02-16 16:43:11
6760
2
原创 log4j2获取JVM启动参数
在log4j1.x版本如果想获取如下的JVM启动参数Dlog.path.prefix=/export/home/tomcat/logs/waybill1.etms/waybill1.etms.360buy.com -Ddeploy.project.id=2856 -Ddeploy.app.id=370 -Ddeploy.app.name=myApp其中log.path.pref
2016-01-20 09:41:41
9158
原创 关于Hessian的入门知识和性能测试指标
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。如果是基于JAVA 到JAVA的调用,服务端提供JAR包后,客户端可以使用JAVA方便的调用,即使是自定义类,非常的方便。hessian支持的语言:Jav
2015-12-16 09:07:34
2514
转载 服务治理过程演进
在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和Fa
2015-12-15 10:12:20
484
原创 springmvc中执行异步任务
在springmvc中如果通过http请求触发的一个耗时任务,想使用异步执行的方式,使用传统的new Thread是无法实现的。会话超时或者返回后,异步的线程也会消亡。支持的版本是2.0.3以后,3.2后基于servlet3.0可通过可通过返回 Callable 来完成异步处理。package controller;import domain.Response;imp
2015-09-07 10:11:23
2314
原创 Log4j配置为何失效
昨天上线折腾了半天,发现日志始终不能正确打印到指定文件,反而Tomcat的catalina.out打印了业务日志,仔细检查线上log4j配置,未发现任何问题,console日志输入并没有打开。于是迅速使用上次上线包进行替换重新发布,发现问题解决。考虑到本次上线新依赖了其他系统的jar包,检查该jar后发现,jar包中包含了Log4j.xml!!log4j为何选择了jar中的log4j.
2015-08-14 09:31:15
8136
原创 gitignore不起作用解决办法
git rm -r --cached .git add .git commit -m 'update .gitignore'
2015-07-14 14:50:50
529
原创 List进行remove和add操作时缘何会报UnsupportedOperationException
看段简单的代码:String[] arry={"abc","eee","fff"};List list= Arrays.asList(arry);list.add("eeef");运行结果:Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add
2015-05-22 10:45:03
776
转载 神经网络的通俗解释
人工神经网络算法的作用机理还是比较难理解,现在以一个例子来说明其原理。这个例子是关于人的识别技术的,在门禁系统,逃犯识别,各种验证码破译,银行预留印鉴签名比对,机器人设计等领域都有比较好的应用前景,当然也可以用来做客户数据的挖掘工作,比如建立一个能筛选满足某种要求的客户群的模型。 机器识别人和我们人类识别人的机理大体相似,看到一个人也就是识别对象以后,我们首先提取其关键的外部特征比如身高
2015-03-04 11:44:46
2229
原创 在input元素上用非绑定的方式监听回车事件并传递参数
场景是动态生成html元素,为生成的input添加事件。要求有两点:非绑定的方式并且需要传递参数 ;参数为方法名称,回调该方法并将input的值作为参数。参考实现如下:input写法 tmp.push('');其中 userFunction为要调用的方法名称(方法名字符串)javascript写法function _callBack(fuc){ var myIn
2015-02-03 15:31:19
1701
原创 Jackson转换泛型List出现错误java.util.LinkedHashMap cannot be cast to com.xxx
使用stackoverflow上的代码描述这个问题: ObjectMapper mapper = new ObjectMapper(); List list = new ArrayList(); try { list = mapper.readValue(con.getInputStream(), ArrayList.class); } ca
2015-01-12 16:13:04
46466
2
原创 一个很稳定的服务框架Dubbo
简单介绍,不做深刻技术分析。Dubbo是阿里开源的一个项目,有幸听过梁飞现场的介绍,目前该框架广泛应用于我所在公司,经过多次大型活动的考验,事实证明Dubbo是一个确实很优秀的框架,当然我们对它也有所改造。目前为止,Dubbo已经不再更新。我简单介绍一下它的使用场景。首先Dubbo适用于高负载,高并发的场景,诞生在阿里的服务框架, 设计目标是什么,你懂的。当然不是说有几台十几台
2014-11-15 16:43:28
1787
原创 如何给ExecutorService异步计算设置超时
ExecutorService接口使用submit方法会返回一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用get方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由cancel方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用Fu
2014-07-01 19:35:03
4918
原创 一段代码说明javascript闭包运行机制
如果你能理解下面代码的运行结果,应该就算理解闭包的运行机制了。 var name = "tom"; var myobj = { name: "jackson", getName: function () { return function () { return this.name;
2014-07-01 19:32:37
1138
原创 javascript的prototype经典使用场景
prototype的经典使用场景就是为对象增加属性和方法,如给自定义的Man对象增加个姓名属性和语言方法: function man() { this.age = "22"; } var tom = new man(); man.prototype.name = "tom"; man.prototype.say = function () {
2014-07-01 19:31:07
1773
原创 Javascript-自定义对象转换成JSon后如何再转换回自定义对象
man是自定义的对象,使用var tim = JSON.stringify(man); var newman=JSON.parse(tim)后newman的类型是“object”并不是一个Man,怎么才能变回一个Man呢?function Man() { this._type = "man"; this.name=""; this.run = function () {
2014-07-01 19:28:35
1324
原创 MyBatis异常java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for
1.表现: 异常表现,数据插入操作执行失败,无语法错误,配置文件检查正常2.异常详细信息:[ERROR][2014-03-26 16:02:52.490]nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause:
2014-07-01 19:26:51
19461
原创 intellij idea 生成JavaDoc乱码问题处理
在Other command line arguments 中填写:-encoding utf-8 -charset utf-8如图:
2014-07-01 19:25:13
4889
1
原创 JAVA开发的网页式看图软件
现在大家都忙着大数据,中间件,web开发,偶尔看看Swing的作品,或许能有另一番感觉。而且......用来看妹子不错!
2014-06-21 12:41:14
1443
原创 Spring3.1中使用profile配置开发测试线上环境
如果在开发时进行一些数据库测试,希望链接到一个测试的数据库,以避免对开发数据库的影响。开发时的某些配置比如log4j日志的级别,和生产环境又有所区别。各种此类的需求,让我希望有一个简单的切换开发环境的好办法,曾经在ROR的时候就很喜欢舒服。现在spring3.1也给我们带来了profile,可以方便快速的切换环境。配置环境使用也是非的方便。只要在applicationConte
2014-06-17 14:51:02
1508
原创 Spring无配置使用properties文件
利用@PropertySource注解加载@Configuration@ComponentScan(basePackages="*")@PropertySource({"classpath:config.properties"})//@Import(DataSourceConfig.class)public class DefaultAppConfig { @Be
2014-06-17 14:50:58
744
原创 理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,
2014-06-17 14:50:54
492
原创 ORACLE解锁record is locked by another user
在操作ORACLE数据库的时候,由于执行完,没有COMMIT,直接把PL/SQL关闭掉,后来导致那张表被锁住,当编辑时就会出现这个信息,record is locked by another user! 当出现这种情况的时候,只要操作下面几个步骤就可以解锁了。 1、查看锁 select t2.username,t2.sid,t2.serial#,t2.logon_time from v$l
2014-06-17 14:50:50
592
翻译 分布式网站架构后续:zookeeper技术浅析
Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用 越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥 zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用。 Zookeeper是针
2014-06-17 14:50:45
554
原创 MySQL集群的可行方案
如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有:一、MySQL Cluster优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分Bug,目前还不适合比较核心的线上系统,所以这个我不推荐。二、DRBD磁盘网络镜像方案优势:软件
2014-06-17 14:50:41
479
原创 Maven 安装Jar包到本地仓库
开始cmd:例1:mvn install:install-file -DgroupId=Issues -DartifactId=beautyeye -Dversion=3.5 -Dpackaging=jar -Dfile=D:\download\beautyeye_lnf_v3.5_all_in_one\src_all\SwingSets2_for_be_lnf\lib\beautye
2014-06-17 14:50:37
1670
原创 JProfiler 使用说明
一个全功能的 Java 剖析工具( profiler ),专用于分析 J2SE 和 J2EE 应用程序。它把 CPU 、执行绪和内存的剖析组合在一个强大的 应用中。 JProfiler 可提供许多 IDE 整合和应用服务器整合用途。 JProfiler 直觉式的 GUI 让你可以找到效能瓶颈、抓出内存漏失 (memory leaks) 、并解决执行绪的问题。它让你得以对 heap walker 作
2014-06-17 14:50:33
1693
原创 【J2EE性能分析篇】JVM参数对J2EE性能优化的影响
一切J2EE应用都是基于JVM的,那么对于JVM的设置和监控,成为J2EE应用程序性能分析和性能优化的必然手段。今天Sincky和大家交流该话题。这里以Tomcat环境为例,其它WEB服务器如Jboss、Weblogic、Websphere完全一致。【认识JVM】 首先我们来看一张图,这是目前JDK1.6版本自带的JVM性能监控工具VisualVM的一个插件VisualGC的显示情况。让我
2014-06-17 14:50:29
467
转载 C语言字节对齐 内存管理
用C语言写程序时需要知道是大端模式还是小端模式。 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但
2014-06-17 14:50:24
807
原创 MYSQL自动备份策略的选择
目前流行几种备份方式:1、逻辑备份:使用mysql自带的mysqldump工具进行备份。备份成sql文件形式。优点:最大好处是能够与正在运行的mysql自动协同工作,在运行期间可以确保备份是当时的点,它会自动将对应操作的表锁定,不允许其他用户修改(只能访问)。可能会阻止修改操作。sql文件通用方便移植。缺点:备份的速度比较慢。如果是数据量很多的时候。就很耗时间。如果数据库服务器处在提供给用户服务状
2014-06-17 14:50:20
624
原创 This system is not registered with RHN
root@localhost ipvsadm-1.25]# yum install gccLoading "security" pluginLoading "rhnplugin" pluginThis system is not registered with RHN.RHN support will be disabled.Setting up Install ProcessParsing pa
2014-06-17 14:50:16
509
文件加密解密工具
2016-02-24
mana2.0看图一个网页看图方式的看图软件
2016-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人