zoukankan      html  css  js  c++  java
  • 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. 未完待续,挖个大坑慢慢填吧~

    笔者只是初学者,开此博客的初衷是为了给自己的学习过程留一个痕迹。所以您可能发现笔者措辞不严谨、逻辑不合理,甚至代码有错误、结论很偏颇等等。笔者感激各位的讨论和指正,并在此不胜感激!拜谢!欢迎加QQ群讨论:852410026
  • 相关阅读:
    现在的女生真会装...
    C语言操作注册表 写入 读取信息
    C++ 简单字符串加解密(转载)
    C++ 操作XML文件 使用MSXML.DLL
    C++ vector容器find查询函数
    C++ 共享内存 函数封装
    获取屏幕像素点···
    MFC像窗体坐标位置发送 点击消息
    mfc对话询问窗体
    MFC去掉标题栏
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/5306470.html
Copyright © 2011-2022 走看看