Summaries On Java

@1:== 和 equals():
==用于比较引用和比较基本数据类型时具有不同的功能:
  比较基本数据类型:如果两个值相同,则结果为true.
  比较引用:如果引用指向内存中的同一对象,结果为true(如果地址相同则结果为true).
equals()默认情况下比较的也是地址,但有些类覆盖了Object类的equals()方法,比较规则为:
如果两个对象的类型一致,并且内容一致,则返回true; 这些类有:
java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)

之所以提供equals()方法,是因为==运算符不允许我们进行覆写,而equals()方法却可以,这样我们就可以自定义比较方法。

 代码示例:

import java.util.*;

public class equalsDemo {
    public static void main (String [] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        if(str == "lxw"){
            System.out.println(str + " == \"lxw\"");
        }
        else if(str.equals("lxw")){
            System.out.println(str + ".equals(\"lxw\")");
        }
        String str1 = "lxw";
        String str2 = "lxw";
        System.out.println("str1 == str2 : " + (str1 == str2));
        System.out.println("str1.equals(str2) : " + str1.equals(str2));

        String str3 = new String("lxw");
        String str4 = new String("lxw");
        System.out.println("str3 == str4 : " + (str3 == str4));
        System.out.println("str3.equals(str4) : " + str3.equals(str4));
    }
}

Output:

  lxw

  lxw.equals("lxw")  

  tr1 == str2 : true

  str1.equals(str2) : true
  str3 == str4 : false

  str3.equals(str4) : true

  注意比较str1 == str2和str3 == str4的结果,并理解两者的不同

@2:Java的参数传递感觉本质上和Python是一样的,可以参考Python中的参数传递。

1、Java函数调用时,参数传递方式为值传递;

2、当该参数类型为对象(Object)时,则所传递的值为对象的引用(也可理解为地址)。

@3:Java args:

lxw JNP$ java argsDemo 1 ,     ,     2 3 , 
6
args[0]: 1
args[1]: ,
args[2]: ,
args[3]: 2
args[4]: 3
args[5]: ,

@4:String, StringBuilder, StringBuffer 内有关于三种类型字符串的常见面试题【确实非常经典】

String、StringBuilder、StringBuffer三者的执行效率:StringBuilder > StringBuffer > String
当字符串相加操作或者改动较少的情况下,建议使用 String str=”hello”这种形式;

当字符串相加操作较多的情况下,建议使用StringBuilder,如果采用了多线程,则使用StringBuffer。

@5: 对final变量的访问在编译期间都会直接被替代为真实的值。

@6:

posted @ 2014-06-22 10:38  XiaoweiLiu  阅读(235)  评论(0编辑  收藏  举报