`

问号表达式和if-else方式的对比

 
阅读更多
某次听数字图像的老师说到关于ifelse其实也是蛮消耗资源的,关键就在于,我们的编译器在编译的时候要去维护一张table。而问号表达式其实也可以和ifelse做替换的。无聊之下就想来瞧瞧。效率对比
有啥缺陷,请指正。

//标准的ifelse方式
public static long standardIfElseTest(long L) {
		if (L < 10)
			return L * 100;
		else
			return L * 10;
	}

//问号表达式
public static long ternaryIfElseTest(long L) {
		return L < 10 ? L * 100 : L * 10;
	}

//main方式测试一下
	public static void main(String[] args) {
		long start;
		long end;
		// 计算第一个方法运行时间:标准的if、else方式
		start = System.currentTimeMillis();
		System.out.println(start);
		for (long i = 0; i < 1000000000; i++) {
			standardIfElseTest(i);
		}
		end = System.currentTimeMillis();
		System.out.println("standard if else:" + ((long) end - start));
		// 重新计算第二个方法时间:问号表达式
		start = System.currentTimeMillis();
		System.out.println(start);
		for (long i = 0; i < 1000000000; i++) {
			ternaryIfElseTest(i);
		}
		end = System.currentTimeMillis();
		System.out.println("question:" + ((long) end - start));
	}

运行数据:
1285046936531
standard if else:7625
1285046944156
question:6594
两个方法的执行其实是会多少变化的。些微变化取决于运行时候和内存的情况。
不过standard和question的大小还是明显在1000以上的差异,也就是1s,second

分享到:
评论

相关推荐

    java中的问号表达式视频教程

    6. **性能考量**:分析问号表达式在性能上的优劣,以及它与if-else语句的执行效率对比。 7. **最佳实践**:提供编写清晰、易读的问号表达式的建议,以及避免常见陷阱的方法。 视频文字.txt文件可能包含了教程的...

    if语句的优化

    它由条件表达式、问号(`?`)、冒号(`:`)和两个操作数组成。例如: ```javascript if (foo) { bar(); } else { baz(); } ``` 可以简化为: ```javascript foo ? bar() : baz(); ``` 同样的,对于包含返回值的情况...

    golang中为什么不存在三元运算符详解

    因此,他们选择不引入三元运算符,而是鼓励开发者使用if-else语句,尽管这种方式的代码行数更多,但逻辑清晰,更易于理解和维护。 例如,考虑以下使用三元运算符的代码: ```go val := (expr) ? "trueValue" : ...

    正则表达式之道

    在Java中,正则表达式主要通过`java.util.regex`包中的类来实现,主要包括`Pattern`和`Matcher`两个核心类: 1. **`Pattern`**:用于编译正则表达式。 2. **`Matcher`**:用于执行匹配操作。 ##### 示例代码 ```...

    正则表达式与Internet操作

    - **正则表达式限定符**:如星号(*)、加号(+)和问号(?),分别代表零次或多次、一次或多次以及零次或一次。 - **匹配字符集**:预定义的字符集,如方括号([])内的字符集,匹配其中任何一个字符。 - **分组构造*...

    java常用正则表达式.txt

    在Java编程语言中,正则表达式是一种强大的文本处理工具,用于模式匹配、搜索和替换字符串中的特定模式。本文将深入解析《java常用正则表达式》文档中提及的几个关键正则表达式,帮助读者理解和掌握这些常用的模式,...

    正则表达式详解30分钟入门

    通过以上示例,可以看到Jakarta-ORO库提供了一种高效的方式来处理正则表达式相关的任务。无论是简单的字符串匹配还是复杂的替换操作,Jakarta-ORO都能胜任。对于Java开发者而言,掌握Jakarta-ORO的使用方法是非常...

    使用正则表达式,控制输入

    正则表达式由特殊字符和普通字符组成,用于定义一个字符串模式。特殊字符,也称为元字符,包括点号(.)、星号(*)、加号(+)、问号(?)、花括号({})、方括号([])、竖线(|)等,它们分别代表不同的匹配规则...

    Regular Expressions

    - 在正则表达式中使用条件表达式(If-Then-Else Conditionals)。 - 特殊字符类,如XML模式字符类。 - POSIX标准的括号表达式。 - 向正则表达式添加注释,提高代码的可读性。 最后,正则表达式的工具和语言支持部分...

    C#利用正则表达式验证网址

    在IT行业中,编程语言C#是广泛用于开发各种应用程序,包括Web应用。在构建Web应用时,验证用户输入的数据是非常重要...通过不断学习和实践,你可以掌握更多关于正则表达式和C#验证技巧,从而更好地服务于你的项目开发。

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    正则表达式是编程语言中用于模式匹配的强大工具,尤其在数据处理和文本搜索替换时极为有用。Python作为一门广泛使用的编程语言,内置了强大的正则表达式支持。本教程旨在帮助初学者在30分钟内对Python中的正则表达式...

    javascript的正则表达式

    在JavaScript中,可以通过两种方式创建正则表达式:字面量表示法和构造函数表示法。例如: ```javascript // 字面量表示法 var reg = /pattern/flags; // 构造函数表示法 var reg = new RegExp('pattern', 'flags'...

    正则表达式解析网址Java代码示例

    在Java编程语言中,正则表达式是通过`java.util.regex`包提供的类来实现的,如`Pattern`和`Matcher`。下面我们将深入探讨如何使用Java中的正则表达式来解析网址。 首先,让我们理解一个基本的网址(URL)的结构。...

    正则表达式入门经典

    正则表达式是一种特殊的字符序列,用于以字符串的形式描述一定的规则,并通过该规则对字符串进行匹配和查找。它是计算机科学中用于文本处理的一种工具,广泛应用于编程、文本编辑、搜索引擎等领域。正则表达式入门...

    shell自研基础学习笔记

    if语句用于单分支判断,if-else用于双分支,if-elif-else用于多分支。[ ]和[[ ]]在条件测试中有不同特性,[[ ]]支持更复杂的逻辑判断。exit命令用于结束当前脚本或函数。 五、循环语句 for循环适用于遍历列表,...

    第二、三章java语法知识复习练习 (2).docx

    非法标识符包括关键词(如 `interface`)和问号 `?`。 4. **基本类型**:Java有八种基本类型,包括整型(如 `int`)、浮点型(如 `float` 和 `double`)、字符型 `char` 和布尔型 `boolean`。 5. **变量定义**:...

    简单的通用表达式求10乘阶示例

    您可能感兴趣的文章:python基础教程之lambda表达式使用方法python正则表达式去掉数字中的逗号(python正则匹配逗号)python正则表达式判断字符串是否是全部小写示例python实现问号表达式(?)的方法python正则表达式...

    Java中条件运算符.pdf

    总的来说,Java中的条件运算符提供了一种高效且紧凑的方式来根据条件选择执行不同的表达式,它可以替代if-else语句,使得代码更加紧凑,同时在某些情况下能够提高程序执行的效率。然而,虽然它有助于代码的简洁性,...

Global site tag (gtag.js) - Google Analytics