gpt4 book ai didi

java - java中什么时候使用OR,什么时候使用AND

转载 作者:行者123 更新时间:2023-12-01 07:47:10 25 4
gpt4 key购买 nike

我正在纠正一些顺从和多余的空结果,我只是好奇何时有人应该在 if 语句中使用 AND 或 OR。

其中一个发现是在这个 if 语句中

String firstName = db.getString("FIRST_NAME");
if(!((firstName == null) || firstName.equals(""))){
...
}

使用 OR 或 AND AND (if(firstName != null && !firstName.equals(""))){}) 是否更高效?或者这通常只是个人喜好?

如果有人能指出该行如何取消引用,那就太好了

最佳答案

这是一项微优化,不会影响您的代码性能。由于 JIT,JVM 可能会在运行时对您的代码进行各种优化,例如内联该方法。您应该更喜欢您认为更具可读性的内容,可以是类似 StringUtils.isNotEmpty 的内容。

变量db意味着您正在访问数据库,这比简单的比较要昂贵几个数量级。或多或少:

Latency Comparison Numbers
--------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
Read 1 MB sequentially from memory 250,000 ns 250 us
Round trip within same datacenter 500,000 ns 500 us
Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X memory
Disk seek 10,000,000 ns 10,000 us 10 ms 20x datacenter roundtrip
Read 1 MB sequentially from disk 20,000,000 ns 20,000 us 20 ms 80x memory, 20X SSD
Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms

关于java - java中什么时候使用OR,什么时候使用AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49243820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com