`
bugyun
  • 浏览: 556901 次
社区版块
存档分类
最新评论

Java 非null 判断性能对比

    博客分类:
  • Java
 
阅读更多

插入代码几次,显示格式老是太乱。

 

 

package cn.com.bugyun.tmp;

public class Test {

    String s = "";
    long n = 1000000000;

    private void function1() {
        long startTime = System.currentTimeMillis();
        for (long i = 0; i < n; i++) {
            if (s == null || s.equals(""));
        }
        long endTime = System.currentTimeMillis();
        System.out.println("function 1 use time: " + (endTime - startTime)
                + "ms");
    }

    private void function2() {
        long startTime = System.currentTimeMillis();
        for (long i = 0; i < n; i++) {
            if (s == null || s.length() <= 0);
        }
        long endTime = System.currentTimeMillis();
        System.out.println("function 2 use time: " + (endTime - startTime)
                + "ms");
    }

    private void function3() {
        long startTime = System.currentTimeMillis();
        for (long i = 0; i < n; i++) {
            if (s == null || s.isEmpty());
        }
        long endTime = System.currentTimeMillis();
        System.out.println("function 3 use time: " + (endTime - startTime)
                + "ms");
    }

    private void function4() {
        long startTime = System.currentTimeMillis();
        for (long i = 0; i < n; i++) {
            if (s == null || s == "");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("function 4 use time: " + (endTime - startTime)
                + "ms");
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.function1();
        test.function2();
        test.function3();
        test.function4();
    }
}

 

 

显示结果如下:

 

  • 大小: 177.6 KB
分享到:
评论

相关推荐

    java BigDecimal操作

    BigDecimal还提供了比较操作,如`compareTo()`方法,用于比较两个BigDecimal值的大小。返回值为负数表示第一个小于第二个,零表示相等,正数表示第一个大于第二个。 此外,`scale()`和`precision()`方法分别用于...

    scala java 简体、繁体互转换,判断是否为简体、繁体

    这里我们将详细探讨如何使用Scala和Java来实现简体与繁体中文的互换以及判断文字是简体还是繁体。 首先,让我们了解简体和繁体中文的区别。简体中文是20世纪50年代以来在中国大陆广泛使用的标准化汉字形式,特点是...

    JAVA判断空值方法原理解析

    需要注意的是,在进行空值判断时,必须先判断 `s == null`,否则可能抛出 `java.lang.NullPointerException`。 3. 示例程序 以下是一个示例程序,演示了上述四种方法: ```java public class String_Demo01 { ...

    【JS】Java 判断字符串是否为空的三种方法

    在Java编程中,经常需要判断字符串是否为空(null 或者空字符串)。为了确保程序的健壮性和避免NullPointerException等异常,掌握正确的字符串判断方法至关重要。本文将详细介绍三种常用的判断字符串是否为空的方法...

    java 集合 分析比较

    ### Java集合分析与比较 #### 一、Java集合体系概览 Java集合框架(Java Collection Framework)是Java标准库中的一个重要组成部分,它提供了一系列用于存储和操作数据的接口及实现类。通过合理选择不同的集合类型...

    提高java性能.pdf

    Java性能优化是一个重要的主题,尤其是在开发大型企业级应用时,性能优化可以显著提升系统的响应速度和资源利用率。本文将深入探讨如何通过优化单例模式来提高Java代码的性能。 单例模式是一种常用的软件设计模式,...

    Java最新面试题2023,Java八股文2023

    - 区分0和null:Integer对象的默认值是null,而int的默认值是0,这在判断是否初始化时很重要。 4. **标识符命名规则** - 标识符可以包含英文字母、数字、$和_,但不能以数字开头,也不能是Java的关键字。 - 类名...

    java判断字符串String是否为空问题浅析

    在Java编程语言中,判断字符串`String`是否为空是一个常见的需求。这通常涉及到对字符串对象的检查,确保它们既不是`null`也不是空字符串。在本文中,我们将深入探讨几种不同的方法来完成这个任务,并分析它们的效率...

    java 解析 tar gz文件 两种方法

    在Java编程中,处理tar.gz文件常常用于归档和压缩大量数据。tar.gz文件是由tar命令创建的归档文件,然后通过gzip工具进行压缩。在Java中解析这种类型的文件,通常需要两个步骤:首先解压gzip,然后解包tar。这里我们...

    java练习题--容器使用练习

    5. 容器操作比较:对比ArrayList和LinkedList的性能差异,理解何时应该使用HashSet而不是List,何时应选择HashMap而不是其他类型的集合。 6. 遍历机制:熟悉foreach循环(增强for循环)和迭代器两种遍历容器的方法...

    Java 基础核心总结 +经典算法大全.rar

    null 只是-种特殊的值使用 Null-Safe 方法null 判断 关于思维导图 Java.IO Java.lang Java.math Java.net Java 基础核心总结 V2.0 IO 传统的 BIO BIO NIO 和 AIO 的区别什么是流 流的分类 节点流和处理流 Java ...

    Java实现二叉排序树

    构造函数用于初始化空树,插入方法遵循二叉排序树的规则来添加新节点,查找方法通过递归比较键值来找到目标节点,删除方法则涉及到更复杂的情况,可能需要调整树的结构以保持二叉排序树的性质。 ```java class ...

    一套比较基础的java 笔试题目

    - **null值和null键**:`HashMap` 允许一个null键和多个null值,而 `Hashtable` 不允许null键和null值。 - **性能**:由于 `Hashtable` 使用了同步机制,其性能通常低于 `HashMap`。 - **应用场景**:对于不需要...

    java 8 api

    `Optional`对象可以包含或不包含非null值,通过`isPresent()`判断是否存在值,`get()`获取值,而`orElse()`提供默认值,这样可以避免显式的null检查。 六、接口的静态方法 除了默认方法,Java 8还允许接口定义静态...

    Java_重写equals()和hashCode()

    5. **非空性**:对于任何非null的引用值x,x.equals(null)应该返回false。 接下来是 `hashCode()` 方法,它用于返回对象的一个整数值,这个值可以作为对象在哈希表中的索引。当两个对象根据 `equals()` 方法判断...

    java面试题集锦

    - **性能对比**:`StringBuilder` &gt; `StringBuffer` &gt; `String`(频繁修改时) - **线程安全性**:`StringBuffer` 支持多线程操作,而 `StringBuilder` 不支持。 --- **3. 字符串分割函数** - **知识点概述**:...

    java中级面试题(自己汇总)

    * HashSet如何元素不重复:先用HashCode判断地址是否相等,如相等再用equals方法比较。 HashMap、HashTable、ConcurrentHashMap * HashMap线程不安全的,HashTable线程安全的任一时间只有一个线程能写Hashtable,...

    java基础重点难点

    **性能对比:** - 当需要频繁地读取或写入元素时,`ArrayList`由于没有同步开销,通常具有更高的性能。 - 对于需要频繁修改且需要保证线程安全的场景,`Vector`更合适,但性能会略逊一筹。 **默认扩容行为:** - `...

    java 删除某行和读写txt文件

    为了提高性能和易用性,通常会在这个`FileReader`的基础上创建一个`BufferedReader`对象,这样可以逐行读取文件内容。 ```java FileReader fr = new FileReader("./a.txt"); BufferedReader br = new ...

Global site tag (gtag.js) - Google Analytics