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的执行顺序总结