java 学习笔记 day02

来源:互联网 发布:centos 6.5手动配置ip 编辑:程序博客网 时间:2024/04/30 21:39

 java.lang中的equals是公开方法..子类可以使用....是继承Object中的equals方法效果等于"==".

我们需要复写equals()..可以完成对象内容的比较不然比较的是地址.比如类A复写equals()..类B继承A

则B.equals()实现是A中的方法而非Object的equals方法.就近原则..

java.lang 中的toString()返回String对象,等同于你输出一个引用变量...即输出对象的地址.

我们可以复写toString().让其打印对象........................................................................................................................

 

String池

2种构造方法......String a="i love java";String b=new String(" i love java");前者只有1对象.....后者有2对象空间.....

这就是对象池的概念.....可以提高效率系统不需要频繁地创建对象和销毁对象

String c="i love java";则a和c指向同一对象空间..a!=b,a!=c.

只要你去NEW就是产生了一个新对象,

String s1="he"+"llo";

String s2="he";

String s3=s2+"llo";则s3!=s1.   S1编译时就能确定值而后者不能确定所以指向不同的对象.

字符串的值不可改变...String s4="ww";s4=s4+"w";是一个新的对象不是在远来的对象上加W.

String s="  ";

for(int i=0;i<10000;i++){

 s=s+i;

}这会产生10000个对象占用大量内存空间..影响程序效率..可以使用StringBuffer代替String...他不会产生新对象...他是一个字符串数组,并且是线程安全的(当一个线程执行时阻塞另一个线程)

replace(int start,int end,String str)

例StringBuffer a="abcd";

a.replace(0,3,"123");    则a输出为123d

------------------------------------------------------------------------------------------------------------------------------------------------------------------

String对象是不能输出地址值的不过可以输出哈希值

String...

int...   等等是可变参数

比如public static void main(String[] args){}

可以写成public static void main(String...  args){}

最大的区别可变参数可以传任意长,而同效果的数组必须传数组名,

好处是我们可以接收你传的参数...

当方法重载参数优先选择固定长度的方法,可变长参数的方法最后调用,

包装类实现基本类型的类包装...    static  int paseInt()返回int;

toString()返回String;

intValue() 返回int;

valueof()返回Integer对象;

 

原创粉丝点击