- 浏览: 459973 次
- 性别:
- 来自: 杭州
最新评论
-
sbpcx:
发布式Java应用基础和实践 -> 分布式Java应用基 ...
Java执行机制 -
wangyaopeng1992:
同一机器不同线程都会获取锁,有并发问题
基于zookeeper的分布式锁实现 -
icanfly:
我只能说你实现的有严重的并发问题,并没有考虑并发的情况。
基于zookeeper的分布式锁实现 -
aiheng1988:
若多个客户端同时调用tryLock去获取锁,最开始不存在锁的节 ...
基于zookeeper的分布式锁实现 -
Mynameisyuan:
...
基于zookeeper的分布式锁实现
文章列表
好久没有在家里鼓捣代码了,今天算是良心发现.然后开始安装各种软件.其中就是遇到IntelliJ IDEA的安装..需要一些初始化的工作.做一个mark.以后就按照这个来把.慢慢添加新的.
1 修改对应的配置信息(缓存)地址
由于我家里的电脑C盘被我设置得超级小,然后Idea默认的各种系统配置,最主要是缓存的地址,修改 ${idea.home}/bin/idea.properties 修改下面几个值.
#---------------------------------------------------------------------
# Unc ...
前言
由于一直使用的是win的idea,而且用的是eclipse的快捷键,最近换成mac了,如果还用eclipse的快捷键太蛋疼,所以做一个表格对照一下。估计就我才会遇到这种奇怪的问题。
功能
描述
eclipse快捷键
mac下idea快捷键
file structure
查看类下所有的方法
ctrl+o
cmd+f12
compare files/show diff
对比文件
ctrl+d
alt+g
delete line
删除一行
ctrl+d
cmd+y
select all
全选
ctrl+a
cmd ...
前言
大概介绍一下 scala中强大的模式匹配功能
最简单的例子
val bools = Seq(true,false)
bools.foreach {
case true => println("it's ture")
case false => println("it's false")
}
就是一个最简单的匹配。
类型匹配和值匹配
for {
x <- Seq(1,2,3.1,"one","two&qu ...
第一种写法
def fib(n:Int):Int = {
def loop(i:Int):Int = {
i match {
case 1 => 0
case 2 => 1
case _ => loop(i - 1) + loop(i - 2)
}
}
loop(n)
}
相信有一定的编程能力的人,写这么一个递归函数应该不难,也是与人的思维最相近的,但是很明显,两层递归对栈的消耗完全是指数级的,写完这个,后续一定会考虑如何优化. 尾递归优化是针对递归非常常用的优化方式 ...
前言
就是记录一些scala中有趣的特性。
import 排除
import java.math.BigInteger.{
ONE => _,
TEN
}
println(TEN)
// println(ONE) compile error
可以把ONE 给排除掉。
抽象类型
package typeless
import java.io.File
import scala.io.Source
/**
* Created by zhenghui on 2016/10/22.
*/
a ...
scala akka- 笔记 1
- 博客分类:
- scala akka
前言
我发现我太懒了,说好的学习scala顺便做笔记,然后就没有然后了。这次继续看吧,能记多少记多少。
第一个例子
package zhenghui.akka.actor
import scala.actors.Actor
/**
* user: zhenghui on 2016/1/15.
* date: 2016/1/15
* time :21: ...
scala学习1- 一些概念
- 博客分类:
- scala
下载和安装
linux简单一些,可以直接 yum install scala就好了 ,windows的话,可以到下载的链接 http://www.scala-lang.org/download/ 我下载的是scala-2.11.6 。对应是一个 msi文件(速度有点小慢啊)。下载完以后直接安装,安装完成以后,对应的bin目录会自动添加到path路径下。 然后就可以直接在命令行进入 REPL了
REPL 写道
C:\Users\zhenghui>scalaWelcome to Scala version 2.11.5 (Java HotSpot(TM) 64-Bit ...
scala学习0- HelloWorld
- 博客分类:
- scala
前言
scala是我一直想学的语言,记得前年还在博客里蜻蜓点水的写过一段,然后又不了了之了。这次下定决心要好好学,所以特意开一系列帖子记录scala学习的内容。估计都是些入门的东西,目的不是想写出牛逼的scala初学文档来布道,纯粹只是想看看自己能坚持多久。哈哈。
废话不多说,第一个帖子,必须是HelloWorld来镇楼。
开始
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
...
由于电脑忽然各种抽风,昨天还用的好好的idea svn插件commit的时候一直提示 Error:Wrong committed revision number: -1 。大概查了一下,应该是svn4idea插件出问题了。本着简单粗暴的原则,直接升级到idea14来解决。本来根据个人地经验,大版本升级最好是过半年左右再升是比较好的。这次是没办法,只能当小白薯了。。下面就记录一下我遇到地问题和感觉吧
大应用maven导入问题
升级最新的idea,可以直接使用老版本的idea配置,这个确实是不错的。问题是,为什么maven的dependency需要重新导入啊。我现在使 ...
joda time 记录
- 博客分类:
- joda
比较两个时间相差天数
1 不在意时间,只在意日期的。 比如 2014-12-31 23:59:59 和 2015-01-01 0:0:0 相差的是一天
/**
* 判断两个日期相差几天。
*/
public static int differDays(Date day1,Date day2){
if(day1 == null || day2 == null){
throw new RuntimeException("args is null");
}
...
前言
相信很多人在阅读源码的时候,都会习惯的去调试对应的代码以加深理解。阅读hotspot的源码也不例外。听说很多大牛都是直接用gdb来调试的,但是大部分的程序员还是习惯在IDE下进行调试,包括我在内。然后就捣鼓了一个下午,在eclipse CDT下调试hotspot成功,特此记录吧。
ps
1 下面所有的内容,都是基于你已经自己编译openjdk成功的基础上的,如果还没完成这一步,请参考
自己编译JDK的时候遇到的问题记录 这篇文章先自己编译JDK。
2 其实对于C C++程序员 来说,gdb是非常常用 ...
新增用户的sudo权限
新装的fedora不知道怎么没有给我自己的用户加上sudo权限。然后我自己加。最开始直接修改/etc/password 把对应的用户uid和gid改成0,但是发现会有问题。直接把这个用户搞出问题了。然后就是用vim修改 /etc/sudoers,然后更大的问题是,直接被我改成乱码了。伤不起。最后也没怎么好好解决,直接用visudo命令,把里面的东西全部删除,顺便新增我的sudo权限
zhenghui ALL=(ALL) ALL
其实visudo就是调用了vi 命令去修改对应的/etc/sudoers的内容,只是保存的时候会自动做语法校验。免得和我之前一样被 ...
本篇主要是为了mark代码。在试验某个功能的时候,需要用到
写道
把对应的源代码编译成class对象,并load进系统
的功能。然后想到在dubbo中有类似的代码,然后进行无耻的copy。对应的代码如下
package com.taobao.ju.hsfer.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStrea ...
工作中需要写一个定时任务,由于是集群环境,自然而然想到需要通过分布式锁来保证单台执行..相信大家都会想到使用zk来实现对应的分布式锁.下面就简单介绍一下几种实现
准备工作
有几个帮助类,先把代码放上来
ZKClient 对zk的操作做了一个简单的封装
package zk.lock;
import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;
import zk.util.ZKUtil;
import java.util.concurrent.CountDownLatch;
...
Guava总结4-杂七杂八
- 博客分类:
- Guava
Splitter 和 Joiner
一个是自动分割,一个是合并.直接看代码
//用逗号隔开.
private static final String SPLITE = ",";
private static final Joiner joiner = Joiner.on(SPLITE);
private static final Splitter splitter = Splitter.on(SPLITE);
public void join(){
//将list自动变成以逗号分割组成的字符串
lotteryAwardMsgDO ...