问题描述
最近的android客户端中需要实现类似余额宝中的折线收益图,乍一看似乎比较简单,但还是有不少细节需要解决,所以我们还是选择了Android-GraphView做为基础来进行改造.对于基本的折线功能,Android-GraphView已经能满足,但对于折线粗细,x轴等距分布以及最后一个记录的标记提示,以及空心小圆点都需要处理,如图显示.
阅读全文…
最近的android客户端中需要实现类似余额宝中的折线收益图,乍一看似乎比较简单,但还是有不少细节需要解决,所以我们还是选择了Android-GraphView做为基础来进行改造.对于基本的折线功能,Android-GraphView已经能满足,但对于折线粗细,x轴等距分布以及最后一个记录的标记提示,以及空心小圆点都需要处理,如图显示.
阅读全文…
首先这个题目有点大,但我实在想不出更好的标题了,这一切也是由于最近与小伙伴们讨论双色球,简单来说双色球就是一种排列组合小游戏,但又区别于全排列,它只针对数值而不针对位置,而其又区别蓝球与红球,那么我们很简单的就可以算出其全组合的可能数值,即红球33选6,33!/(6! * (33-6)!) = 1107568,蓝球16选1,全组合就是1107568 * 16 = 17721088,想一想这也确实很夸张,别说中头奖了,甚至中三等奖也是低概率事件,那么我们是否有办法提高中奖概率呢,个人认为肯定是有的,毕竟双色球只是一种伪随机.
经过挖掘与分析,貌似能提高双色球中奖概率的条件有以下几种,例如红球分区,和值,跨度,奇偶比,质合比,012路比等等,那么我们可以将这类限制抽象成条件,但前提是我们需要将所有的组合全部列举出来,然后通过条件去缩小范围,这里我们有了第一个问题,即生成红球的所有组合,然后输出到一个文件里,代码看起来应该是这样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class Combination { public final static int[] list = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}; // 取6个红球 public final static int M = 6; public ArrayList<String> result = new ArrayList<String>(); public static void main(String[] args) throws IOException { Combination c = new Combination(); // TODO 生成红球的所有组合 c.combine(); FileUtils.writeLines(new File("ssq.txt"), c.result); System.out.println("total:" + c.result.size()); } } |
最近将开发环境全面转至macbook上,但发现在安装java的过程中并不是那么一帆风顺,这里简单记录下遇到的问题以及解决方案.
首先我们需要去oracle下载最新的jdk,笔者拿到的最新的版本是1.7.0_45-b18,这里没有什么好说的,直接下载安装即可,安装完毕后需要在.bash_profile或者.zshrc文件中设置JAVA_HOME,代码如下
1 2 3 |
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home CLASSPATH=. export PATH=$PATH:$HOME/bin:/usr/local/bin:$JAVA_HOME/bin:$CLASSPATH |
然后执行source让其生效.
最后在终端中执行如下命令判断JAVA_HOME是否正确设置
1 |
java -version |
下载好IntelliJ IDEA解压执行发现弹出提示需要安装1.6,查阅了资料后发现需要修改idea中的Info.plist.
打开plist后找到如下项,将1.6改成1.7后再次运行就发现idea可以正常启动了.
1 2 |
<key>JVMVersion</key> <string>1.6*</string> |
下载好eclipse解压执行,发现依旧提示需要安装1.6,多方查阅后发现似乎是oracle更新了某些JVM的设置,我们需要找到jdk的Info.plist
执行如下命令
1 |
vim $JAVA_HOME/../Info.plist |
找到JVMCapabilities配置项,修改成如下所示,最后重启机器即可.
1 2 3 4 5 6 7 8 |
<key>JVMCapabilities</key> <array> <string>CommandLine</string> <string>JNI</string> <string>BundledApp</string> <string>WebStart</string> <string>Applets</string> </array> |
Memcached于1.2.4版本新增CAS协议,类同于Java并发包中CAS(Compare and Set)原子操作,用来处理同一item被多个线程更改过程的并发问题.
基本原理非常简单,简而言之就是”版本号”.每个存储的数据对象都有一个版本号.在Memcached中,每个key关联有一个64bit长度的long型唯一数值,表示该key对应value的版本号.
这个数值由Memcached产生,从1开始,且同一Memcached不会重复,在两种情况下这个版本数值会加,即新增与更新,而删除item版本值不会减小.
阅读全文…
最近一直在做Red5的直播与视频开发,虽然Red5提供了与FMS趋同的功能,但对于Red5的性能我们一直不太清楚,如果想大规模使用Red5作为我们的生产服务器,那么还需要对它进行一些性能测试,以此来验证它是否能满足我们的需求.
对Red5进行压力测试与性能测试,其中Red5版本为1.0.0-RC1.
硬件环境:CPU:Intel [email protected],内存8G
软件环境:Red5,CentOS
网络环境:1000M
阅读全文…