JAVA知识点

Posted 柚子苹果果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA知识点相关的知识,希望对你有一定的参考价值。

1. String和StringBuffer

        (1)String是不可变类,所以当执行如下代码的时候:

String str = ‘abc‘;
str = str + ‘def‘;

        首先,‘abc’和‘def’是两个单独的对象,编译的时候会拜放到常量池中。然后执行String str = ‘abc’将str‘abc’指向这个常量,然后str = str + ‘def’会重新创建一个‘abcdef’的对象,并将str指向这个对象。所以以上的代码中,我们共创建了3个对象。

        (2)StringBuffer是可变类,经常被运算的字符串对象可以被定义为StringBuffer,但是StringBuffer没有实现equals方法。

StringBuffer stringBuffer1 = new StringBuffer("abc");
StringBuffer stringBuffer2 = new StringBuffer("abc");        
System.out.println(stringBuffer1.equals(stringBuffer2));

        上面的代码返回的是false。StringBuffer操作字符串可以用append和delete方法。

        (3)String是final类,不可以继承。

        (4)String str = “abc”和 String str = new String(“abc”)的区别

        第一种:str和常量池中的“abc”是同一个对象。

        第二种:str和常量池中的“abc”是不同的对象。

2. try catch finally

        (1)如果try中有一个return,那么finally中的语句执行不执行?什么时候执行?

        执行!先将运算结果return给调用函数,然后在执行finally中的语句,然后再执行调用函数的接下来代码。

        (2) final、finally、finalize:

        final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

        finally是异常处理语句结构的一部分,表示总是执行。

        finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用。

3. HashTable和HashMap

        (1)HashMap允许空的键名和键值,但是HashTable不可以。

        (2)HashTable是线程同步安全的,HashMap不是。

4. 未完待续,挖个大坑慢慢填吧~

以上是关于JAVA知识点的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中trycatchfinally带return的执行顺序总结

Java 语言关键字:throwsthrow trycatchfinally 分别如何使用?

异常和trycatchfinally的简记

trycatchfinally 执行顺序

2020 年 Android 面试高频知识点小结 V1.0

Java异常实践事项