自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 问答 (1)
  • 收藏
  • 关注

全面转型的我

从先前做Java 互联网到C 路由器中去,变化何其之大,感叹....直到现在还没完全找到感觉,工作还待继续,生活也是如此....

2012-05-02 14:59:14 114

原创 项目闲暇时间翻译的关于JVM Memory Management的一篇文档

最近项目处于一个不温不火的阶段,工作任务不算太繁重,觉得有点无聊!一直一来对JVM比较有兴趣,就翻译了一篇《Memory Management in the Java HotSpot Virtual Machine》的技术文档,里面讲的是基于j2se 5.0的年代有点久远,呵呵,不过一些基础内容还是不错的。本着一来提高技术水平,而来提高E文水平的目标,翻译了一下。之前也发过相关的内容,但是...

2011-10-20 18:46:41 162

原创 Memory Management in the Java HotSpot Virtual Machine翻译整理

本书的目录1 Introduction(简介,未翻译)2 Explicit vs. Automatic Memory Management(显示内存管理VS自动内存管理,未翻译)3 Garbage Collection Concepts(垃圾收集概念) Desirable Garbage Collector Characteristics(理想垃圾收集器的特点) Desig...

2011-09-27 11:25:31 180

自用【链接贴】

//---------------------------------------------Java语言相关---------------------------------------------------- The Java Language Specification, Java SE 7 Edtion Java SE 7 Features and Enhance...

2011-09-17 20:05:19 217

Tomcat6.0.29 JNDI Datasource配置

1. Global JDBC DateSource     步骤1 :在$CATALINA_BASE/conf/server.xml中<GlobalNamingResources>下添加<Resource> 下面是一个例子:<Resource name="jdbc/agri" auth="Container" type="javax.sql.DataSou...

2011-09-02 17:23:16 92

Java method invoke的指令简介

方法调用相关的jvm子令集主要有一下四种: invokestatic ------------------------------->调用类方法(静态绑定,速度快) invokevirtual ------------------------------>调用实例方法(动态绑定) invokespecial ---------------------------...

2011-08-29 14:45:31 387

自己动手写写:HashSet、LinkedHashSet源码浅析

这篇文章我只是作为一个简要的分析。 首先可以看看之前写的两篇的博文,只要你熟悉了下面这两个类的源码就显得很简单了!自己动手写写:HashMap源码浅析自己动手写写:LinkedHashMap源码浅析 先来介绍下HashSet吧!public class HashSet<E> extends AbstractSet<E> imple...

2011-08-12 14:40:30 75

自己动手写写:LinkedHashMap源码浅析

此系列文章中,上一篇是关于HashMap的源码剖析,这篇文章将向大家剖析一下LinkedHashMap的源码! 四. LinkedHashMap 我们知道从API的描述中可以看出HashMap与LinkedHashMap最大的不同在于,后者维护者一个运行于所有条目的双向链表。有了这个双向链表,就可以在迭代的时候按照插入的顺序迭代出元素(当然也可以通过LRU算法迭代元素,下面会讲到)...

2011-08-11 10:31:14 70

一些老帖引发的思考之readonly事务深入挖掘

写这篇文章的缘由,在于读过论坛中的一些帖子引发的疑问,先来看一下帖子的内容。 robbin的一个帖子只读查询是否需要启动事务管理,兼论只读事务http://www.iteye.com/topic/8850 有人真正测试过spring事务中readonly吗http://www.iteye.com/topic/3197681. 首先最根本的,我们要看一下数据库中对于r...

2011-08-08 16:45:07 236

自己动手写写:HashMap源码浅析

虽说论坛中有很多关于HashMap源码的分析,并且都是分析得很不错的文章,但是我还是想写出自己的一份心德! 三. HashMap 还是先来看看HashMap的类结构吧!public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, Se...

2011-08-04 13:50:22 112

自己动手写写:LinkedList源码浅析

上篇文章浅析了ArrayList的源码相关内容!这篇文章将介绍LinkedList相关的内容! 二. LinkedList 先来看看LinkedList的类结构!public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E...

2011-08-03 15:05:56 145

自己动手写写:ArrayList源码浅析

了解你所使用的东西,最直接有效的方式莫过于源码切入的方式! 最近会写一个源码分析的系列文章!这篇文章先从最常用的例子ArrayList下手剖析! 一. ArrayList 下面是ArrayList的类结构public class ArrayList<E> extends AbstractList<E> implements List<E&g...

2011-08-02 17:29:02 81

毕业两年后的一份自我总结

毕业工作已两年有余,有时会比较迷茫---->路在何方?我本身还是倾向于以技术主线,所有一直都是属于潜心研究型! 我本科阶段主要学习的是数学专业,对于计算机相关的知识虽说也有所接触,但并不是那么深刻,老师也讲得让我提不起兴趣来!当时自己也并没有向往从事IT领域的相关工作,说实话自己当时也并不清楚将来想要干什么,家人那是总是希望我继续深造读研。但是我就是提不起兴致来。说到这里,我又要...

