自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(238)
  • 问答 (2)
  • 收藏
  • 关注

Map浅析

java.Util.Map接口是jdk的常用接口,Map是一种数据字典,以key,value形式出现,key、value作为数据域出现在内部接口Entry<K,V>中。提供根据key查value,以及keys和values集合并遍历的方法。没什么特殊的地方,只是对于几种Map,如果能知道其数据结构和相对优劣,对于编写性能较好的程序是需要掌握这些的。 1.Hashtable...

2016-07-12 22:35:25 172

List浅析

java.util.List是java集合框架的基础接口之一,使用频率非常高,如下主要从数据结构和应用场景做简单分析,仅供交流和参考。 1.VectorJdk遗留类,现在使用很少,但了解下最初jdk集合类的实现方法也是不错的。添加、删除方法如下所示,都是通过synchronized关键字保证线程安全性。public synchronized void addElement(E ...

2016-07-10 17:13:19 173

原创 mq的用途

最近几个月,参与了一个大数量,高并发的项目,遇到过一个问题,由于并发较高,导致系统间的tcp调用超时严重,调用者和被调用者都不堪重负,后来添加了一个MQ,负责两者之间的消息传输,有效地解决了两者的窘境。调用者将消息发送到MQ,它容量巨大,调用者发送很顺畅,接收方也可根据自己的处理能力来决定接收速度,处理完1条消息,再接收下1条,遇到处理异常还可重发,真可谓一石二鸟...  ...

2014-09-13 00:01:14 287

原创 mysql大数据量下访问实践

最近参与了一些用户相关系统的开发,经历了数据库在大数据量下出现的一些问题,记录备忘,也请有经验的牛们指点指点。 目前数据量大概在40亿条左右,最近1周大概增长了50%左右,后面可能会小一些,每天预估在几百到几千W条左右。 功能:java服务接口接收请求,执行sql操作。 查询:读操作共有5,6种,group by, max()比较多,查询数据时间范围在1年左右。...

2014-09-01 11:14:50 146

java服务,cpu高,内存高,telnet不通排查及分析

记录上周五的一个java服务的异常排查及分析过程,以备将来参考。 java服务的异常主要表现为3点:1.cpu使用率高;2.内存占用较大;3.本机telnet访问服务被拒绝 具体情况:1.cpu高。启动时会打到800%以上,访问量不大的时段,top看到使用率在100-400%之间,基本稳定在100%-200%左右。 2.内存高。启动后java服务占用的内...

2013-12-22 12:29:14 283

应用二级缓存设计

最近ssss系统对redis的访问压力较大,为了减轻对redis服务器的访问压力,需要对功能进行优化,下面参考了同事的优化思路,并对思路进行了改进。   ...

2013-09-09 13:01:55 249

原创 strategy(策略)模式

    策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一...

2013-08-12 15:54:17 97

原创 Adapter(适配器)模式

《设计模式》GOF :    将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。     在GOF设计模式中,Adapter可以分为类模式和对象模式两种,类模式通过继承实现,对象模式通过委托实现。  类模式示意图:   对象模式示意图:   ...

2013-08-12 13:34:48 127

观察者模式(发布-订阅)

由于网站带有弱sns功能,因此需要设计关注和被关注的消息或是动作通知,那么将这个需求抽象出来的时候就会发现正好符合java中发布订阅模式。一、概述 Java 的设计模式很多,观察者模式被称为是模式中的皇后,而且Java jdk也对它做了实现,可见该设计模式的重要位置。在图形化设计的软件中,为了实现视图和事件处理的分离,大多都采用了Observer模式,比如 Java的Swing,Flex的Ac...

2013-08-08 11:27:18 146

原创 深入分析 Java I/O 的工作机制

Java I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介绍...

2013-08-04 15:15:44 101

原创 装饰器(Decorator)模式

今天被问起装饰器模式,已没有什么印象,回来了查查资料,发现java io这块是对装饰器模式的典型应用,画张类图备忘。后面再对java nio进行统一地梳理和深入。   BufferedInputStream,顾名思义就是对InputStream添加缓冲的装饰,通过在构造函数中传入InputStream对象获得需要装饰的流,其他具体装饰子类的设计思路与此相同。OutputStre...

2013-08-03 01:31:20 109

原创 QPS、PV和需要部署机器数量计算公式

QPS = req/sec = 请求数/秒 【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 *   请求时间 )QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6公式2:每天总PV = QPS * 3600 * 8服务器计算服务器数...

2013-07-31 16:39:34 186

