thinking in java学习笔记(二)

简单的浏览了下前四章,收获还是有的。

1、在方法中 return语句可以立即中断方法的执行。

2、注释文档,

将代码同文档“链接”起来。javadoc便是用于提取注释的工具,一般为public、protected成员进行文档注释。

//: ThinkingInJava/WhileTest.java

/** The Thinking in java example program.
 * Test while.
 * @author dai
 * @version 0.0
 */
public class WhileTest {
	/**A method return true or false */
	public static boolean condition(){
		boolean result = Math.random() < 0.99;
		System.out.println(result + ",");
		return result;
	}
	/**
	 * Entry point to class && application.
	 * @param args array of string arguments
	 * @throws exceptions No exceptions thrown
	 */
	public static void main(String[] args) {
		while(condition()){
			System.out.println("Inside 'while'");
		}
		System.out.println("Exited 'while'");
	}

} /* Output:
	...
*///:~
用javadoc提取此注释文档后


很有趣!

3、javaSE的经典问题---对象的等价性

<span style="white-space:pre">		</span>String str0 = new String("a");
		String str1 = new String("a");
		if(str0 == str1){
			System.out.println("str0 == str1");
		}
		if(str0.equals(str1)){
			System.out.println("str0.equals(str1)");
		}
尽管两个对象的内容相同,但是对象的引用是不同的。而关系操作符 == 比较的就是对象的引用。但是让我困解的是既然上例中equals方法比较的是两个对象的实际内容。为什么在新建类时,比较这个类的两个对象(具有相同属性值)时又是false呢?怎么是由于equals方法的默认行为是比较引用呢,这不就和上面的例子冲突了吗?在看了equals源码后(String类)有了大致的理解;

public boolean equals(Object anObject) {
	if (this == anObject) {
	    return true;
	}
	if (anObject instanceof String) {
	    String anotherString = (String)anObject;
	    int n = count;
	    if (n == anotherString.count) {
		char v1[] = value;
		char v2[] = anotherString.value;
		int i = offset;
		int j = anotherString.offset;
		while (n-- != 0) {
		    if (v1[i++] != v2[j++])
			return false;
		}
		return true;
	    }
	}
	return false;
    }
每一种非基本类型都有他对应的equals方法!
针对上面的String类的equals我的理解是:

在初始化自己类的两个具有相同属性(String)的对象后,第二个if语句我们就用不着了,而第一个if语句仍是用的关系操作符 == ,比较的还是对象的应用。故而返回的仍是false,也就是默认的行为还是比较引用。

4、java中不允许我们将一个数字作为布尔值直接使用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值