2011-08-01 15:52:48 146

自己动手写写:GC何时触发?

本文是基于Oracle的Hotspot JVM 1.6版本的分析。 先来看一下 HotSpot的内存结构:  备注:在HotSpot中本地方法栈和JVM方法栈是同一个,因此也可以用-Xss控制。经IBM研究,通常运行的程序有80%--98%的对象是临时对象,因此Hotspot对JVM堆采用了分代的方式来管理,以提升GC的效率。 下面我们来看一张堆内存逻辑划分...

2011-07-20 10:48:02 154

原创 浅谈设置JVM内存分配的几个妙招(转)

一、设置JVM内存设置1. 设置JVM内存的参数有四个:-Xmx    Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms    Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-Xmn    Java Heap Young区大小,不熟悉最好保留...

2011-07-08 18:57:22 80

自己动手写写:Java序列化

从以下几个方面来讨论这个问题 1、序列化是用来干什么的?     序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容就行流化。简而言之就是为了保存内存中的各种实例对象的状态,并且可以通过反序列化将实例对象的状态再读出来。 2、为什么需要序列化? 为了将对象转换为更加容易传输的格式,减少网络流量的开销。例如,可以序列化一个实例对象,然后使用Http通过Inte...

2011-07-06 16:00:17 200

10 Programming Proverbs Every Developer Should Know(你必须知道的十大编程格言)

1. There is no smoke without fire(无风不起浪) 2. An ounce of prevention is worth a pound of cure(预防为主,治疗为辅) 3. Don't put all your eggs in one basket(不要把所有的鸡蛋放在一个篮子里) 4. As you sow, so shall...

2011-07-01 10:59:12 109

自己动手写写:Java GC

