自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 mysql操作命令记录

一:安装完mysql后,会缺少 /etc/my.cnf 文件,可以手动添加。[client]port = 3306#socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8[mysqld]#basedir=/db/mysql-5.6.23-linux-glibc2.5-x86

2016-01-04 10:27:28 5879

原创 ClassLoader

ClassLoader本身是一个Abstract Class,我们可以扩展ClassLoader的实现特定的load需求。java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:Boot

2013-11-18 17:45:39 1528

原创 btrace 的使用

BTrace是一个非常不错的java诊断工具。BTrace 中的B表示bytecode, 表明它是在字节码层面上对代码进行trace ,用来在运行中的java类中注入trace代码, 并对运行中的目标程序进行热交换(hotswap) 。记载下几个基本常用的使用,时间长了就忘记了哈。首先你需要去官网下载个安装包:wget https://kenai.com/projects/btrace

2013-09-30 13:39:42 12455

原创 synchronized锁的粒度

synchronized做代码块锁的时候,如果是使用自定义的锁,或者this对象作为锁,那么锁定的是对象,如果对于静态的对象做锁定,那么锁定的就是类了。当线程A,在操作访问锁定的对象时候, 线程B如果要进入synchronized代码块执行的时候是必须等待锁释放的。这样实际上就是将原本并行执行的代码,变为串行执行了。当然还有另外一种方式,就是使用ThreadLocal对象,存储各个线程的使

2012-05-30 16:55:30 3564

原创 硬盘相关基础知识

说明:本文来源于网络相关知识收集。一、硬盘的基本概率内部数据传输率(Internal Transfer Rate)是指硬盘磁头与缓存之间的数据传输率,简单的说就是硬盘将数据从盘片上读取出来,然后存储在缓存内的速度。内部传输率可以明确表现出硬盘的读写速度,它的高低才是评价一

2011-10-04 21:43:45 715

原创 项目过程中的找bug总结

经历了近3个月的奋战,终于和一帮兄弟姐妹们完成了退款一期项目的改造工程。项目过程还是蛮辛苦的,免不了加班加点的了。在这里感谢下项目组成员的付出。不过项目发布后的反响还是不错的。这个也是项目组成员值得欣慰的事。闲话少说,进入正题。在这里纪录下项目过程中几个比较突出问题的排查。问

2011-09-27 10:41:43 1606

转载 磁盘的分区与系统引导启动

硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……。每个盘

2011-09-25 22:07:42 1867

原创 2010年的总结

想想自己其实很少有写些什么东西,最近几天因为需要晋升面试,所以 稀里哗啦的整理了下以前看过的一些知识点,稍微梳理了下。这一天天总算是过去了,没有想到居然是第一天的上午就面试我了。有点汗颜。不过不管结果如何总算是过去了,虽然到现在为止心里还是那么的忐忑。    回顾自己过去的一年的工作,有些落寞,系统方面做出了一些效果,对于系统的稳定性和性能点还是有些帮助的,当然这些都是偶然的和运维同事聊天的时

2011-01-05 20:43:00 502

转载 java 多线程

理解java多线程,对于java内存模型的理解是必须的。 java 内存模型 ( java memory model )根据Java Language Specification中的说明, jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Me

2010-12-31 11:06:00 650

转载 关于ClassLoader的知识点记录

JVM 启动的时候会产生3个ClassLoader,他们分别负责加载不同目录下的class。其中Bootstrap ClassLoader 是 C++ 实现,如果 parent ClassLoader是它的话,获取的时候是会返回null 的。其中 System ClassLoader 也就是我们所说的 AppClassLoader。Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作。E

2010-12-30 16:30:00 2209

转载 Hadoop优化学习

<br />看了几篇文章,记录下:<br /> <br />Hadoop是基于hdfs分布式文件系统的,它体现的是一种“分而治之”的思想,将一个任务进行切割,分散到不同的slave 机器上面去做。<br />它有一个 master 的概念,负责 Namenode的工作,也有可能负责 JobTracker 的工作,它是分布式文件系统的管理者,负责命名空间,集群的配置,跟着slave 的启动和调度,负责存储检索 DataNode的 block 信息,它将文件系统的 Meta-data 信息存储在内存中。<br

