经过了近三个月的Java学习,让我对Java从以前的什么都看不懂,到现在的循序渐进,现在我还要多上网查一些资料来学习。
getClass()getClass() 返回此 Object 的运行时该对象的类. 该方法返回一个Class对象
例如:
class Father
{
}
class Son extends Father
{
}
public class Test22
{
public static void main(String[] args)
{
Father father = new Son();
System.out.println(father.getClass());//返回的是运行时对象的类,故返回Son
}
}
运行结果:
以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
class Father
{
}
class Son extends Father
{
}
public class Test22
{
public static void main(String[] args)
{
Father father = new Son();
Class a=father.getClass();//getClass返回一个Class对象
System.out.println(a.getName());//返回Class对象a的类名
}
}
编译时为Father类型,运行时为Son类型,所以getName返回的是Son类名
StringBuilderStringBuilder是一个可变的字符串,可变是它的值可变,前面赋的值会被后面赋的值取代。
与String的区别
String的值不可变,StringBuilder可变,String每赋值,其地址都会改变,
而StringBuilder赋值不改变地址。
package com.Factory;
public class Test_Class {
public static void main(String[] args)
{
String a ="111";
String b="111";
String f="222";
System.out.println(a==b);//a和b的地址相同
System.out.println(b==f);//b和f的地址不同
b="222";//改变b的值
System.out.println(b==f);//b和f的地址相同了
StringBuilder c =new StringBuilder(10);
StringBuilder d=new StringBuilder(10);
c.append("aaa");
d.append("aaa");//append返回d的地址
StringBuilder e =c;//c的地址赋给e
System.out.println(c==d);//c和d不是相同的对象,值相同而地址不同
System.out.println(e==c);//e和c的地址相同
c.append("bbb");
System.out.println(e==c);//说明StringBuilder在修改时不改变地址
}
}
运行结果:



