- 浏览: 99879 次
- 性别:
- 来自: 北京
-
最新评论
-
IamSungod:
很有探索精神,学过多种编程语言呀
clojure parse xml -
messi_18:
是的。不知道别的平台是否也有类似问题。
scalatest 尝试(一) -
llh110220:
lz在windows下编写的吧
scalatest 尝试(一)
文章列表
java数组的最大长度是多少?
- 博客分类:
- java
java 中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为何有这个限制呢?为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB.
由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占用内存是4GB。
从JVM的角度来解释:创建数组的字节码是anewarray和new ...
昨天闲得无聊,忽然想起了曾经的一个疑虑:貌似有这样的线索:在catch语句里写return语句会不会真的返回,前提是有finally语句。
int cal(){
int ret = 1;
try {ret=2;return ret;} catch(Exception e){ret=3;return ret;}
finally {
ret=4;
return ret;
}
}
这段代码,有异常的时候会返回什么结果?
反编译一下:
int cal();
Code:
Stack=1, Locals=5, Args_size=1
0: ...
引用夫战勇气也这是我今天在wikipedia上看到张亚勤和宁铂的简介之后的感受。张亚勤,大家都知道:现任微软公司全球资深副总裁、微软中国研发集团zhuxi,微软(中国)有限公司董事长,电气电子工程师协会(IEEE)会士。毕业 ...
今天读了一篇文章。分析了concurrent和parallel的区别。写得很不错,这里记录一下我的理解。
concurrent是把任务分解成不同的子处理,不同的子处理之间通过交互来完成整个任务。而每个子任务有一个线程来执行。在单处理器条件下,通过分配时间片,在每一时刻只有一个线程处于执行状态。在多处理器情况下,可能会有多个线程同时执行。为什么是可能呢,我理解是因为concurrent指的是线程之间有交互,交互就得通过共享内存或者传递消息。那么有可能是只有一个线程在执行的。所以,总之一句话:concurrent侧重线程间的交互。和同时运行几个线程无关。
parallel是把任务分成几个子任务, ...
今天不知那根弦动了下,开始咬文嚼字JNDI。之所以说咬文嚼字,实在是浮于表面没有深入。权当作读书笔记。
JNDI这个东西是用来干嘛的啊?EJB,RMI-IIOP都用它来定位对象:先绑定对象到一个名字,然后再那这个名字把那个绑定的对象取出来。(写到这里,我忽然间知道我为何关注JNDI了:我是这几天一直看RMI,RMI-IIOP, EJB, CORBA, IDL这些东西来着。至于我为何看这些我也记不清了为何了。)
就是这样简单啊。好像超市门前的存储箱啊,先把包保存进去,拿到一个记着箱子号的条形码,买完东西那这个条形码一扫,东西就取出来了。我这里写的很不准确,因为忽略了细节:我拿到的包是我放进去的 ...
eval in Ruby
- 博客分类:
- ruby
今天把之前做的一个工具集成到我的一个工具框架中,结果遇到了问题。我的工具和框架都是用ruby写的,框架通过eval方法调用注册的工具。而我的工具中有一个对于Array的monkey patch。class Array do
alias old_zip zip
def zip(another_array)
if another_array and another_array.size > size
(another_array.size-size).times{ self << nil }
end
old_zip(another_arra ...
sicp practice 1.16重新实现
- 博客分类:
- scheme
今天重新拿起了SICP,准备继续之前被The Little Schemer打断的计划。
今天重新实现了下第一章的习题16,还重新实现了那个测试工具。
习题代码:
(define square
(lambda (n)
(* n n)))
(define fast-expt
(lambda (a n ex)
(cond
((zero? a) 0)
((zero? n) ex)
((even? n) (fast-expt (square a) (/ n 2) ex))
(else (fast-expt a ...
自己写一个scheme测试工具
- 博客分类:
- scheme
端午在家休息了好几天,基本上就是带孩子和睡觉了。荒废了好几天之后,今天重操旧业。
The Little Scheme看到第99页了。要写一个函数numbered?来判断一个表达式是否是数字表达式。
上代码:(define atom?
(lambda (a)
(not (or (null? a) ...
The little Scheme我的代码
- 博客分类:
- scheme
今天回到屋子先睡了一觉,昨天没休息好,打了一宿蚊子,战果丰盛。睡醒后,开始,找一些好听的音乐。最后该看书了,继续我的The Little Scheme。本来,我是先看SICP的,但是,看着看着不知怎么就跑到这本书了。还好这本比较薄,马上就要看完了。接下来,写了几个习题:
(define atom?
(lambda (x)
(not (or (null? x) (pair? x)))))
(define insertR*
(lambda (old new lat)
(cond
((null? lat) '())
((atom? (ca ...
sicp practice 1.16
- 博客分类:
- scheme
今天忍着蚊子的叮咬,把SICP习题1.16作了。
先写了递归版:
(define power
(lambda (m n)
(cond
((zero? n) 1)
((even? n) (square (power m (/ n 2))))
(else (* m (power m (- n 1)))))))
又写了迭代版:
(define power-iter
(lambda (m n product)
(cond
((zero? n) product)
((odd? n) (power-iter ...
sicp practice 1.12
- 博客分类:
- scheme
#lang racket
(define (sum-lst lst)
(let loop ((lst lst) (accum '()) (prev 0))
(cond
((empty? lst) (reverse (cons 1 accum)))
(else (loop (cdr lst) (cons (+ (car lst) prev) accum) (car lst))))))
(sum-lst '(1))输出'(1 1)
(sum-lst '(1 1)输出'(1 2 1)
这题是为了输出帕斯卡三角
SICP practice1.11
- 博客分类:
- scheme
今天,把昨晚作的这道题又重新修改了。在DrRacket中运行通过了。这个版本的是迭代的。递归的很简单就不写了。
#lang racket
;;this is for the practice 1.11 from SICP
(define (f n)
(define (f-iter a b c cnt)
(cond
((= cnt 2) (if (> a cnt) a 2))
((< cnt 2) cnt)
(else (f-iter (+ a (* 2 b) (* 3 c)) a b (- cnt 1)))
...
昨天,读了g9的一篇文章,里面谈到了continuation和AMB。这两个概念,我恰巧都不知道。于是乎,一头扎了进去,出不来了。本打算昨天晚上能把代码读懂,写篇文章记录一下学习心得。不料天资驽钝,到下班也没看懂,晚上还要看欧洲杯。所以文章也没写成。
今天,忙了一整天也没功夫继续昨天的半拉子工程。快下班了,才想起来那件事。于是乎,又一头扎了进去。灵感迸发于一头雾水许久之后。我看懂了,心情激动自不用说。
先上代码:
def must(amb,p)
amb.choose if !p
end
require "continuation"
class Amb
def ...
xubuntu下openjdk终于编译成功了
- 博客分类:
- java
今天,在这篇文章http://www.cnblogs.com/haoweishow/archive/2012/02/07/2341323.html的帮助下终于在xubuntu的环境中编译成功了openjdk7。
我之前装好了jdk和ant,而且我不是在虚拟机环境。所以还是有些不同。
1. 安装jdk
直接下载:http://download.oracle.com/otn-pub/java/jdk/6u32-b05/jdk-6u32-linux-i586.bin?AuthParam=1337735364_2b306a7e077eda7fda82458789d3e854
安装步骤就省略了。我装到了 ...
今天发现SUSE的磁盘空间仅剩2G了,于是向同事申请给我的虚拟机添加磁盘空间.于是,也开始了我的探索之路.
一 让SUSE识别新添加的空间(参照http://iamthelinuxsysadmin.blogspot.com/2011/02/adding-virtual-hard-disk-to-suse-vm-on.html)
echo "- - -" >/sys/class/scsi_host/host#/scan
注意-之间有空格的. 我最开始忽略了这一点,走了弯路. #一般是0.
我的环境执行的命令:
echo "- - -" >/sys ...