- 浏览: 425487 次
最新评论
-
u010297957:
我觉得不严谨,可以看我这篇:http://blog.csdn. ...
java内存分配机制 -
yuvyuvyuv:
Oracle中有exists关键字...
在我眼中的Oracle世界 -
903293718:
Oracle中没有exists()函数?
在我眼中的Oracle世界 -
hngmduyi:
...
在我眼中的Oracle世界 -
308202251:
非常不错
最近的读书计划
文章列表
通过这几天对一个内存溢出程序的监控,学习了程序运行时对内存的使用机制,在这里和大家分享下。
Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM ...
需要增加注释的地方:类、接口、构造函数、方法和域声明,
方法注释的内容:
调用该方法的前提条件;
调用后的后续处理(如捕获异常);
副作用(如方法启动线程后带来的安全性);
参数@param Describe;
返回@return Describe;
异常@throws if.....;
注意:注释中可以适用<p><code><tt>等HTML标签,但>,<等标签需要转义。
- 2012-05-07 13:03
- 浏览 764
- 评论(0)
让我们先举坏例子:
返回null的情况
private final List<Cheese> cheesesInStock = ...;
public Cheese[] getCheeses() {
if(cheesesInStock.size() == 0)
return null;
...
}
对于上面的例子,客户端程序处理时如下:
Cheese[] cheeses = shop.getCheeses();
if(Cheeses != null &&
Arrays.asList(cheese ...
- 2012-05-07 13:02
- 浏览 1614
- 评论(0)
1.可变参数的机制是通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法:
static int sum(int... args){}
2.int[] digits = {3,2,1,6,4,5,8}
Arrays.asList(digits) 打印结果为[Ljava.lang.int:@3e25a5是无意义的
如果Integer[] digits= {3,2,1,6,4,5,8} 打印结果为[3,2,1,6,4,5,8]
只在对象引用类型的数组上才有用,对基本类型的数组不行。
3.在重性能的情况下,使用可变参数机制要特别小心。可变 ...
- 2012-05-07 12:45
- 浏览 1185
- 评论(0)
1.对于重载方法(Overload)的选择是静态的,方法在编译时做出决定的;覆盖方法(Override)的选择是动态的,方法在运行时做出决定。所以调用重载方法只会选择编译好的一个情况(这种情况极易出错),调用覆盖方法则会根据调用的对象动态决定。
2.当一个子类包含的方法声明与其父类中的方法声明具有同样签名时,方法就被覆盖了。
3.final方法不能被子类覆盖(@Override);
static方法不能被子类覆盖(@Override),如果子类出现与父类相同签名的方法只是相当于新建一个方法。
4.对于多个具有相同参数数目的方法,应该尽量避免重载方法;如果无法避免,如:构造函数,至少应该避 ...
- 2012-05-07 12:44
- 浏览 719
- 评论(0)
1.方法的名称要遵循标准的命名习惯(详见56条);
2.不要过于追求提供便利的方法,方法太多会使类难以学习、使用、测试、维护;
3.避免过长的参数列表:把一个方法分解成多个方法;创建辅助类(如:DO),用来保存参数的分组;从对象构造到方法调用都采用Builder模式;
4.对于参数类型要优先使用接口而不是类;
5.对于boolean参数,要优先使用两个元素的枚举类型。
- 2012-05-07 12:41
- 浏览 725
- 评论(0)
虽然java程序是一门安全的语言(safe language)。但即使在安全语言中,如果不采取一些措施,还是无法使自己与其他的类隔离开。假设类的客户会尽一切手段来破坏这个类的约束条件,在这样的前提下,你必须保护性地设计程序。所以说,从安全的角度考虑,应该设计面对客户的不良行为时仍能保持健壮性的类,无论系统的其它部分发生什么事情,这些类的约束都可以保持为真。
为保护实例的内部信息免受攻击,对构造函数的每个可变参数进行保护性拷贝是必要的。并且使用拷贝之后的对象作为实例的组件,而不使用原始对象。例如,写了雇员这个类。我自己用的时候对其属性做一些改动稍后会被我的程序提交到后台数据库。但是前端的人员和我 ...
- 2012-05-07 12:40
- 浏览 975
- 评论(0)
提示:本大全每半月更新一次,请持续保持关注!谢谢!索取网址:www.itcast.cn从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说 ...
Java应用程序的开发周期包括编译、下载、 解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码--字节码。这一编译过程同C/C++的编译有些不同。
当C编译器编译生成一 个对象的代码时,该代码是为在【某一特 ...
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由系统释放。4、文字常量区 —常量字符串就是放在这里的。 ...
对callback,暂时的理解是:A对象调用B接口的b方法,b方法又反过来调用A对象中的c方法。
A调用B接口时把自身给B接口,至于怎么处理,由B的实现类去做,不关A的事。
写了个例子,BadBoy,这类坏孩子喜欢打人,有个方法叫hit,hit只能对实现了Hitable的对象执行。
这时候,BadBoy已经做完了自己的事,也就是已经打完人了,然后挨打的人肯定知道是谁打了自己,
至于挨打的人是什么反应,BadBoy是无法控制的。挨打的人有可能哭有可能跑有可能报警。
第二种理解:
【1】必须有一个接口,声明实现子类必须实现的方法,比如:
public in ...
1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。
另外关于URI,URL, ...
经典一:一切皆为虚幻。
经典二:不可说。
经典三:色即是空,空即是色。
经典四:人生在世如身处荆棘之中,心不动,人不妄动,不动则不伤;如心动则人妄动,伤其身痛其骨,于是体会到世间诸般痛苦。
经典五:一花一世界,一叶一如来。
经典六:前生500次的回眸才换得今生的一次擦肩而过。
经典七:大悲无泪,大悟无言,大笑无声。
经典八:苦海无边,回头是岸。放下屠刀,立地成佛。
经典九:菩提本无树,明镜亦非台,原本无一物,何处染尘埃。
经典十:我不入地狱,谁入地狱。
佛家禅语:布袋和尚:我有一布袋,虚空无挂碍。展开遍十方,入时观自在。一钵千家饭,孤身万里游。睹人青眼少,问路白云头。
佛家 ...
- 2012-05-04 19:57
- 浏览 832
- 评论(0)
绝大多数方法和构造函数都对传入的参数有某些限制,如索引必须是非负数,对象引用不能是null,等等。如果一个无效的参数传入,应该首先对参数进行检查,如果有问题方法应很快失败,并清楚地抛出一个适当的异常(exception)指明错误的原因。同时应该使用Javadoc的@throws标签来说明。
检查参数有效性的方法和形式可能因具体情况而异。这里要介绍一个“新”手段——assert(断言)。assert是Java1.4之后引入的为人热切期盼的一项新功能。您可以将该功能看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式的值为真。例如,程序员可能会在程序 ...
- 2012-05-04 13:27
- 浏览 677
- 评论(0)