- 博客(29)
- 资源 (3)
- 收藏
- 关注
原创 Servlet Note
Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。 Java Servlet 通常情况下与使用 CGI(Common
2016-08-17 23:50:29 6740
转载 JVM Server与Client运行模式
JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是: 当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高. java -version 可以直
2016-08-31 19:56:58 11844
转载 linux jstat 监控 java GC
性能测试过程中,我们该如何监控java虚拟机内存的使用情况,用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。在项目实践过程中,我们探索和使用了一款新工具--Jstat。\cal\color{fuchsia}{ 性能测试过程中,我们该如何监控java虚拟机内存的使用情况,用以判断
2016-08-31 19:48:05 9181
原创 Maven 多个web合并打包部署
在一个大项目中拆分maven工程时,通常会根据业务模块进行拆分。无论怎么划分,往往每个模块又需要集成权限管理orm或者说依赖 静态资源web公共模块。而为了避免资源的浪费,或者是希望一次登录,可以访问多个模块, 也就是希望合并多个web打包部署。 实际当中,在开发的时候,为了方便,开发人员希望每个业务模块都可单独部署。而发布的时候,发布人员希望合并部署。 因此,在实际应用中,
2016-08-30 11:23:24 15710
转载 Nginx + CGI/FastCGI + C/Cpp
推荐博客:http://www.cnblogs.com/skynet/p/4173450.html 作者:吴秦(Tyler)
2016-08-29 14:33:09 6106
原创 EhCache RMI 分布式缓存/缓存集群
EhCache 系统简介EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点。 EhCache 的主要特性有: 快速、精干 简单; 多种缓存策略; 缓存数据有两级:内存和磁盘,因此无需担心容量问题; 缓存数据会在虚拟机重启的过程中写入磁盘; 可以通过 RMI、可插入 API 等方式进行分布式缓存; 具有缓存和缓存管理器的侦听接口; 支持
2016-08-29 14:19:12 10463
原创 Runable和Thread
网上有人说,实现Runnable接口相对于继承Thread类来说,有如下显著的好处: (1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。 (2)可以避免由于Java的单继承特性带来的局限。(3)有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同
2016-08-26 13:52:17 6447
原创 Spring mvc的单例和多例性能
推荐博文:Java单例和多例的性能spring mvc 单例业务类import org.springframework.stereotype.Service;@Servicepublic class SpringSingleService { public void doSomething(){ try { Thread.sleep(1);
2016-08-25 14:36:26 8997
原创 Java单例和多例的性能
公用类ThreadUtils,用于父线程等待子线程运行结束。import java.util.List;public class ThreadUtils { // 注册runnable public static synchronized void regist(Runnable runnable, List<Runnable> runnableList){ sync
2016-08-25 14:27:47 9101
原创 关于 Redis Double的精度问题
最近有一个算法,关于求最近一段时间文本相似度的问题,用到了Reids的SortSet,测试后发现SortSet的Score是Double类型,遇到下面的两种情况都有可能存在精度问题。 1、当整数的时候,整数位数最好不超过16位,如果超过16位,就有可能失真了,超过17位,Redis会选择使用科学计数法。 2、当带了小数点,我们取整数部分的位数n,当小数点后前n+1位都0的时候, 如 1.
2016-08-23 21:18:54 22242 2
原创 Redis 管道出现线程穿插
Jedis的PIPLINE管道缓冲区有大小限制,若一批命令超过缓冲区的大小,jedis会将这一批命令序列化后,拆分成多个管道提交到Redis服务器执行。拆分成多个管道后会导致其他客户端连接可以穿插进来。 Jedis一个管道数据包的大小约为:1.46K 上图是通过wireshark抓包工具进行分析,分析思路如下: 线程一为程序的源端口63556;线程二为程序的源端口63558。
2016-08-23 20:41:34 7620
原创 Struts2.1.8 Ognl 漏洞浅析和解决方案
前面的话 工作了好几点,一直都没有认认真真的去写过什么东西,趁着最近这段时间有空,总结一下这几年在工作中的一些经验,尤其是Struts2 Ognl 漏洞,当年不知道影响了多少个互联网企业。现在把他记录下来,作为对几年工作的一个回忆吧。 如果您是对Struts2不熟悉,又想测试Struts2 Ognl 漏洞的读者,请下先移步到Struts2 入门示例,里面有一个简单的Struts示例,
2016-08-21 21:25:33 11714 1
原创 MySql Order By 多个字段 排序规则
说在前面突发奇想,想了解一下mysql order by排序是以什么规则进行的? 好了,话不多说,直接进入正题吧。MySql order by 单字段建一测试表如下:CREATE TABLE `a` ( `code` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB DE...
2016-08-21 21:15:32 260123 11
转载 Struts2 入门示例
什么是Struts2? Struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。 过去,我们用jsp和servlet搭配,实现展现时,大体的过程是: 1 jsp触发action 2 servlet接受action,交给后台class处理 3 后台class跳转到其他的jsp,实现
2016-08-18 21:02:10 6648
原创 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
今天程序里获取Redis报错如下:(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for
2016-08-18 16:14:51 6195
原创 Apache + CGI + C/C++ For Windows
前文 上一篇文章: 初识 CGI,CGI 简识, 让我们初步了解了CGI、CGI的应用以及CGI, 那么本文我们就介绍一下在windows下Apache + CGI + C/C++的使用。 C/C++的Eclipse cdt开发坏境,可以参考Eclipse CDT MinGW生成C++动态链接库及Java JNI的调用例子 本文需要安装Apache,windows版本下载路径:h
2016-08-17 23:02:29 7439
原创 初识 CGI,CGI 简识
什么是 CGI?CGI是Common Gateway Interface,即 公共网关接口 的简称。公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的。公共网关接口(CGI),是一种用于外部网关程序与信息服务器(如 HTTP 服务器)对接的接口标准。公共网关接口(CGI),它是一个用于定Web服务器与外部程序之间通信方式的标准,使得外部程序能生成HTML
2016-08-17 22:44:39 10066
原创 世界密码大全
本文只作为阅读笔记。把几个世界级密码相关的网址记录下来。破解不能:世界八大最强密码密码往事至今仍未被破译的五个世界级密码http://www.guokr.com/article/93037/?_block=article_interested&_pos=2&rkey=87d3
2016-08-17 19:50:01 13497
原创 Spring4.0.6 +Quartz 2.2.1动态添加、修改、删除、关闭定时任务
说在前面:Spring Quartz动态添加、修改、删除、关闭定时任务, 无非就是将 《Spring task quartz 示例 一文中的Spring quartz示例 和 《Quartz 2.2 动态添加、修改和删除定时任务》QuartzManager.java进行整合。 相对Spring Task的动态添加、修改、删除、关闭定时任务简单了许多。下面我们进入正题。需要引入 sprin
2016-08-04 14:17:27 29824 14
转载 Spring+Quartz的版本兼容问题
使用Spring配置管理Quartz的时候会遇到下面的异常: Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class原因是Sp
2016-08-04 13:29:51 9296 1
原创 Spring task quartz 示例
说在前面:本文基于Spring 4.0.6, 我们新来了解一下Spring的关于task和集成quartz的一些版本特性。Spring 自3.0版本以后便自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。Spring 4.0.3以后task的源码可以在spring-context-4.0.3.RELEASE-sources.jar查阅, 源码包路径:org.
2016-08-04 11:59:20 7474
原创 Quartz 2.2 动态添加、修改和删除定时任务
Quartz 2.2 的实现原理和运行过程, 请阅读我的另一篇文章:http://blog.csdn.net/xlxxcc/article/details/52104463下面直接上代码: QuartzManager.java 动态添加、修改和删除定时任务管理类import org.quartz.CronScheduleBuilder;import org.quartz.CronTrigger;
2016-08-04 10:08:15 50098 22
原创 Java Executors 和 ThreadPoolExecutor 线程池
Executors提供四种线程池,分别为:newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。 创建方式: Executors.newCachedThreadPool();newFixedThreadPool
2016-08-04 00:21:24 11756
原创 quartz集群调度机制调研及源码分析
推荐博文:http://www.cnblogs.com/davidwang456/p/4205237.html 原文:http://demo.netfoucs.com/gklifg/article/details/27090179 针对扩展quartz, 进行集群分析非常透彻,原文是使用数据库方式改动
2016-08-03 20:15:26 6585
原创 Quartz 2.2 的实现原理和运行过程
一、Quartz 的几个概念类这几个概念类,是我们调用Quartz任务调度的基础。了解清楚之后,我们再来看一下如何去启动和关闭一个Quartz调度程序。1、org.quartz.Job 它是一个抽象接口,表示一个工作,也就是我们要执行的具体内容,他只定义了一个几口方法: void execute(JobExecutionContext context) 作用等同Spring的: org.
2016-08-03 19:59:13 20828
转载 JavaScript数组操作大全
一、js数组的常规操作1、数组的创建var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); // 创建一个数组并指定长度,数组都是变长的, 尽管指定了数组的长度,仍然可以将元素存储在规定长度以外的var arrayObj = new Array([element0[, element1[, …[, elementN]
2016-08-01 10:39:38 7518
原创 js中setInterval与setTimeout用法
setInterval()与setTimeout() 是 Document自带的方法, 前者表示循环执行, 后者表示定时执行。 循环执行:var timeid = window.setInterval(function, time); 停止循环执行 : window.clearInterval(timeid); 定时执行:var tmid = window.setTimeout(functio
2016-08-01 10:18:49 6586
原创 JS判断对象是否拥有某属性
1、hasOwnProperty 方法var obj = {id:'001'};obj.hasOwnProperty('id'); // --> trueobj.hasOwnProperty('toString'); // --> false2、in 运算符var obj = {id:'001'};console.info('id' in obj); // --> trueconsole.i
2016-08-01 09:46:12 6842
专用SK6211_2008_BA汉化版量产工具
2011-04-21
smi i1126量产工具
2010-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人