zoukankan      html  css  js  c++  java
  • Java的常用对象①②

    Java的常用对象①

    Java的常用对象有很多,这里只对lang包中常用的Object,Date(Calendar,DateFormat,Math),System,Runtime进行介绍。
    ㈠Object是类层次结构的根类。每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的方法。
    在Object中equals(Object obj),hashCode(),toString()是每个类常用到的,getClass()被用来反射,finalize()是与垃圾回收有关的方法。

    其余的notify(),notifyAll(),wait(),wait(long timeout),wait(long timeout, int nanos)都是与线程相关。

    最后还有clone()方法,其作用是创建并返回此对象的一个副本。
    ㈡Date类表示特定的瞬间,精确到毫秒。Date中有很多方法都是已经过时的,事实上,Java建议Date被两个类来替代:从JDK1.1开始,应该使用Calendar类实现日期和时间字段之间转换,使用DateFormat类来格式化和分析日期字符串。
    也就是说,关于日期本身的操作已经被Calendar替代,而对日期的格式化,按照原来的习惯,可以继续使用DateFormat来处理。
    Calendar是一个抽象类,应该先调用getInstance()进行实例化。这里多做联系即可。同样的还有Math()类。
    ㈢System是与本地运行环境相关的类,其中常用的有arraycopy()数组拷贝,currentTimeMillis()返回以毫秒为单位的当前时间,exit(int status)终止当前正在运行的 Java 虚拟机以及可以主动调用垃圾回收器的gc()方法。
    ㈣Runtime:每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。
    可以通过getRuntime方法获取当前运行时。 应用程序不能创建自己的 Runtime 类实例。
    这里需要知道exec()方法和gc()方法即可。gc()方法也是主动调用运行垃圾回收器。事实上,System.gc()方法本省就是调用此方法。
    只是写法更简单了而已。
    集体源码如下:
    public static void gc() {
     Runtime.getRuntime().gc();
    }

    Java的常用对象②

    String,StringBuffer,StringBuilder。
    这里只讨论三者的效率的区别,而不去探究其在内存中的表现形式。关于内存的分析,请参考《Java内存与包装类》一节。
    首先,StringBuffer和StringBuilder的区别在于是否线程安全。二者的关系很像HashTable和HashMap的区别。
    StringBuffer同样的是早时间就要的类,而StringBuilder在时间相对较晚。
    在能保证线程安全的情况下,优先使用StringBuilder的效率会更高。
    而String类则很特殊了。这里只讨论一种情况。
    String str1 = "a" + "b" + "c";
    StringBuffer str2 = new StringBuffer("a").append("b").append("c");
    二者的效率哪个更高?答案是str1。
    原因要从Java的编译和运行讲起,对于常量,编译时就直接存储它们的字面值而不是它们的引用。
    也就是说在编译时就直接讲它们连接的结果提取出来变成了"abc",该语句在class文件中就相当于String str1 = "abcde"。
    然后对于变量就不是这样了。比如:
    String s2 = "a";
    String s3 = "b";
    String s4 = "c";
    String str1 = s2 +s3 + s4;
    这样的结果,则str2效率更高。
    可以说对多字符串的绝大多数的操作StringBuffer都是效率更高的,这是上面这一例子确实例外。

  • 相关阅读:
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    关于elisp中一些含有'p'的符号
    how elisp works
    elisp 错误提示
  • 原文地址:https://www.cnblogs.com/shuaixianbohou/p/3939632.html
Copyright © 2011-2022 走看看