原创 RPC之java应用

    什么是RPC?Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。比较严格的定义是:    Remote procedure call (RPC) is a protocol that allows a computer program running on one compute...

2013-07-31 10:09:18 91

原创 rmi工厂模式实例

rmi编写java分布式系统时,采用工厂模式的使用示例,参考孙卫琴的《java网络编程精解》,比较简单,仅供日后备忘。 类图:   远程接口import java.rmi.Remote;import java.rmi.RemoteException;public interface IFlight extends Remote{ public ...

2013-07-29 15:50:46 165

原创 socket、RMI、WebService 比较

RMI vs Socket一般来说,基于CS(client-server)软件架构的开发技术有很多种。比较常用的有:基于socket的网络编程、RPC、基于 Java技术的 RMI(当然C#也有类似技术)、CORBA等。在这里我们只是对基于socket的网络编程与RMI作个对比,有助于我们了解它们各自的应用领域,帮助 我们在面对一个具体问题的时候选用适合的技术。另外,本文所做的讨论可以认为...

2013-07-26 21:30:06 166

原创 几种主要通信协议的性能比较

总体性能比较:Socket(BIO/NIO)>RMI>HTTPInvoker>=Hessian>REST>>Burlap>EJB>>Web Service 如果协议设计的比较好,Socket性能毫无疑问是最高,同时灵活性和复杂度也最高,如果采用高效的网络框架如:Mina、Netty等可以降低开 发复杂度,一般在对性能有非常苛刻的条件下...

2013-07-26 21:24:56 148

原创 Linux: 10 个 Netstat 命令实例

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。本文提供 10 个非常实用的 Netstat 命令实例。 1. 列出所有端口 (包括监听和未监听的)列出所有端口 netstat -a netstat -a | m...

2013-07-23 19:34:25 427

mysql函数实例-统计月登陆用户数

统计月使用用户数,仅作备忘。 CREATE FUNCTION statics_user_login_month() RETURNS int(11) COMMENT '月使用用户数\r\n'BEGIN #Routine body goes here... DECLARE stopFlag INT DEFAULT 0 ; DECLARE _shop_id INT(...

2013-07-14 21:31:39 147

mysql函数实例-统计1周内未登陆的用户

流失用户统计(1周内未登陆的用户)。 CREATE FUNCTION `statics_user_unlogin_week`() RETURNS int(11) COMMENT '流失用户统计(一周内未登录的用户)'BEGIN #Routine body goes here... DECLARE stopFlag INT DEFAULT 0 ; DECLARE...

2013-07-14 21:13:24 303

mysql函数实例-统计日新增用户

新增用户统计,仅用作备忘。 CREATE FUNCTION `statics_user_new`() RETURNS int(11) COMMENT '统计新增用户'BEGIN #Routine body goes here... DECLARE stopFlag INT DEFAULT 0 ; DECLARE _shop_id VARCHAR(11) DEF...

2013-07-14 21:02:20 185

mysql函数实例-统计日存留率

根据项目报表需求,需要统计通过手机app登录系统的用户的日存留率。统计功能比较简单,仅作日后参考,欢迎经验丰富的朋友指点。 1.数据库表手机用户的信息保存在一张visitor_user的表中,其中包含了用户使用手机app软件时,可以获取的数据,包括: 商家id、手机设备号、下线时间等信息。 2.功能分析与设计数据统计报表一般都采用DB的存储过程或函数进行统计,并将数据保...

2013-07-13 14:57:20 135

原创 java自带监视工具使用_jmap_jhat

jmap命令(Java Memory Map)1.介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具...

2013-07-06 17:50:20 85

原创 java自带监视工具使用_jps_jstack

jps命令(Java Virtual Machine Process Status Tool)1.介绍用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。Jps也可以显示远程系统上的JAVA进程,这需...

2013-07-06 17:32:42 142

处理OutOfMemoryError: PermGen space

前两天后台系统内存溢出错误,查看tomcat日志,看到如下信息:Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space 分析及判断:1.日志提示比较明确, PermGen内存溢出。2.采用适当加...

2013-07-06 12:15:07 73

常用linux命令_2

30.memcached版本[root@Server213 bin]# ./memcached -hmemcached 1.4.1031.apacheservice httpd start|stop|restart /usr/local/apache/bin/apachectl -k start32.visulVM jstatd -J-Djava.security.policy=jstatd.a...

2013-07-05 12:29:04 76

原创 mysql处理百万级数据库常识

    最近一段时间参与的项目要操作百万级数据量的数据,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。之前数据量小的时候,查询语句的好坏不会对执行时间有什么明显的影响,所以忽略了许多细节性的问题。     经测试对一个包含400多万条记录的表执行一条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sq...

2013-06-26 09:12:43 91

统计分析-mysql游标

项目中的统计分析模块,使用存储过程对数据进行统计,满足用户查看报表数据的需求。之前对于mysql的游标使用较少,写个小例子,熟悉下游标以备忘。   实现功能: 将shop_boss表中部分字段的值插入到test表中。 CREATE DEFINER=`admin`@`%` PROCEDURE `test_cursor1`()BEGIN #Routine body g...

2013-06-25 16:01:37 124

原创 div的显示与隐藏

今天做个小功能(2009-3-6):将取得的数据显示在一jsp页面中,这两条记录是彩票投注的数据。显示问题:"方案内容"可能包含多注,当前的页面中显示出来会将表格撑开成多行显示,视觉效果不太好。 解决办法:在当前页面中添加一个div,用来显示"点击查看"应该看到的用户的投注。1.首次打开该页面,显示betsDetail(概括信息内容),隐藏betsContent(投注详情)2.点击“点击...

2013-06-19 16:49:07 101

原创 学习网页标准的5个步骤

    我想每一个刚刚接触web标准的人都会问这样的问题,我就根据自己的经验总结。    Step 1.不要一味使用DW等工具设计网页,去熟悉(X)HTML语言和CSS语言    因为web标准对代码的要求提高了,没有对xhtml代码没有一定的了解是无法通过校检的。DW工具也可以使用,但是要看着代码写网页了。    首先是xhtml代码,不是很多,知道他们如何使用,怎么正确书写,而且要记得封闭ta...

2013-06-18 18:57:36 87

原创 request.getContextPath()详解

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。  但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">也行,这两个文件是在同一个目录下的。比如你要生成一个文...

2013-06-18 18:56:36 103

原创 MIMIE类型大全

获取MIME:HttpContext.Current.Request.Files[fileKey].ContentLength MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 下面列出常用的文件对应的MIME类型: Mime...

2013-06-18 18:55:29 1230

原创 java c3p0标准配置实例

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframe

2013-06-18 18:50:13 87

排序算法比较之一:冒泡和归并

冒泡和归并排序是两种常用的排序方法,实际应用中性能差别有多大呢,通过如下有两个小测试可以看到它们之间大概的差距。 需求:对10000个员工根据编号排序,员工编号以A开头。由于各公司分别编号,员工编号可以重复。 util类: public class SortUtil { private static final int EMP_NUMBER = 10000;...

2013-06-08 01:18:42 136

原创 How do I register out parameter in CallableStatement?

Only for reference. import java.sql.*;public class TestCallPrecedure { public static void main(String[] args) { Connection connection = null; try { connect...

2013-06-03 10:33:42 106

原创 How do I query and insert CLOBs data from database?

Only for reference. import java.io.File;import java.io.FileWriter;import java.io.Reader;import java.sql.*;public class TestOperClob {private static String url = "jdbc:oracle:thin:@lo...

2013-06-03 10:15:50 94

原创 How do I read and insert BLOBs data from database?

Only for reference. import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.sql.*;public class TestOperBlob { private static String url = "jdbc:...

2013-06-03 10:13:43 76

原创 How do I retrieve values from ResultSet?

Only for reference.This example shows how to read data from a ResultSet returned by a executing an SQL query to a table in database. import java.sql.Connection;import java.sql.DriverManager;...

2013-06-03 10:10:37 87

原创 java堆栈

1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共 享,详见第2点。堆的优势是可以动态地分配内存大小,生存期也不必事先告知编译器,JVM根据GC策略自动回收不...

2013-05-26 22:05:22 85

Template模式

    这个模式2006年我就知道了,当时通过学习网络和书籍等相关资料,能够理解并写写示例代码,但2013年的今天被人问起来,想了想,脑子里一片空白,愣是一句没说上来,自己感觉真可笑,最后只能以“不记得了”作为答复,让我很纠结,纠结不已。其实平时项目中经常见到类似的实现,并且自己也常用该模式编写继承结构,但没有意识到在用Template设计模式,当然这听起来是借口,也确实是事实。闲话少说,进入...

2013-05-26 02:11:25 80

java socket类文件传递及加载

最近遇到一个java socket问题,具体业务场景不做描述,只谈谈具体的技术需求,如下所述:1.client端从server端下载java class文件.2.完成后动态加载该类,并调用该类的某个方法。 关键点:1.利用java socket传递java class文件。2.如何将某path下的java class文件加载到JVM。 测试实现:需求很明确,没...

2013-05-09 19:00:28 95

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除