2010-12-29 16:54:00 816

转载 Btrace使用

<br />前阵子排查一个OOM 的问题,刚好和hsf有点关系,于是找毕玄帮忙查找问题,看看hsf 的代码,看到毕玄在用Btrace来跟踪方法的调用,觉得此法还是不错滴,以前都是人肉看现象推测,汗,再次记录下。<br />http://blog.bluedavy.com/?p=185  这个是毕玄记录的BTrace使用,可以参考下。<br /> <br />BTrace is a safe, dynamic tracing tool for Java. BTrace works by dynamically

2010-12-29 10:35:00 828

原创 Mina 学习纪录

MINA 是基于 filterchain 来做的。类似web请求的filter,通过一串串的filter 处理费业务性的处理逻辑,如编解码,日志等。然后交由 handler 去实施自己的业务处理逻辑。在Mina里面,对于NIO的 socket实现有三类I/O 工作线程:一:Acceptor thread   它接受连接请求,然后将连接转由 I/O processor thread 来做读写操作。     每一个 SocketAcceptor 创建一个 acceptor thread,这个 acceptor

2010-11-23 16:03:00 844

原创 java 内存CMS GC

<br />今年公司开始试用CMS 的GC方式,这里主要是记录几个地址,看到了觉得还蛮不错的。<br /> <br /> <br />1:关于CMS  GC 的日志说明,以及基本的问题调优,虽然已JDK4,5来说明的,但是基本差不多。<br />http://www.sun.com/bigadmin/content/submitted/cms_gc_logs.jsp<br /> <br />2:与前面的sun 的文档描述其实差不多,中文的也可以参考下。<br />http://tianya23.blog.5

2010-11-16 17:09:00 1902

原创 Groovy& Grails学习纪录

参考: http://groovy.codehaus.org/Getting+Started+Guide以前一直对动态编译语言不太感冒,觉得那个开发过程还是蛮痛苦的,可能习惯了IDE工具的支持,转而学习动态语言却回退到了文本编辑的时代,习惯了即时编译报错,对于这种滞后性的运行期的编译保持敌对心理,这也是我个人一直最为诟病的地方。不过这也是动态语言的优势,动态元素引入的灵活性确实也是不言而喻的。现在动态语言也是越来越火,公司也开始在很多地方使用。于是乎 昨天兴致来了,一天断断续续的翻阅了下相关文档,这里不做各

2010-10-12 16:26:00 1128

原创 java如何模拟 登陆

最近在思索一个关于如何更好地监控检测系统功能的问题,不知道是否可以通过另外一个辅助系统来实施检测实际负载功能系统的运行。而如何检测系统功能呢,是否可以像自动化回归测试那样来回归线上的测试情况呢,因为登陆时一个必过的坎,于是有了模拟登陆系统的想法。当然如果真要这么实施的话,这个工作量是相当巨大的,每一个业务点都要去这样做的话,是不亚于做功能性业务系统的工作量的,甚至更大。当然也还有很多的点需要考虑,如:页面样式,以及js效果检测等等,不过主流程业务检测应该是可以做的,呵呵呵。纯属YY阶段。这里贴上一段自己写的

2010-09-25 17:31:00 999

原创 生产环境系统负载测试

<br />今年公司对于系统的稳定性越来越重视,为了知道了解系统的运行状况,前阵子对于交易系统做了生产环境的压力测试。<br />视乎记忆力越来越差了,做过的一些事情,慢慢的都快忘记了,这里记录下运行的轨迹:<br />因为毕竟是生产环境,可不能够随便的瞎折腾,于是乎和PE商量,挑选了几台机器,本想直接通过新加vip 的形式,将其中几台机器的流量直接引入到某一台承载机器上,后听说操作起来比较麻烦,因为后来改用 apache 的jl_module 来做,具体的配置如下:<br /><br /><br />配置

2010-09-25 17:10:00 880

原创 Consistent Hashing Algorithm 一致性hash算法

Consistent Hashing Algorithm 一致性hash算法

2010-06-11 19:32:00 1562

原创 java 基础之 范型

