`
messi_18
  • 浏览: 96572 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
java 中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为何有这个限制呢?为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB. 由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占用内存是4GB。 从JVM的角度来解释:创建数组的字节码是anewarray和new ...

异常返回值反思

    博客分类:
  • java
昨天闲得无聊,忽然想起了曾经的一个疑虑:貌似有这样的线索:在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。之所以说咬文嚼字,实在是浮于表面没有深入。权当作读书笔记。 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,准备继续之前被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 ...
端午在家休息了好几天,基本上就是带孩子和睡觉了。荒废了好几天之后,今天重操旧业。 The Little Scheme看到第99页了。要写一个函数numbered?来判断一个表达式是否是数字表达式。 上代码:(define atom? (lambda (a) (not (or (null? a) ...
今天回到屋子先睡了一觉,昨天没休息好,打了一宿蚊子,战果丰盛。睡醒后,开始,找一些好听的音乐。最后该看书了,继续我的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

今天忍着蚊子的叮咬,把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

#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

今天,把昨晚作的这道题又重新修改了。在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))) ...

AMB in ruby

昨天,读了g9的一篇文章,里面谈到了continuation和AMB。这两个概念,我恰巧都不知道。于是乎,一头扎了进去,出不来了。本打算昨天晚上能把代码读懂,写篇文章记录一下学习心得。不料天资驽钝,到下班也没看懂,晚上还要看欧洲杯。所以文章也没写成。   今天,忙了一整天也没功夫继续昨天的半拉子工程。快下班了,才想起来那件事。于是乎,又一头扎了进去。灵感迸发于一头雾水许久之后。我看懂了,心情激动自不用说。 先上代码: def must(amb,p) amb.choose if !p end require "continuation" class Amb def ...
今天,在这篇文章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 ...
Global site tag (gtag.js) - Google Analytics