排序:
默认
按更新时间
按访问量

Spring 源码学习 - ClassPathXmlApplicationContext

众所周知,Spring以其强大而又灵活的IoC管理功能著称。IoC本质上是通过依赖注入DI的方式实现组件之间的解耦。其实在DI模式下,一个关键性的角色是装配器(assembler)。应用程序的组件A在引用别的组件B的时候不用通过new来创建,而是依赖一个第三方的装配器创建好B,然后再通过sette...

2012-05-06 11:47:39

阅读数:3

评论数:0

从appfuse开始学习Spring和Hibernate - (2)Spring启动log

分析appfuse的详细的启动日志来看看Spring的启动过程。 1. 装载app上下文 [code="java"]main INFO org.springframework.web.context.ContextLoader - Root WebAppl...

2012-05-05 21:35:16

阅读数:3

评论数:0

从appfuse开始学习Spring和Hibernate - (1)构建项目

千里之行,始于足下。结合例子学习概念,比较靠谱。本文介绍如何开始从appfuse开始学习Spring和Hibernate。 如果你还没有安装mysql,请先安装。同时也建议你安装一个workbench来方便管理数据库。 1. 利用Maven构建appfuse项目 万能的Maven提供了很...

2012-05-05 15:54:37

阅读数:3

评论数:0

Spring 事务在多线程环境下的传播

有时候需要使用多线程来提高对于CPU,尤其是多核CPU的利用率,来提高性能。Spring的bean一般都是无状态的,单例的。所以也就是线程安全的。那么对于声明式的事务,在多线程环境下又是怎么处理的呢? 看看下面的例子: [code="java"] Cl...

2012-05-04 21:42:16

阅读数:8

评论数:0

关于Hashtable和HashMap, Vector和ArrayList

在功能上讲Hashtable和HashMap, Vector和ArrayList有着几乎相同的功能。他们的主要区别在于: Hashtable和HashMap的区别,先看put方法的源代码 Hashtable [code="java"] public sy...

2012-05-01 09:41:01

阅读数:3

评论数:0

JVisualVM还真是不错

最近再看Java 性能的问题。一直都习惯使用Jconsole和Jstack。今天偶然发现一个更好的东东JVisualVM。这个工具功能更强大而且有很多插件可以扩展,相信后面插件会越来越丰富。 如此一来一些简单的profiling和monitoring需求都可以满足了,而不必使用JProfile和...

2012-04-27 21:38:35

阅读数:4

评论数:0

Java String 详解 - String Literal

为了性能和内存资源上的考虑,JVM对String类型的数据做了特殊的处理。也就是大家都知道的String是immutable的或者是constant。其实很多面试或者笔试里面都会考到。有时觉得没事找事,确实,对于一般的系统,不需要考虑到底创建了几个string,只管用就是,似乎JVM会处理,至少会...

2012-04-08 14:23:00

阅读数:14

评论数:0

Java Management Extensions (JMX) 学习笔记- 程序管理和监控

在学习Tomcat 7 的源代码的时候发现,大量运用到了JMX, MBeans,所以决定先学习一下。 [size=medium]介绍[/size] JMX是Java 5开始引入的API。这个API意在帮助管理和监控资源: applications, devices, services, and...

2012-04-07 20:25:30

阅读数:5

评论数:0

Tomcat 7 源码分析 - 初始化 class loader

Bootstrap 在启动的时候初始化了三种class loader:common,server和shared。在它的createClassLoader方法里面,通过: [code="java"]String value = CatalinaPropertie...

2012-04-07 19:24:52

阅读数:6

评论数:0

Tomcat 7 源码分析 - 启动概览 bootstrap

先大致浏览一下整个启动过程吧。下面是org.apache.catalina.startup.Bootstrap的main函数。 我在eclipse调用的是start的命令,也就是传入main的参数是start // 初始化, 构建org.apache.catalina.startup.Cata...

2012-04-07 14:57:14