范型的最佳用途,就是用于实现容器类,实现一个通用的容器。该容器可以存储对象,也可以取出对象,而不用考虑对象的具体类型。在java中,范型是在编译器中实现的,而不是在虚拟机中实现的,虚拟机对范型一无所知。因此,编译器一定要把范型类修改为普通类,才能够在虚拟机中执行。在java中,这种技术称之为“擦除”(Type Erasure),也就是用Object类型替换范型。所有的范型都被替换为

2010-03-17 17:34:00 519

原创 java 序列化

对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。序列化一般用于以下场景:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。对象所属的类必须实现Serializable或是Externalizable接口才能被序列化。对实现了Serializabl

2010-01-27 11:11:00 1435

原创 常用命令(三)

第三类: 网络常用命令:netstat nslookup ifconfig route ping telnet sar等 netstat命令:netstat 命令行的常用格式:-a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息,格式同“ipconfig -e”。-n 以网络IP地址代替名称,显示出网络连接情形。-r

2009-12-12 13:46:00 630

原创 常用命令(二)

第二类: 内存常用命令:free, vmstat,JMap, Jstack ,jstatfree命令:  主要用于查看系统的空闲内存和已经使用的内存  free命令用法free [-b | -k | -m] [-o] [-s delay ] [-t] [-V] free [选项]  -b 按bytes字节显示内存大小  -k 按kilobytes字节显示内存大小  -m 按megabyte

2009-12-12 10:45:00 1221

原创 常用命令(一)

作为一个web应用的开发者,可能经常需要,查看一下应用系统的日志信息,或者跟踪一下操作系统的运行状态等来跟踪定位问题一些线上问题,那么有几类常用的命令以及其常用参数方法是需要熟练掌握的。下面简要记载说明下常用的几个命令和参数以备查询。第一类:  进程常用命令:kill, ps, top, nice, pstree, uptime, sarkill 命令顾名思义就是杀死进程,其实它不仅仅

2009-11-01 14:33:00 608

原创 web 应用的 的web.xml 配置说明

web.xml 文件也叫部署描述文件。这里简单列举个demo:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> The name of t

2009-10-19 11:30:00 484

原创 java 网络编程

这里对于几个基本的概念 URL  TCP  UDP  Socket 就不加说明了,这里仅仅是记录一些学习日志备忘。1:如何定义相对资源     假设有如下两个资源 :     http://www.gamelan.com/pages/Gamelan.game.html     http://www.gamelan.com/pages/Gamelan.net.html

2009-10-14 17:39:00 531

原创 java 安全(二)

在前一篇文章  “java 安全(一)” 中讲述了如何通过 java 自带的工具进行密钥库和证书 的生成以及对要传输的文件进行签名和校验的过程,这里继续阐述一下如何通过jdk的接口来进行程序上的签名和验证工作。 这里仍然以Susan 和 Ray 两人为例,并使用了 keytool来生成密钥库。1: 生成密钥库文件keytool -genkey -alias signFiles -keypa

2009-09-19 11:18:00 727

原创 java 安全(一)

 Java语言本身嵌入了安全特性。比如 java 的类装载机制,就使得外部定义的可疑的与jdk 内置的类同名的类是不被加载的。这里主要是看了下java官方的安全性教程,记录下过程。通过使用 jdk本身提供的tools 和 api 接口来做 数字签名、证书、已经定义密匙库等 已达到安全校验的目的。使得远程加载的 jar包 和 文档 是可信任的。假设,susan 是提供放,ray 是接受方

2009-09-15 17:51:00 813

转载 java 动态代理

动态代理的实现可以通过 jdk 自带的 动态代理的支持实现,也可以通过 cglib 来实现。jdk 的动态代理是基于接口实现的,只有实现了接口的实现类 才可以被代理。而 cglib 是通过对实现类进行继承来实现,也就是通过生成被代理的实现类的子类,这里的实现类可以不实现某一接口。因采用继承方式,所以对于final 的方法是不能够进行代理的。至于性能问题,网上有文说: 有研究表明,C

2009-09-12 16:54:00 601

原创 RMI 学习记录

