- 浏览: 541469 次
- 性别:
- 来自: 杭州
-
最新评论
-
飞天奔月:
public List<String> gener ...
实践中的重构30_不做油漆匠 -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道public class A {
...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在世界的中心呼喚愛 写道在classB ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在classB的finalize上打断 ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
iteye比较少上,如果可以的话,可以发e-mail交流:ch ...
深入理解ReferenceQueue GC finalize Reference
文章列表
linux的常用命令
- 博客分类:
- linux
---------系统管理部分---------
passwd 更改密码
hostname
sudo
sync - flush file system buffers
shutdown - bring the system down
reboot
halt
poweroff
init
---------系统监控部分---------
vmstat 查询机器信息。
top
top -H -p<pid> 查看线程
free
sar
mpstat(可以查看单独cpu的状态)
ps
aux
kill 给进程发信号
df - report file system di ...
linux的grep的用法
- 博客分类:
- linux
grep
-A after
^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* 匹配零个或多个先前字符 如:' *grep'匹配所有一个或多个空格后紧跟grep的行。
.* 一起用代表任意字符。
[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不 ...
在查询接口结果类设计中,有这么一种思路,即把查询的真实结果和结果码组合起来,形成一个结果类,当调用方使用该接口时,先判断结果是否是成功结果,然后进行相应的处理。
一个示例如下:
/**
* 列表查询结果。
* < ...
实践中的重构30_不做油漆匠
- 博客分类:
- 实践中的重构
油漆匠的故事是编程文化中的一个著名故事。本地化如下。
小强毕业后得到一份街道办油漆匠的工作,工作内容是在马路中间喷涂油漆画线。上班第一天,他拿出一罐环保漆来到他负责的路段,喷涂了300米长的线。“小伙子很给力啊!”街道办徐大妈称赞道,然后给了他300大洋作为工钱。第二天,小强只喷涂了150米。“是不是昨晚没有睡好啊。算了,还是比原来的老王头麻利多了,还是小伙子干活又好又快啊。”徐大妈又掏了150大洋。第三天,小强只喷涂了30米长的马路。“才30米,怎么搞的!明天不用来了!”徐大妈已经不能忍受了。小强一边擦汗,一边委屈的说:“徐大妈,累死我了,现在画一点线要跑好远,油漆罐太远了。”
大家都是当笑话 ...
目录
Chapter 1. Introduction 2
1.1. A (Very) Brief History of Concurrency 2
1.2. Benefits of Threads 3
1.3. Risks of Threads 3
1.4. Threads are Everywhere 3
Chapter 2. Thread Safety 3
2.1. What is Thread Safety? 3
2.2. Atomicity 4
2.3. Locking 4
Chapter 3. Sharing Objects 5
3.1. Visibility 5
3.2. Publi ...
实践中的重构29_不自动的自动化测试
- 博客分类:
- 实践中的重构
测试的精髓之一就是自动化。把一切可以自动化的东西都自动化起来,从而节约宝贵的人力,极大的提高效率。
看一个UnitTest的实现如下:
@Test
public void test() {
Date start = DayUtil.parseDate("20110101");
Date end = DayUtil.parseDat ...
实践中的重构28_小心怀疑类库
- 博客分类:
- 实践中的重构
一般而言,类库的使用频率较高,场景较多,隐藏的bug就较少。
因此,当我们发现代码中有问题的时候,首先应该怀疑应用的代码,只有确定了应用的正确性后,再去排查类库的bug。
Money income = new Money(0);
Money outgo = new Money(0);
for (Money money : moneyList) {
if (money.isIncome()) {
income = income.add(money);
} els ...
[gc] GC调优及awk脚本分析GC日志
- 博客分类:
- java
原有GC参数
JAVA_OPTS="-server -XX:+UseParNewGC -Xms768m -Xmx1280m -XX:MaxNewSize=128m -XX:NewSize=128m -XX:PermSize=96m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:CMSInitiatingOccupancyFraction=1 -XX:+CMSIncr ...
1. 下载
进入要下载的文件的目录
命令:sz fileName
下载的文件保存在CRT配置的文件中目录中,默认是'我的文档'下
修改下载文件保存位置:选项->会话选项->X/Y/Zmodem,可设置上传下载目录
2. 上传
进入上传的文件保存的目录
命令:rz
可弹出上传列表,添加需要上传的文件(可多选),确定即可上传,上传的文件保存在当前所在的目录下
本地事务管理器。
无法管理多个事务性资源。
倾向于入侵式编程。
全局事务管理器。
事务的属性:
1 timeout
2 read-only
3 隔离级别
read_uncommitted
read_committed
repeatable_read
isolation_serializable
4 事务的传播
问题的分类
脏读
A transa ...
jps查看所有java进程。
jconsole
jvisualVM
jmap pid 查看共享对象。
jmap -heap pid 查看java进程堆的相关信息。
jmap -histo pid 查询各种对象占用的内存大小。
jmap -permstat pid 查看Class Loader。
jmap -dump:file=filename,format=b pid dump内存到文件。
jstat -gc pid 间隔时间(ms) 观测各代空间的使用量和GC的统计。
jstat -gccapacity pid 查看内存空间大小。
jstat -gcutil pid 间隔时 ...
最早学习不记笔记。
后来学习记了笔记,但是一般记在笔记本上,感觉比较有质感,但是使用不方便。
后来用了活页夹,感觉归类方便一点。
现在又要辛辛苦苦的腾挪到计算机上,感觉还是计算机处理起来方便一些。
折腾。
方法在设计中,一般关注的是方法的功能契约,即方法需要什么样的参数,方法运行时会保持什么样的不变量,方法运行后会得到什么样的输出。较少会关注到方法的非功能性特征,典型的为方法的执行时间,方法执行时的内存空间消耗等等。
最近关注到一段代码,因为该段代码是导致OutOfMemoryError的一个因素,所以拿来一看。
public enum WorkingDay {
Monday("星期一"), Tuesday("星期二"), Wednesday("星期三"), Thursday("星期四"), Friday( ...
最近又看到奇怪的注释。
/**
* 用户查询服务。
*
* <pre>
* 提供接口
* 1 VIP用户查询服务。
* 2 使用用户名查询用户服务。
* 3 使用id查询用户服务。
* </pre>
* */
public interface UserQuery {
/**
* 用户是否是VIP用户?
*
* <pre>
* 当UserDO中vip为true时返回true。
* </pre>
* */
public boo ...
实践中的重构25_UT也需要持续重构
- 博客分类:
- 实践中的重构
UT是个好东西,在对代码进行持续重构的过程中,UT可以保证代码的正确性。同时,和产品代码一样,UT也是需要不断重构的。
有一个接口,原始定义和对应的UT如下:
/**
* 构建一个按照自然周排好的日期列表(包括最近30天, ...