- 浏览: 194470 次
- 性别:
- 来自: 北京
最新评论
-
only_java:
博主,你好。感谢这篇你的这篇文章,我的问题是跟你一样,也是在跑 ...
JVM Crash分析 -
shuofenglxy:
1 确保程序运行时没有更新程序需要的相关jar包。2 确保程序 ...
JVM Crash分析 -
renduly:
# A fatal error has been detect ...
JVM Crash分析 -
shuofenglxy:
renduly 写道博主好。这两天我在公司程序也出现了类似的问 ...
JVM Crash分析 -
renduly:
博主好。这两天我在公司程序也出现了类似的问题。博主能否说的详细 ...
JVM Crash分析
文章列表
原作者:石伟。原文出处 http://ultimatearchitecture.net/index.php/2010/09/12/merkle-tree/
Merkle Tree, 又被称为Hash Tree
,是一种树状Hash结构,1979年由Ralph Merkle发明。
如前面的blog所述,Merkle Tree 首次在NoSQL存储系统中的应用是在Amazon ...
重构这个如今coding最时髦的词,在各个coder之间广泛流传。重构俨然已经成为了经验丰富的代名词。最近有机会开始重构一些东西,在这里回顾一下以前的重构基础吧。
重构的时机:什么时候重构?
重构绝非没事的时候改动下代码让代码更美观,这个意义真的不大,太浪费精力了。当发现以前书写的代码不满足目前的功能需求时,那么可以考虑重构;当以前的代码不满足目前的性能要求时,需要重构(甚至于重写,重写要慎重);当可预见的未来里,可能会出现功能性能瓶颈时,需要重构。总而言之,没有明确的有价值的目的期望,那还是let it alone比较好。
重构的方式:怎样开始重构?
...
最近又开始读重构这本书了,这次换成了原版。
同时最近也开始当小兵,在project里完成一些功能。 面对着基于遗留系统的设计,重构又要祭出来了。
这里边回顾,边总结,边学习,边理解下重构的时机哈。
进入项目的时候需求PK什么的并没有参加,只是一无所知的直接去参加需求确认会了。
然后就进入项目了。根据PM的分配,接手了一些系统交互的功能设计和数据处理,另外由于需求的变化重构一期的功能设计。
从数据库表格的重构开始,涉及了数据迁移,功能的变更,几乎是完整的重新实现了原有功能,这里可以看到设计的缺陷,一二期相差并不是很久远,却要完整的重构,对资源的浪费太那啥了。所以,重构并不 ...
本文来自百度文库,
http://wenku.baidu.com/view/424326270722192e4536f650.html
关于bean的作用域,还可以参见 http://blueram.iteye.com/blog/352846
Spring
Bean
作用域介绍:
singleton
:
Spring
Ioc
容器只会创建该
Bean
的唯一实例,所有的请求和引用都只使用这个实例
Property:
每次请求都创建一个新实例
request:
在一次
Http
请求中,容器 ...
这是一篇转载,原文来自于 http://www.blogjava.net/huxiaowi/archive/2009/06/23/283775.html?opt=admin
作者是
Charleehu
在
spring
中,从
BeanFactory
或
ApplicationContext
取得的实例为
Singleton
,也就是预设为每一个
Bean
的别名只能维持一个实例,而不是每次都产生
一个新的对象
使用
Singleton
模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意 ...
汉诺塔是貌似递归入门的引导题目,把这个过程写下来,mark一下递归。没别的用处。
package hanoi;
public class Hanoi {
/**
* 以A表示起始柱子,C表示结果柱,B表示中间柱
*
* @param args
*/
public static void main(String[] args) {
int n = 4;
hanio(n, 'A', 'C', 'B');
}
/**
* 递归步骤如下: 先将前n-1块盘子挪到中间柱 然后将最后一块盘子挪到结果柱 最后将前n-1块柱子从中间柱挪想结 ...
全排列问题:这是描述数字的全部排列结果的一类问题。有时候经常参杂着一些限制条件。比如12345的全排列,其中34不能连着出现等等。本文以简单的全排列为对象,阐述递归的思想。
递归,要有终止条件,然后向终止条件靠 ...
这里是以前写的算法总结了。照搬过来而已。
package SortSet;
import java.math.*;
public class SortSetTest {
// 插入排序
public static float[] InsertSort(float x[]) {
float temp;
int tag;
for (int i = 0; i < x.length; i++) {
temp = x[i];
tag = i;
while (tag > 0 && x[tag - 1] >= t ...
二叉查找树代码大致如下:
二叉树节点类:
package RBTree;
public class BSTreeNode {
int data;
BSTreeNode lchild;
BSTreeNode rchild;
}
二叉树的功能实现类:
package RBTree;
public class BSTree {
BSTreeNode root = null;
// 插入节点
public void InsertNode(BSTree T, int data) {
BSTreeNode node = new BSTr ...
这里包含了三种求得递增子序列的算法。
是以前写的代码,这里就拖过来了。
import java.util.ArrayList;
import java.util.Collections;
public class LIS {
public static void LIS(int[] L) { // 时间复杂度为O(n^3)
Long sTime = System.nanoTime();
int n = L.length;
int[] A = new int[n];// 用于存放前i个数值中的递增子序列数值个数;
A[0] = 1;// 以第a1为末元素 ...
全员会议。
不超过两个小时为宜。
这个主要是组成团队,培养团队士气,了解项目背景等。
评估会议
不应超过4个小时。
根据产品负责人产出的产品backlog,由产品负责人推动,对产品backlog中的用例条目进行工作量估算,最终产出一个优先级明确的,已有初步估算结果的比较稳定的产品backlog.
sprint计划会议
一般时间不超过4个小时。如果超时过多,则应拆分为两个会议。
根据评估会议的产品backlog,产品负责人和团队master以及团队一起,进行产品backlog到sprint的划分,选取合适的用例条目生成每一个sprint合适的task(story),然后 ...
pigs and chickens 是scrum中的一个隐喻。用来比喻scrum每日晨会中与会人员的角色。
团队成员中,自己需要对story负责的人称为pigs ,必须在会中发言,说明完成的工作,将要的工作,遇到的barrier等。chickens指不直接对story完成负责的成员,为了保证晨会的有效简短,尽量避免此类成员负责。
团队master要合理控制每日晨会的时间和发言人,保证pigs都有发言,而chickens在晨会中主要以聆听为主,要控制chickens发言。
SCRUM是敏捷开发实践中团队管理和沟通交流,辅助项目开发的一个framework.这个framework指明了大方向,细节上需要团队经验的积累
和调整,以使得团队的产品开发更有效率。SCRUM和XP并不是两大门派,而是以不同的视角来看待软件开发的过程,前者侧重于管理,理论,沟通和进度控
制。后者侧重于编程实践。像后者中的测试用例驱动(TDD),结对编程都可以跟SCRUM结合来改进开发过程。
SCRUM团队中有这样三类角色, product owner( 产品经理) ,scrum master(团队master),
team(团队成员).
产品经理负责产品的业务需求 ...
今天突然被人问 equal hashcode ==的区别。我支支吾吾的说 == 比较引用地址,equal比较值。hashcode相同不一定equal,equal一定hashcode相同。 说完觉得没底,就搞出来仔细研究下。
java 中有值类型和对象类型,对于值类型,那只能用==来比较了。对于对象,则可以用==来比较是否引用的为同一个对象;用equals来比较对象的值是否相同。这么看string的==和equal的区别就简单了吧? string就是对象嘛。另外注意,对于string,会放在常量池中,除非用特定的new来创建心字符串对象,其他情况都会看该池中存在不存在,如果存在,就复用。 ...
- 2011-02-04 20:05
- 浏览 1009
- 评论(0)
java util.regex正则表达式处理。更多正则表达式可以参见http://jakarta.apache.org/oro/
package pattern;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternDemo {
public static void main(String[] args){
//重复利用这个Pattern p
Pattern p = Pattern.compile("a*b");
...