巫师的蜕变

导航

 

1、equals与== 

对于 ==,如果作用与基本数据类型(byte、short、char、int、long、float、double、boolean)的变量,则比较的是其存储的“值”是否相等;如果作用与引用类型的变量,则比较其所指向的对象的地址是否相同(即是否同一个对象)。在Java中,String是引用类型。
String的 equals 方法继承自Java中的超级父类Object,Object的equals方法用来比较两个对象的引用是否相等(即是否同一个对象)。但是,String的equals方法不仅是简单地继承,而是进行了重写(Override),用来比较两个String对象所存储的字符序列值是否相等。

 2、对象的创建方式

new 关键字
Class类的 newInstance 方法
Constructor类的 newInstance 方法
String对象的 clone 方法
反序列化机制

但是String对象还有一种特殊的创建方式,就是通过使用 包裹字符序列

 3、String类型的参数是指传递还是引用传递

public static void main(String[] args) {
String str= new String("www.jacun.cn");
change(str);
System.out.println(str);
}

private static void change(String str) {
str= "jacun";
}
输出结果:www.jacun.cn
所谓值传递:在被调方法中改变参数值不会影响主调方法中定义的变量的值
引用传递:如果你将str定义为类的对象,然后在change方法中改变参数里面的值,那么主调方法main中的str变量将跟着发生改变
Java中的String参数是值传递方式。

4、判断Java数组是否包含某个值

5、Java中的重载(Overload)与重写(Override):

重载是指一个类中具有两个或者两个以上,具有相同方法名和不同参数的方法。
重写是指两个具有相同方法名和相同参数的方法(方法签名),其中一个方法在父类中,另一个却存在于子类中。重写的机制使得对于父类中已经提供的方法,子类可以提供实现了特定逻辑的同名同参方法来屏蔽它。

关于重载与重写,我们需要知道的:
对于两个重写的方法而言,JVM会在 运行时 根据对象的实际Class类型,而不是引用该对象的变量的Class类型,来决定实际调用哪个重写的方法。同时,对于多个重载的方法而言,Java编译器会在编译时根据引用该对象的变量的Class类型,来决定调用哪个重载的方法。
面向对象语言的三大特性之一的多态就是依赖于重写机制。
重写方法在运行时做判断;重载方法在编译时做判断。

 

posted on 2017-10-26 14:56  jacunjpg  阅读(140)  评论(0编辑  收藏  举报