RMI 使得客户端和服务端隔离,而且服务端能够动态的加载客户端的代码,来执行客户端的任务。这样就可以把任务分割,让不同的机器来执行各个子任务,也可以充分使用高性能的服务端机器。而且客户端对于服务端的调用就像客户端本地的接口调用一样方便。这种动态的装载客户端代码是通过实行 RMI规范要求的接口java.rmi.Remote ,这个接口抛出 RemoteException  异常;或者实现 seria

2009-09-04 17:41:00 2675

转载 常用的shell脚本tips

 1、  set命令当没有参数的时候,列出系统中所有的自定义变量值;当有参数的时候,重置基本参数如$1、$2等。如set `date` 将date命令的输出当作输入参数;2、let命令      执行算术运算。功能如i=j+1,

2009-08-01 09:49:00 1094

原创 俄罗斯方块游戏

 最近公司出来个产品,淘农场。一时间在公司火得不行。在产品部也算是开了话。大家伙没事的时候就登陆上去偷个菜呀,什么的。也算是是工作之余的一种调节,找点乐子吧。我呢,也刚好这两周也做完了网游的一个项目。最近呀,算是和游戏结缘了。做的事情恰好都和游戏沾了点亲戚关系。呵呵 :)。这却也勾起了我儿时的一个梦想,什么时候自己也能够写个游戏。偶记得小时候玩那个俄罗斯方块的游戏,玩的那个真是不亦乐乎。可惜,后来

2009-07-26 17:34:00 485

原创 javascript prototype object

from: :OReilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.2006 It turns out that every JavaScript object includes an internal reference to another object, known as its prototype object. Any pro

2007-01-03 00:00:00 969

原创 java 信号量

java 是不直接支持 信号量的,我们必须自己来定义我们所需要的信号量class Semaphore { private int count; public Semaphore(int count) { this.count = count; } public synchronized void acquire() { while(count == 0) { try { wait(); } c

2006-12-10 11:35:00 1448

原创 线程死锁

线程死锁条件:1:互斥条件 ,即资源是不能够被共享的。2:至少有一个进程在使用一个资源却在等待另外一个线程所持有的一个资源3:资源部能够被进程抢占。4 :必须有循环的等待那么要解除死锁,只要让这几个条件中的一个不成立就可以了。例如:哲学家问题,如果每个哲学家都是先 取左边的筷子,在取右边的筷子,那么很有可能就会出现死锁了,那么我们可以让最后的一个哲学家是先取右边的筷子,

2006-12-08 22:34:00 940

转载 What does volatile do?

 What does volatile do?This is probably best explained by comparing the effects that volatile and synchronized have on a method. volatile is a field modifier, while synchronized modifies code blocks

2006-12-08 22:32:00 734

转载 Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量

  Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量

2006-12-08 21:01:00 2622 1

原创 单例模式

如何使一个类只能够有一个对象 呢,我们知道这样的类的构造函数是必须为私有的,否则用户就可以任意多的生产该类的对象了。那么具体应该怎么实现呢,有两种方式:一种是给类一个该类型的 static 成员对象,每次都调用一个get方法返回该对象,这也就是所谓的饿汉模式;public class EagerSingleton { String name; private static final Eage

2006-11-29 20:30:00 723

原创 集合

List (interface)  次序是List 的最重要的特点。它确保维护元素特定的顺序。ArrayList 是由数组实现的 list , 他容许对元素进行快速的随机访问,但是插入与移除 的速度很慢。ListIterator 只应该用来从后往前 遍历 ArrayList ,而不能够做移除。LinkedList 对顺序访问进行了优化,向List 插入与移除的开销并不大,随机访问则相对较慢

2006-11-26 15:47:00 643

原创 C++ 成员函数的重载、覆盖与隐藏

摘自:《高质量的 C++编程》   8.2.1重载与覆盖    成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。    覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual

2006-11-02 15:42:00 1233

原创 C++ 参数传递方式:值传递,引用传递,指针传递

引用就是别名。引用的一些规则如下:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。“引用传递”的性质象“指针传递”(能够改变原来的参数值),而书写方式象“值传递”。

2006-11-02 15:28:00 2093

空空如也

空空如也

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

TA关注的人

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