为什么要使用垃圾收集器? 类似类型为什么要收集一样(参考http://boy00fly.iteye.com/blog/1108420)。java程序运行的过程中,越来越多的对象在堆中生成,占用的内存越来越大,如果不收集的话,到最后结果可想而知;即使堆内存足够,请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的总空闲空间是足够的,这是因为堆中没有连续的空闲空间放得下新的对象,在一个虚...

2011-06-29 11:22:35 183

Java类型的生命周期简介

这里要讲的是类型(Class)的生命周期而不是对象的生命周期,后续文章将描述GC的相关内容。 1. 类型的生命周期的开始 装载(Load)----->连接(Link)------>初始化(Initialize),而连接阶段分为三个子步骤----------验证(Verifiy)--->准备(Prepare)--->解析(Resolve)(可选的)。 见下图:...

2011-06-28 18:19:41 170

原创 自己写写:Http协议(1)

打开天窗说亮话。首先:为啥想要了解了解Http协议呢? 本人目前从事web领域的开发,Http协议,必须的!! 其次:Http协议是用来干什么的?  在web应用领域,是客户端(浏览器也是一种客户端)与服务端通讯的一种协议。就这么简单! 接下来:Http协议的内容是什么?  这个内容实在太多了(具体的可以参考http://www.w3.org/Protocols/r...

2011-06-28 12:12:11 133

原创 JMS简介与ActiveMQ实战

1. JMS架构 Java 消息服务(Java Message Service,简称JMS)是用于访问企业消息系统的开发商中立的API。企业消息系统可以协助应用软件通过网络进行消息交互。JMS 在其中扮演的角色与JDBC 很相似,正如JDBC 提供了一套用于访问各种不同关系数据库的公共API,JMS 也提供了独立于特定厂商的企业消息系统访问方式。使用JMS 的应用程序被称为JMS 客户...

2011-06-24 12:23:54 314

原创 java class文件简介

之前对Java虚拟机作了概述,接下来来讲一讲Java class文件,主要涉及class文件的内容,包括常量池的结构及其格式等。 Java class文件是什么?  java class 文件是对Java程序二进制文件格式的精确定义。每一个Java class文件都对一个Java类或者Java接口做出了全面描述。一个class文件中只能包含一个类或者接口。无论Java class文...

2011-06-23 16:51:10 788

原创 Java的数据类型

Java数据类型 Java虚拟机是通过某些数据类型来执行计算的,数据类型及其运算都是由Java虚拟机规范严格定义的。数据类型分为两种:基本数据类型和引用数据类型。基本类型的变量持有原始值,而引用数据类型的变量持有引用值。术语“引用值”指的是对某个变量的引用,而不是该对象本身。与此相对的,原始值则是真正的原始数据。下图是Java虚拟机中数据类型的描述。        ...

2011-06-21 23:33:37 68

原创 java类装载器详细介绍

 Java类装载器子系统          在Java虚拟机中,负责查找并装载类型的那部分被称为类装载子系统。上图描述了,类装载器在JVM组成中的位置。         Java虚拟机有两种类装载器:启动类装载器和用户自定义类装载器。前者是Java虚拟机实现的一部分,后者则是Java程序的一部分。由不同的类装载器装载的类将被放在虚拟机内部的不同命名空间中。       ...

2011-06-17 17:27:46 240

原创 自己动手写写:关于jvm的理解(3)

上篇文章讲到了Heap(堆)相关的内容,下面紧接着讲讲Runtime Data Areas(运行数据区)中Java Stacks、PC Register、Native Method Stacks. Java Stacks       每当启动一个新线程时,Java虚拟机都会为它分配一个Java栈。前面我们曾经提到,Java栈出帧为单位保存线程的运行状态。虚拟机只会直接对Java栈执...

2011-06-17 15:08:07 102

原创 自己动手写写:关于jvm的理解(2)

上篇文章描述了Runtime Date Areas(运行时数据区)这一大块中的Method Area(方法区),此篇文章接着上一篇的内容往下讲。 Heap 堆      java程序在运行时创建的所有类实例或数组都放在同一个堆中。而一个Java虚拟机实例只存在一个堆内存空间,因此所有的线程均共享这个堆。又由于一个java程序独占一个Java虚拟机实例,因而每个java程序都有他自己的堆内存...

2011-06-16 22:58:22 148

自己动手写写:关于jvm的理解(1)

Java虚拟机是什么           要理解java虚拟机,你首先必须意识到,当你说“Java虚拟机”时,可能指的是如下三个不同的东西:1. 抽象规范2. 一个具体的实现3. 一个运行中的虚拟机实例            Java虚拟机抽象规范仅仅是一个概念,在Tim Lindholm和Frank Yellin编著的《The Java Virtual Machine...

2011-06-16 17:45:04 171

J2EE设计模式之Template

Template定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始:public abstract class Benchmark { /** * 下面操作是我们希望在子类中完成 */ public abstract void bench...

2011-04-20 15:12:00 62

关于session的详细解释

 Java基础-关于session的详细解释来源:不详 (2006-06-01 16:49:09)一、术语session  在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。  session,中文经常翻译为会话,其本来的含义是指有...

2011-04-01 16:50:00 89

抽象类和接口的区别,使用场景

我简单说明一下我的看法 1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。 2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。 所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完...

2010-01-16 21:50:00 64

浅谈三层结构,MVC模式以及两者区别

http://sduchengxu.blog.51cto.com/147902/23710http://developer.51cto.com/art/200904/122026.htm个人觉得讲得不错,所以转一下地址。

2010-01-15 15:21:00 52

用Spring集成的JOTM配置分布式事务

最近项目中涉及到了两个Oracle数据库的操作。需要用到分布式事务,研究之后贴出代码供大家参考。1.dao-core.xml(核心事务配置XML) <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:...

2009-11-05 15:45:00 93

Java调用Oracle数据库的分页存储过程

最近项目进度比较缓慢,初步研究了一下Oracle的存储过程,将代码贴出来。首先先贴出来Oracle的分页分页存储过程代码吧。1.这是包的代码create or replace package DB_Oper is -- Author : LIUBING -- Created : 2009-10-28 15:01:30 -- Purpose : 测试Oracle的分页存储过程 --...

2009-10-29 10:11:00 81

java计算两数百分比方法

public static String percent( double p1, double p2) { String str; double p3 = p1 / p2; NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigit...

2009-10-16 17:47:00 168

Spring的AOP应用实例

/** * 实现org.springframework.aop.MethodBeforeAdvice */public class WelcomeAdvice implements MethodBeforeAdvice{ public void before(Method method, Object[] objects, Object o) throws Throwable...

2009-10-13 10:04:00 65

Tomcat6.0.14下配置Tomcat Administration Web Application

Tomcat5.5以后的binary核心安装版不再集成TomcatAdministrationWebApplication,需要独立下载安装。而Tomcat6.0.14的AdministrationWebApplication仅包含在源码包中,没有独立下载的安装包。经过查找资料和多次实践,终于使用Tomcat5.5.23的AdministrationWebApplication在Tomcat6.0...

2009-09-30 11:53:00 68

Spring security --- Acegi部分配置信息

认证处理过滤器authenticationProcessingFilter的配置< bean id = "authenticationProcessingFilter" class = "org.acegisecurity.ui.webapp.AuthenticationProcessingFilter" > < property name = "fil...

2009-07-31 18:25:00 68

Java中的RMI机制和JVM沙箱安全框架

Java中的RMI机制和JVM沙箱安全框架。1. Java中的RMI机制RMI的全称是远程方法调用,相信不少朋友都听说过,基本的思路可以用一个经典比方来解释:A计算机想要计算一个两个数的加法,但A自己做不了,于是叫另外一台计算机B帮忙,B有计算加法的功能,A调用它就像调用这个功能是自己的一样方便。这个就叫做远程方法调用了。远程方法调用是EJB实现的支柱,建立分布式应用的核心思想。这个很...

2009-06-02 17:20:00 76

IntelliJ Idea快捷键

Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+...

2009-06-01 09:55:00 68

深入浅出JSON

深入浅出JSON Author:TrulyJSON定义 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C...

2009-05-31 13:51:00 53

空空如也

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

TA关注的人

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