小编sta*_*lue的帖子

在Java中创建"逻辑独占或"运算符

观察:

Java有一个逻辑AND运算符.
Java有一个逻辑OR运算符.
Java有一个逻辑NOT运算符.

问题:

据sun称,Java没有逻辑XOR运算符.我想定义一个.

方法定义:

作为一种方法,它只是定义如下:

public static boolean logicalXOR(boolean x, boolean y) {
    return ( ( x || y ) && ! ( x && y ) );
}
Run Code Online (Sandbox Code Playgroud)


方法调用:

以下列方式调用此方法:

boolean myVal = logicalXOR(x, y);
Run Code Online (Sandbox Code Playgroud)


运营商用法:

我宁愿有一个运算符,使用如下:

boolean myVal = x ^^ y;
Run Code Online (Sandbox Code Playgroud)


题:

我找不到任何关于如何在Java中定义新运算符的内容.我应该从哪里开始?

java operators xor

265
推荐指数
10
解决办法
33万
查看次数

编译语言与口译语言

我正在努力更好地理解这种差异.我在网上找到了很多解释,但它们倾向于抽象的差异而不是实际的含义.

我的大部分编程经验都是CPython(动态,解释)和Java(静态,编译).但是,据我所知,还有其他类型的解释和编译语言.除了可执行文件可以从编译语言编写的程序中分发之外,每种类型都有任何优点/缺点吗?通常,我听到有人认为解释性语言可以交互使用,但我相信编译语言也可以有交互式实现,对吗?

python java compiler-construction interpreter programming-languages

263
推荐指数
9
解决办法
20万
查看次数

对于IEEE754 NaN值,所有比较返回false的理由是什么?

为什么NaN值的比较与所有其他值的行为不同?也就是说,与运算符==,<=,> =,<,>的所有比较(其中一个或两个值为NaN)返回false,这与所有其他值的行为相反.

我想这可以通过某种方式简化数值计算,但我找不到明确说明的理由,甚至在Kahan 的IEEE 754状态讲义中也没有详细讨论其他设计决策.

这种异常行为在进行简单数据处理时会造成麻烦.例如,当在C程序中对某些实值字段的记录列表进行排序时,我需要编写额外的代码来处理NaN作为最大元素,否则排序算法可能会变得混乱.

编辑: 迄今为止的答案都认为比较NaNs毫无意义.

我同意,但这并不意味着正确的答案是错误的,而是一个非布尔值(NaB),幸运的是它不存在.

因此,在我看来,选择返回真或假的比较是任意的,对于一般数据处理,如果它遵循通常的定律(==的反射性,<= =,>的三分法),那将是有利的,以免数据结构依赖这些法律变得困惑.

因此,我要求打破这些法律的一些具体优势,而不仅仅是哲学推理.

编辑2: 我想我现在理解为什么使NaN最大化是一个坏主意,它会搞砸上限的计算.

可能需要NaN!= NaN以避免检测环路中的收敛,例如

while (x != oldX) {
    oldX = x;
    x = better_approximation(x);
}
Run Code Online (Sandbox Code Playgroud)

然而,最好通过比较绝对差异与小限制来编写.所以恕我直言,这是打破NaN反身性的一个相对弱的论据.

floating-point comparison nan ieee-754 iec10967

240
推荐指数
5
解决办法
4万
查看次数

为什么素数在密码学中很重要?

作为非密码学家,有一件事总是让我感到震惊:为什么使用Prime数字这么重要?是什么让他们在密码学方面如此特别?

有没有人有简单的简短解释?(我知道有许多引物,应用密码学是圣经,但正如所说的:我不打算实施我自己的加密算法,我发现的东西只是让我的大脑爆炸 - 没有10页的数学公式请 :))

谢谢你的所有答案.我已经接受了让我对这个实际概念最清楚的那个.

primes cryptography

185
推荐指数
10
解决办法
17万
查看次数

Java:Subpackage可见性?

我的项目中有两个包:odp.projodp.proj.test.我希望某些方法只对这两个包中的类可见.我怎样才能做到这一点?

编辑:如果Java中没有子包的概念,有什么方法可以解决这个问题吗?我有一些方法,我希望只有测试人员和该软件包的其他成员才能使用.我应该把所有东西扔进同一个包里吗?使用广泛的反思?

java encapsulation visibility package

138
推荐指数
6
解决办法
6万
查看次数

如何从GAC中提取程序集?

我必须处理一个包,它将程序集直接安装到GAC中(例如,在%windows%/ assembly中的某个地方).

如何将实际程序集(DLL)从GAC驱动到普通文件系统?

谢谢.

.net assemblies

132
推荐指数
8
解决办法
13万
查看次数

如何查看C#编译器生成的MSIL/CIL?为什么叫组装?

我是.NET C#编程的新手.我跟着几本书.据说不是直接将其编译为二进制代码(Native code).高级代码转换为中间语言(称为MSIL aka CIL).但是当我编译时,我得到一个exe/Dll文件.

  1. 这些exe/dll文件中是否包含此MSIL/CIL?
  2. 我想看看那个中间语言代码.只是为了感受它的存在.怎么看?
  3. 他们正在调用这个exe/dll文件assembly.他们使用这个"花哨的词"只是为了区分这些包含二进制代码(本机代码)的exe/dll文件吗?

.net c# assemblies

121
推荐指数
10
解决办法
5万
查看次数

在Java中对单个String进行排序

是否有一种本地方法可以通过java中的内容对String进行排序?例如

String s = "edcba"  ->  "abcde"
Run Code Online (Sandbox Code Playgroud)

java sorting string

120
推荐指数
6
解决办法
26万
查看次数

如何在.NET中运行时将文件夹添加到程序集搜索路径?

我的DLL由第三方应用程序加载,我们无法自定义.我的程序集必须位于自己的文件夹中.我无法将它们放入GAC(我的应用程序需要使用XCOPY进行部署).当根DLL尝试从另一个DLL(在同一文件夹中)加载资源或类型时,加载失败(FileNotFound).是否可以以编程方式(从根DLL)将我的DLL所在的文件夹添加到程序集搜索路径?我不允许更改应用程序的配置文件.

.net search assemblies path

120
推荐指数
8
解决办法
9万
查看次数

如何循环当前加载的程序集?

我的ASP.NET应用程序中有一个"诊断"页面,它可以验证数据库连接,显示当前的appSettings和ConnectionStrings等.此页面的一部分显示了整个过程中使用的重要类型的程序集版本,但我无法弄清楚如何有效地显示所有已加载程序集的版本.

在.NET应用程序中找出所有当前引用和/或加载的程序集的最有效方法是什么?

注意:我对基于文件的方法不感兴趣,比如在特定目录中迭代*.dll.我对应用程序实际使用的内容感兴趣.

.net assemblies

118
推荐指数
2
解决办法
3万
查看次数