Thinking in java 札记
龙升九天
深入,精通,其实都是需要自己去思考的。。。
展开
-
Thinking in Java 之String
<br /> 以前总觉得String对象是可以改变的,可是,今天看了Thinking in Java 里面的String章节才知道,原来String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个新的String类对象,而最初的String对象则丝毫未动。<br /> String ,StringBuilder和StringBuffer 的区别:<br /> String 是固定不变的,在进行字符串连接和赋值的时候是新建一个副本,然后再赋值原创 2010-06-01 00:19:00 · 479 阅读 · 0 评论 -
Thinking in Java 之String 格式化
原创 2010-06-01 00:26:00 · 366 阅读 · 0 评论 -
Thinking in Java 之String 正则表达式
<br /> 什么是正则表达式?<br /> 正则表达式是一种强大而灵活的文本处理工具。使用正则表达式,我们能够以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。正则表达式提供了一种完全通用的的方式,能够解决各种字符处理相关的问题:匹配,选择,编辑以及验证。<br /> 一般来说,正则表达式就是一某种方式来描述字符串。<br /> <br /> 正则表达式中,反斜线 “//”原创 2010-06-01 00:40:00 · 520 阅读 · 0 评论 -
Thinking in java 之复用类 final关键字
现在我就给大家介绍一下final关键字相关的一些东西~~~ 1,final数据 在Java中,向编译器告知一块数据是恒定不变的,这类常量必须是基本数据类型,并且以关键字final表示,在对这个常量进行定义的时候,必须对其赋初值。对于基本类型,final是数值恒定不变,而对于对象引用,final使引用恒定不变,引用只是指向的对象在堆中的空间不变,但是对象的自身还是可以修改的。 2,空白final Java允许生成“空白final”,所谓空白final原创 2010-06-01 09:24:00 · 387 阅读 · 0 评论 -
Java中抽象类和接口的区别
<br /> 在Java语言中, abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理转载 2010-06-01 17:52:00 · 273 阅读 · 0 评论 -
垃圾回收器的工作原理是什么?垃圾回收器可以马上回收内存吗?有什么办法通知虚拟机进行垃圾回收?
<br /> 对于垃圾回收器GC而言,当程序员创建对象的时候GC就开始监控这个对象在内存的地址,大小以及使用情况。GC采用有向图的方法记录和管理堆中的所有对象,通过这种方式来确定哪些对象是“可达的“,哪些对象是”不可达的“。当确定了”不可达的“对象以后,就将该对象所占有的空间回收。<br /> 可以马上回收内存。<br /> 可以手动执行System.gc(),通知java虚拟机进行垃圾回收。原创 2010-06-01 17:21:00 · 3690 阅读 · 0 评论 -
Java中的存储问题
程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的呢?对这些方面的了解会对你有很大帮助,有五个不同的地方可以存储数据: 1)存储器。这是最快的存储区,因为它位于不同于其他存储区的地方---处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能再程序中感觉到寄存器存在的任何迹象。 2)堆栈。位于通用RAM(随机访问寄存器)中,但通过堆栈指针可以从处理器那里获得直接支持,对战指针若向下移动,则分配新的内存;若向上移动则释放那些内存。这是一种快速有效的原创 2010-06-04 16:21:00 · 543 阅读 · 0 评论 -
Thinking in Java 之移位操作符
<br /> 移位操作符操作的对象也是二进制的“位”,移位操作符只可用来处理整数类型(基本类型的一种)。<br /> 左移位操作符(<<)能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0)。<br /> “有符号”右移位操作符(>>)则按照右侧指定的位数将操作符左边的操作数向右移动,<br /> “有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入0;若符号为负,则在高位插入1。<br /> Java中增加了一种“无符号”原创 2010-06-04 00:48:00 · 476 阅读 · 0 评论 -
用引用操纵对象
<br /> Java中一切都被视为对象,因此可采用单一固定的方法。尽管一切都看做对象,但操纵的标识符是实际上是对象的一个引用(reference),当你拥有一个引用,并不一定需要有一个对象与它关联,因此,如果想操纵一个词或句子,则可创建一个String引用,String s;<br /> 但这里创建的只是引用,并不是对象。如果此时想s发送一个消息,就会返回一个运行时错误。这是因为此时s实际上是没有与任何事物相关联。因此,一种安全的做法是:创建一个引用的同时便进行初始化:String s原创 2010-06-04 16:02:00 · 468 阅读 · 0 评论