java的易错点_java中易错点

1、A instanceof  B{这是没有好好利用java多态的表现}

java中的二元操作符,测试A对象是否是B类的实例;

返回值:boolean类型

2、“==”与 “equals”的区别:

==:是比较两个变量的值,并不涉及两个对象内容的比较;

equals:比较两个对象的内容是否相同,实质比较的是:指向对象所在的内存地址;

package fdx.com.oneproblem;

public class OneTest {

public static void main(String[] args){

//==、equals的区别:

String str = new String("123");

String b = new String("123");

if(str == b){

System.out.println("==:"+true);

}else {

System.out.println("==:"+false);

}

if(str.equals(b)){

System.out.print("equals:"+true);

}else {

System.out.println("equals:"+false);

}

}

}

得到的结果:

==:false

equals:true

3、final关键字【修饰符】

使得修饰的变量“不变”,当用来修饰对象时,就会是对象的引用不变,{引用本身不变、引用指向的对象不变}

4、声明了什么?

String str = "Hello World";

描述:声明了一个String类型的对象引用变量str,内容是“Hello World”;而不是简单的描述:为声明了一个对象

5、str所指向的对象是否改变了呢?

比如:String str = “Hello”;

str = str + "World";

描述:str原先指向一个String对象,内容是"Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,str不指向原来那个对象了,而指向了另一个String对象,内容为"Hello world",原来那个对象还存在于内存之中,只是str这个引用变量不再指向它(Hello)了;

这样子的话会出现这样子的问题结论:【使用String来表示时不时发生变化的字符串的话,会造成内存的开销】如果经常对字符串进行各种各样的修改,或不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为String对象建立之后不能再改变,所以对于每一个不同的字符串,都需要一个String对象来表示。

如果遇到随时会变的字符串,那么需要使用StringBuffer来声明字符串,因为StringBuffer允许修改,而且不是每个不同的字符串都要生成一个新的对象。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值