- 博客(8)
- 收藏
- 关注
原创 synchronized 关键字的体验
package com.huachuan.learnjava; public class Demo1 { static int Ticketcount = 0; public static Object o = new Object(); public static void main(String[] args) { Thread t1 = new
2016-03-30 13:57:00
321
转载 JVM日志与参数
一:理解GC日志格式,读GC日志的方法 1:开启日志 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/gc.log -XX:+UseGCLogFileRotation 启用GC日志文件的自动转储 (Since Java) -XX:NumberOfGC
2016-03-02 10:09:38
434
原创 理解并发的第一步就是下面这段代码
public class Counting { public static void main(String[] args) throws InterruptedException { class Counter { private int count = 0; public void increment() { ++count; } public int getC
2016-02-21 23:00:01
297
转载 网络封包分析工具Charles
iOS环境必备的测试工具——网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。 Charles是收费软件,可以免费试用3
2016-02-19 10:46:05
566
原创 日志利器=grep
1. grep退出状态: 0: 表示成功; 1: 表示在所提供的文件无法找到匹配的pattern; 2: 表示参数中提供的文件不存在。 见如下示例: /> grep 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root
2016-02-17 20:35:55
241
原创 做软件测试的节操和底线
今天一早,春节已过,要针对用户的短信提醒内容进行变更。 发送短信,以及其他程序的逻辑早已经线上运行很久,故无需回归和确认,仅仅修改一下模板即可。 我有个习惯,再简单的逻辑,东西,怎么样也要在上线前真真正正的看一遍,走一遍。 所以 ,发现了变量hour,被粗心大意的设置为hours。 我收到的短信是,您好,您的代金券¥{hours}小时有效。是的,一个短信而已,没有资损,但是
2016-02-15 20:02:18
727
原创 高并发应用、程序单元的理解,分析,测试
高并发应用,在互联网的场景下非常多。比如“秒杀”、但其实秒杀来讲,是一个很大的话题,涉及前端,网关,服务端等等。 我这里主要描述的是服务端的处理理解。 对于服务端来讲,就是一个接一个的请求过来,也可以理解为就是一个方法被连续的执行,而这些方法都要争抢一个资源。 为了保证资源的逻辑性,比如现金券,要保证资金不会超出(超卖),例如准备发500,实际发了5000。 就要对资源进行控制,不允许并发
2016-02-02 12:05:10
590
原创 对缓存的理解,设计,与测试
为什么要有缓存? 我想这个词来自于缓冲,即可以让系统喘口气儿,别一下子把系统打垮。当然有时候也不至于打垮,而是为了提升,因为系统每1MS的提升, 都是用户体验的直接变现。 缓存概念其实很广,有磁盘缓存,DB缓存,H5前端缓存等等。对了,还有CPU 的一级和二级缓存。 大概的看了看,这些缓存的实现和设计都有其自己特点,但究其原理,我目前的理解,是一致的。 即都是要解决:“大量数据频
2016-01-28 13:57:30
2641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人