- 博客(143)
- 资源 (22)
- 收藏
- 关注
原创 synchronized、wait、notify底层实现
1.如何使用jstack分析线程状态 http://www.jianshu.com/p/6690f7e92f27 2.JVM源码分析之synchronized实现 http://www.jianshu.com/p/c5058b6fe8e5 3.JVM源码分析之Object.wait/notify实现 http://www.jianshu.com/p/f4454164c017
2017-07-30 18:58:48
5253
原创 shell脚本中常用的技能
#/bin/bashthreadCount=`cat count`;topic=`cat topic`#echo $topic#访问文件中每行的数据for redis in $(cat redis.list); do echo $redis host=`echo $redis | awk -F ":" '{print $1}'` port=`echo $redis
2017-06-04 17:13:26
1134
原创 NIO Buffer To String
byteBufferToStringpublic static String byteBufferToString(ByteBuffer byteBuffer) { String result = ""; try { int length = byteBuffer.remaining(); byte[] bytes =
2017-04-15 16:45:14
753
原创 tcpdump+wireshark的使用
tcpdump在开发过程中经常需要抓包,下面介绍tcpdump和wireshark配合使用的方法。 tcpdump -i lo port 9000 -w fcgi.dump 上面的-i lo表示抓的本机的数据包。tcpdump默认抓取的是经过网卡的往来包。由于与PHP-FPM通信是本机的9000端口,因此需要使用-i lo参数来抓取。 port 9000表示抓取发送或来自9000端口的数据包。
2017-04-15 16:04:52
1201
原创 FCGI协议的header解析
FCGI协议的heade比较简单只有8个字节,其C语言定义格式如下:typedef struct { unsigned char version; //版本 unsigned char type; //操作类型 unsigned char requestIdB1; //请求id unsign
2017-04-15 12:41:03
2605
原创 lsof
查看进程所占用的文件描述符。 lsof -p processId 详见: http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/lsof.html
2017-04-10 14:58:08
600
原创 fcgi4j与PHP-FPM通信遇到的问题
一.前言前一篇文章介绍了一些CGI、FCGI相关的概念,详见 理解CGI、FCGI、php-cgi、php-fpm的概念 。从这篇文章知道PHP-FPM是PHP实现FCGI协议的一个组件,负责FCGI协议编码的请求的解析和转发。 fcgi4j是一个Java解析fcgi协议的组件,其git地址为:fcgi4j github。二.问题在工作中遇到的问题: 在线上,当PHP-FPM对数据包进行分包,f
2017-03-25 16:03:09
838
原创 Jedis详解
http://www.jianshu.com/p/7913f9984765pipiline的实现方式 http://www.jianshu.com/p/5e12556a0aa9
2017-03-22 16:16:55
1064
原创 PropertiesManager java
PropertiesManager pm = new PropertiesManager(confFile);
2017-03-22 16:15:46
876
原创 分布式缓存简介
最近在看分布式缓存方面的东西,记录一下。 缓存这个概念,我第一次接触应该是在学《计算机组成原理》时,里面的CPU Cache就是缓存的意思。 这里就不得不说一下,影响计算机性能的主要方面或者说计算机的瓶颈。现在CPU应该是跑的足够快了,关键是CPU需要数据才能进行计算,计算出来的结果要存储起来。所以,数据的读写永远是计算机的瓶颈。从哪里读写数据,也就是说,数据存放在哪里,成为了主要问题。 “近
2017-01-04 21:10:36
2921
原创 服务的幂等性
2017年的第一天去了趟天津,收获最大的就是去了梁启超故居,虽然门票只有10元,但是感觉是最有意义的。梁启超之家就是个院士之家,各行各业的专家:建筑专家、火箭专家、经济专家、历史专家、考古专家、国学专家。牛!梁启超在学习、教育方面提出了自己的方法论,值得后人学习! 看了很多遍服务的幂等性,没有自己设计过、做过,总是记不牢。现在也没用过,写个博客加深下印象吧。 博客写了之后还是要多回顾。 在复杂
2017-01-03 20:39:45
1457
原创 Linux time命令输出的user、sys、real
real time 表示後面所接的指令或程式從開始執行到結束終止所需要的時間。簡單講,當一個程式開始執行瞬間看一下手錶記下時間,當程式結束終止瞬間再看一次手錶,兩次的時間差就是 real time。 user CPU time 表示程式在 user mode 所佔用的 CPU 時間總和。多核心的 CPU 或多顆 CPU 計算時,則必須將每一個核心或每一顆 CPU 的時間加總起來。 这个是所有CP
2016-12-15 11:10:20
4686
原创 google allocation instrument
连接: https://github.com/google/allocation-instrumenter quick start: https://github.com/google/allocation-instrumenter/wikipom依赖<dependency> <groupId>com.google.code.java-allocation-instru
2016-12-12 19:01:59
804
原创 MAC iterm2-zsh
MAC终端神器iterm2登录跳板机不退出发送心跳的配置zsh1.无需tab自动补全 2.登录服务器后tab变颜色用于区分服务器还是本机
2016-12-11 18:32:31
1032
原创 Mongo Java Driver示例
创建连接find时间条件的判断(字符串时间、long时间),返回结果包含某些字段、排除某些字段,按照某字段排序、升序降序显示、将结果转换成Java Beangroup符合条件的文档执行group操作,查询条件null、非null的判断,按照某些字段进行group,sum count的计算、group结果转换成Java Bean
2016-12-11 18:27:01
562
原创 关于单例、关于DCL:Double Check Lock、关于volatile
Java程序员面试都会被问到单例模式,有的公司(如1.)还会问单例模式的各种实现。结论(1)单例的实现请直接看第4和第5。 (2)volatile总共实现了两个功能: a.多线程间的可见性问题 b.对象实例化时的完整性问题 下面阐述下具体写法。1.public class Singleton { private Singleton() {
2016-12-04 17:54:15
3368
2
原创 使用JSP显示表格
最近在工作中需要做些前端的工作,当然还是比较low,使用的JSP。之前没做过,遇到了一些问题,这里记录下。 将后端传过来的List使用表格显示时,免不了要使用<c:forEach></c:forEach>要使用这个功能,需要在JSP文件头声明taglib。如果不声明taglib,使用开发者工具(alt+command+i)看返回的数据,发现没有将List展开。<%@ taglib prefix=
2016-12-04 14:29:33
23910
原创 抽象类与抽象方法的使用
学了这么长时间的抽象类与抽象方法,只是看别人这么设计,这么写。现在终于在项目中实际使用了。下面抽象出来,阐述下。 在现有的系统下,已经有了下面的实现:package org.fan.animal;/** * Created by fan on 2016/11/28. */public interface Animal { void doEat();}假设这个食草动物,每次eat之前
2016-11-28 20:45:48
866
原创 关于int和Integer互转的问题
Integer转成int这个在转换的过程中会调用Integer的静态方法valueOf()方法。 源码如下:public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-In
2016-11-19 13:24:24
7228
原创 MAC 查看java home目录
在mac下使用echo ${JAVA_HOME}是看不到JAVA_HOME的设置的。使用env 命令也看不到JAVA_HOME的值。解决方法:/usr/libexec/java_home -V
2016-11-13 17:28:20
11484
1
原创 Java8的Function接口以及Lambda表达式Demo
只是简单给出一个小Demo。具体的理论知识可以看后面的参考链接。package org.fan.func;import java.util.function.Function;/** * Created by fan on 2016/11/4. */public class FunctionDemo { //API which accepts an implementation of
2016-11-06 11:57:53
8394
原创 理解CGI、FCGI、php-cgi、php-fpm的概念
CGI:common gateway interface 通用网关接口FCGI:fast common gateway interface 快速通用网关接口PHP-FPM:PHP-Fast CGI Process Managerphp-cgi是CGI协议的实现,PHP-FPM是FCGI协议的实现。CGI 就是web服务器如nginx跟后端动态脚本语言如PHP通信的协议接口。1.场景:浏览器请求web
2016-11-03 11:46:19
12144
原创 程序11-先升序后降序返回最大值
一个数列,先升序后降序,返回最大值的下标。package org.fan.learn;/** * Created by fan on 2016/10/10. */public class BinarySearchMeituan { public static int search(int[] arr) { //特殊处理 if (a
2016-10-11 00:07:32
1926
1
原创 由常量池 运行时常量池 String intern方法想到的(四)之 常量池
这篇文章 由常量池 运行时常量池 String intern方法想到的(三)之String内存模型 有网友评论,主要有以下两个问题: (1)是不是每个类都有一个运行时常量池? (2)在运行时常量池中存在的字符串是否是对象? 下面主要以示例的形式解释第一个问题,而第二个问题,我之前也有过疑惑,也问过其他网友,请看这个博文及评论: String放入运行时常量池的时机与String.inte
2016-10-08 18:45:57
1203
3
原创 LeetCode215. Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. For example, Given [3,2,1,5,6,4] and k = 2, return 5.
2016-09-16 12:22:17
442
原创 LeetCode34. Search for a Range
Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithm’s runtime complexity must be in the order of O(log n). If the target is not found in th
2016-09-15 21:00:16
323
原创 LeetCode278. First Bad Version
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the
2016-09-15 18:39:49
298
原创 LeetCode374. Guess Number Higher or Lower
We are playing the Guess Game. The game is as follows:I pick a number from 1 to n. You have to guess which number I picked. Every time you guess wrong, I’ll tell you whether the number is higher or lo
2016-09-15 18:24:58
311
原创 leetcode 72. Edit Distance
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You have the following 3 operations permitted on a word:
2016-09-15 14:53:17
584
原创 最长公共子序列
一个给定序列的子序列是在该序列中删去若干元素后得到的序列 给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列 最长公共子序列 X = (A, B, C, B, D, A, B) Y = (B, D, C, A, B, A) (B, C, B, A) (B, D, A, B)完全代码package org.fan.learn.dp;/**
2016-09-14 17:36:49
442
原创 LeetCode322. Coin Change
You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money c
2016-09-13 22:34:34
712
原创 01背包问题
小偷有一个容量为W的背包,有n件物品,第i个物品价值vi,且重wi 目标: 找到xi使得对于所有的xi = {0, 1} sum(wi*xi) <= W, 并且 sum(xi*vi)最大递归代码package org.fan.learn.dp;/** * Created by fan on 2016/9/13. */public class Bag { public static f
2016-09-13 18:48:18
388
原创 小兵向前冲
小兵向前冲N*M的棋盘上,小兵要从左下角走到右上角,只能向上或者向右走,问有多少种走法? 注意:这里说的N*M是指线段,而不是指几根竖线,几根横线。线段总是比线少1个的。下面的讨论都是基于线段的。 见下图(这个图是4*4的): 上图标注解释如下: 左下角黄色方框:起始位置 右上角黄色方框:目标位置 下边框和右边框黑色的数字0 1 2 3 4表示的是坐标 红色的方框:表示递归时的重复
2016-09-12 16:46:21
1621
原创 斐波那契数列与n!
实现斐波那契数列 0、1、1、2、3、5、8、13、21、34、…… F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) 递归实现:package org.fan.learn.dp;/** * Created by fan on 2016/9/12. */public class Fibo { public static long[] result
2016-09-12 14:37:47
750
原创 leetcode198 House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses
2016-09-12 10:55:49
404
keil uvision 3 注册机 带CID的
2013-01-23
hex转coe工具
2013-01-17
数据结构 严蔚敏 C语言版 括号匹配
2013-01-16
数据结构严蔚敏C语言版 迷宫
2013-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人