阅读数:5

评论数:0

Tomcat 7 源码分析 - 下载 tomcat source code 并导入eclipse

准备好好研究学习一下tomcat 7 的源代码,那么第一步就是下载,导入eclipse并且运行。 [size=small]1. 下载源代码[/size] tomcat 7 的源代码在svn上,所以你需要svn的安装。创建一个目录tomcat7,并用命令行进入这个目录,之后用下面的命令下载 [...

2012-04-07 09:23:25

阅读数:4

评论数:0

Java Generic 学习

泛型是Java 5开始引入的一个语言级别的特性,目的是为了让你的程序更为可靠(reliable)。 程序总是有bug,而bug分为编译时bug和运行时bug,编译时bug是比较令人舒服的bug,因为大部分的IDE比如eclipse,就能让你在写代码的时候就能发现并...

2012-04-06 19:34:38

阅读数:4

评论数:0

Java 执行过程详解 - JVM 生命周期

Java的执行过程也就是JVM从启动到退出的过程。JVM的运行是一个进程单元,可以用jps工具列举出正在运行的JVM 进程。在一个JVM进程中可以运行多个线程。 [size=medium]1. JVM 启动[/size] 当用java工具运行一个编译好的class文件的时候,比如下面的命令,我...

2012-04-04 12:01:05

阅读数:4

评论数:0

Java System 类详解 - properties and environment variables

在环境配置中我们经常需要知道或者设置系统属性值和环境变量。系统属性值是在同一个Java process里面有效的全局变量。而环境变量则是对于整个操作系统中所有进程都可见的,就如同你在OS里面设置的一样。因此除非必要,或者你确实需要环境变量,比如classpath和path,一般推荐使用proper...

2012-04-04 11:32:54

阅读数:5

评论数:0

Java System 类详解 - arraycopy

System类提供了数组copy函数: public static native void arraycopy(Object src, int srcPos, Object dest, int dest...

2012-04-04 11:01:52

阅读数:7

评论数:0

Java System 类详解 - in, out, err

几乎所有的都用过这个System类吧,因为大家学习的第一个语句大概就是 [code="java"] package jdk.lang; public class SystemInspection { public static void mai...

2012-04-04 07:46:24

阅读数:9

评论数:0

关于 sun.misc.Unsafe

今天在看java.util.concurrent.atomic包的源代码的时候看到原来这个包的底层都调用了sun.misc.Unsafe这个类,这个类其实是个native的实现类,他的神奇之处就在于它可以直接访问内存地址。如果你能直接调用它,那么就意味着你可以绕开一切lock而直接操作地址,虽然危...

2012-04-03 15:31:59

阅读数:5

评论数:0

如何提高代码质量

本文是写给开发人员的建议,不会涉及很多QA方面的讨论。我觉得有三个方法可以提高软件质量,根据重要性和有效性一次为:Code Review, Refactor和Unit Test。这三个方法不是三个阶段,而是同时交叉进行的。 [b]1. Code Review - 逻辑分析[/b] ...

2012-04-02 20:08:58

阅读数:4

评论数:0

在Java中什么是 Primitive 和 Reference 类型

Java虽然是个面向对象的语言,也声称“Everything is object”- 一切都是对象。但是,我觉得还不够纯粹和彻底,和ruby或者python比较一下就知道了。在Java中,数字和布尔类型就不被看做对象,而是被称为primitive类型。不过也不见的就不好,本文也不是想对此评论和分析...

2012-03-24 23:14:01

阅读数:11

评论数:0

Java 并发编程 - Programming Concurrency on the JVM

这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不考虑性能的问题,经过这几个月的工作,发现从性能和扩展性的角度去看软件开发,还真是大不一样。在和朋友聊天的时候,提及Java程序是否能充分利用多核cpu的问题的时候,朋友给我推荐了这本书《Programming Concurrency o...

2012-03-24 23:08:33

阅读数:4

评论数:0

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