- 浏览: 497356 次
- 性别:
- 来自: 杭州
最新评论
-
herofighter2008:
图呢?图呢?图呢?图呢?
BlockingQueue -
zy13608089849:
请问一下博主,文中几处提到的图,怎么都没有?是我这显示不出来还 ...
BlockingQueue -
swift911:
在短信的场景下很好用,感谢分享
BlockingQueue -
tony_0529:
学习了~谢谢分享。
BlockingQueue -
Master-Gao:
...
BlockingQueue
文章列表
代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一 ...
原文见:http://www.itlearner.com/article/3747
[导读 ]modrewite 将URL定向到另一个目录或文件,而地址栏URL不变,网页内容为新地址内容。 http://www.test.com/a/b 显示 http://www.test.com/test/的内容,URL地址还保持为 www.test.com/a/b根据下面操作自己可以更加灵活...
modrewite 将URL定向到另一个目录或文件,而地址栏URL不变,网页内容为新地址内容。http://www.test.com/a/b 显示 http://www.test.com/t ...
Java序列化的机制和原理
- 博客分类:
- java基础
原文见http://developer.51cto.com/art/200908/147650.htm
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。
Java
序列化算法透析
Serialization
(序列化)是一种将对象以一连串的字节描述的过程;反序列化
deserialization
是一种将这些字节重建成一个对象的过程。
Java
序列化
API
提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及
Java
序列化的算法,我们用一个 ...
原文:http://zhaohe162.blog.163.com/blog/static/382167972011101325527323/
一、引言
本文的读者是技术支持人员。阅读本文后,你将理解
jboss
的启动脚本文件(
run.sh
)中有一系列的
JVM
配置参数的含义,以及如何调整它们,从而使得
MegaEyes
中心管理服务器的性能得到优化。
MegaEyes
中心管理服务器的性能调优涉及到系统的多个方面,包括
MegaEyes
应用本身、应用服务器(
jboss
)、数据库和
java
虚拟机(
JVM
...
在开始介绍之前,先介绍几篇写的比较详细的博客,咱们不求最精,一定最全,最省事。 http://blog.csdn.net/fenglibing/article/details/6411924 一、jstatd 启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。 实例:jstatd -J-Djava.security.policy=my.policy my.policy文件需要自己建立,内如如下:
Java代码
grant codebase "file:${java.home}/../lib/too ...
概述
对于大型 JAVA
应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环
境中进行重现。JVM 能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储 (Heap Dump)
文件中,从而为我们分析和诊断问题提供了重要的依据。
通常内存泄露分析被认为是一件很有难度的工作,一般由团队中的资深人士进行。不过,今天我们要介绍的 MAT(Eclipse
Memory
Analyzer)被认为是一个“傻瓜式“的堆转储文件分析工具,你只需要轻轻点击一下鼠标就可以生成 ...
前言
在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:
1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;
2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大小(-Xmx与-Xms),检查代码是否存在对象生命周期太长、持有状态时间过长的情况。
以上是处理Java堆问题的思路,具体是怎么进行分析,这里介绍的是使用Eclipse Memory A ...
MYSQL分库分表总结
- 博客分类:
- 数据库
单库单表
单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。
单库多表
随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。
可以通过某种方式将user进行水平的切分,产生两个表结构完全一样的user_0000,user_0001等表,user_0000 + user_0001 + …的数据刚好是一份完整的数据。
...
(转)slf4j的包使用说明
- 博客分类:
- log4j
http://www.slf4j.org/全称:Simple Logging Facade for Java 简单日志门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接口的 ...
CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思。
举个CSRF攻击的例子:我们登录bbs论坛后修改个人资料,论坛服务器更新个人资料的url是www.bbs.com/save.do?user=xx&password=xx&birthda ...
log4j的PatternLayout参数含义
- 博客分类:
- log4j
参数
说明
例子
%c
列出logger
名字空间的全称,如果加上{<
层数>}
表示列出从最内层算起的指定层数的名字空间
log4j
配置文件参数举例
输出显示媒介
分析java应用占用cpu高的线程
- 博客分类:
- jvm
一、使用top+jstack定位java应用CPU占用高的线程步骤
ps axu | grep java 或者直接jps得到进程号
top -p java进程号
在top界面按小写的s改变默认刷新值到0.5s
在shift +h 键,按线程进行显示
到现在为止,基本可以看到是哪个线程占用CPU较高了
假如线程号为21646,转换为16进制 548e
jstack java进程号 | grep -A 20 java线程号16进制
二、使用top+jstack定位java应用CPU占用高的线程详细说明
1.top查找出哪个进程消耗的cpu高
PID
...
(转)java日志,需要知道的几件事
- 博客分类:
- log4j
如果对于commons-loging
、log4j
、slf4j
、LogBack
等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。
一、
概念
Commons-logging
:
apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC
的api
接口,具体的的JDBC driver
实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案。
...
一 :为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一?
Commons-loggin的目的是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱(只有一个简单的
SimpleLog?),所以一般不会单独使用它。Log4j ...
我们在做项目时,日志的记录是必不可少的一项任务,而我们通常是使用 apache 的
log4j 日志管理工具。然而,在项目中,我们经常会看到两个 jar 包:commons-logging.jar 和
log4j.rar。为什么我们在使用 log4j 的同时还要引入 commons-logging.jar 呢,或者说不用
commons-logging.jar 可不可以,这两者之间到底是怎么的一种关系呢?
作为记录日志的工具,它至少应该包含如下几个组成部分(组件):
1. Logger
记录器组件负责产生日志 ...