我知道这是一个微观优化,所以我问出纯粹的好奇心.
逻辑上,微处理器不需要比较相等运算符的两个操作数的所有位以确定"FALSE"结果.
注意,这与编程有关,因为它会影响程序的执行速度.
我的确意味着身份平等.
例如,以下内容是否始终打印为真?
System.out.println("foo".getClass() == "fum".getClass());
Run Code Online (Sandbox Code Playgroud) C#静态构造函数和Java静态块之间的真正区别是什么?
它们都必须是无参数的.当首次使用相关类时,它们都只被调用一次.
我错过了什么,或者他们是同一件事,只是用不同的名字?
我目前正在设计和实现一种小型编程语言作为我正在上课的额外学分项目.我的问题是该语言有三种数字类型:Long,Double和Fraction.分数可以用适当或不正确的分数(例如"2 1/3"或"1/2")用语言书写.这个事实导致诸如"2/3.5"(长/双)和"2/3"(长/长)等问题无法被词法分析器正确处理.我看到的最佳解决方案是更改除法运算符.到目前为止,我认为"\"是最好的解决方案,因为"//"开始评论.
如果你正在设计语言,你会选择"\"吗?
你会选择其他东西吗?如果是这样,什么?
注意:无法更改分数的分配方式.
在此先感谢您的帮助,
-编辑-
目前的运营商是:
** (功率)
* (乘)
% (模数)
+ (加)
- (减去和否定)
~ (倒数)
! (不)
> (更大)的
< (减)
>= (大于相等)
<= (较少-相等)
== (平等)
<> (不等式)
& (和)
| (要么)
^ (XOR)
?? (空coalesing)
= (分配)
注意:我的老师没有严格的约束要求; 但是,我基本上让他相信我可以将一个简单的分数计算器变成一种语言.更改分数的语法将违反分数计算器的分数语法,最好避免使用.
我知道我可以在"main"方法中获取命令行参数,但我需要能够间接获取它们.
谢谢你的帮助.
假设我有一个四个对象的未排序列表:[B, C, A, D].
所有四个对象都属于同一类型,并且:
(A > B),
(C > D),
(A != C or D)
(B != C or D)
(C != A or B)
(D != A or B).
Run Code Online (Sandbox Code Playgroud)
通过!=我的意思是,他们既不是小于,等于到或大于其他对象.
我需要"排序"名单,从而A会经常来之前B,并且C会经常来之前D.除了这两个要求之外,我对列表的排序没有要求; 因此,给定前面描述的列表,sort函数应返回[A, B, C, D]或[C, D, A, B].
至于这个问题的原因,我试图java.lang.Class根据它们之间的关系对一组对象进行排序.例如,如果A是超类/超级接口B,则A小于B.如果是Aextends/implements B,则A大于B.如果A是B,那么显然是A …
java ×4
algorithm ×1
c# ×1
class ×1
cpu-speed ×1
division ×1
equality ×1
identity ×1
jvm ×1
optimization ×1
performance ×1
sorting ×1
static-block ×1