如果我将JungleCat作为Cat的子类(JungleCat 扩展 Cat),那么我说:
JungleCat cat1 = new JungleCat();
Cat cat2 = new Cat();
Cat cat3 = new JungleCat();
JungleCat cat4 = new Cat(); //this one is illegal, right?
JungleCat cat5;
Run Code Online (Sandbox Code Playgroud)
我想知道什么是对象类型的cat1
,cat2
,cat3
,cat4
,和cat5
?我也想知道为什么在实例化对象时存在冗余:为什么在实例化对象时需要列出两个对象类型.
我很抱歉,如果这是一个非常基本的问题,但这是我想要一劳永逸地知道的事情,并且有一个很好的理由,我知道我可以在这里得到一个很好的答案(而不是Yahoo Answers,等):P
我正在为 Android 设备编写 HTTP 服务器,通过 NanoHTTPD 实现。
我的一个目标是让设备即使在屏幕关闭的情况下也允许传入连接。
我开始时很小,有一个持久的通知,认为这将使我的应用程序保持在内存中并在后台运行。锁定设备后,我可以继续浏览它所提供的网页,只要我不让它待一分钟。一旦我这样做,它就完全停止响应。
我通过包含 CPU 部分唤醒锁来升级我的尝试,这没有任何区别。然后我添加了一个完整的 WifiLock 来保持收音机打开,最后,在绝望中,一个 MulticastLock(我想也许它可以让收音机监听连接)。尽管如此,在大约一分钟没有建立任何连接后,设备停止响应,即使有所有这些锁定。
我可以做些什么来保持设备监听传入连接?似乎通过定期请求击中设备使其保持清醒......我可以以某种方式以编程方式模拟这种行为吗?我想不出办法。
谢谢!
编辑:出于这个问题的目的,可以忽略电池消耗。
编辑:NanoHTTPD 也作为服务运行。
我觉得我对哈希函数和它们所涉及的合约有很好的理解。
输入 X 上的 SHA1 将始终产生相同的输出。您可以使用 Python 库、Java 库或纸笔。这是一个函数,它是确定性的。我的 SHA1 和你的、爱丽丝和鲍勃的一样。
据我了解,AES 也是一个函数。你输入一些值,它会吐出密文。
那么,为什么会担心 Truecrypt(例如)被“破坏”?他们不是说 AES 坏了,而是说实现它的程序可能坏了。理论上,AES 是可靠的。那么为什么不能直接通过 Truecrypt 运行一个文件,通过“引用 AES”函数运行它,并验证结果是否相同呢?我知道它绝对不能那样工作,但我不知道为什么。
是什么让 AES 以这种方式与 SHA1 不同?为什么 Truecrypt AES 会输出与 Schneier-Ifier* AES 不同的文件,因为它们都被赋予了相同的输入?
最后,我的问题归结为:
My_SHA1(X) == Bobs_SHA1(X) == ...等
但是 TrueCrypt_AES(X) != HyperCrypt_AES(X) != VeraCrypt_AES(X) 等等。这是为什么呢?所有这些程序是否都包装了 AES,但有不同的方法来确定诸如初始化向量之类的东西?
*如果我曾经写过一个,这将是我的文件加密程序的名称
在花了一周学习Lua之后,遇到这个奇怪的场景我感到有些震惊,因为我之前曾想过"require"命令就像C/C++中的#include一样工作(即,它由预处理器复制/粘贴) ).
显然情况并非如此.
这就是困扰我的原因:
-- a.lua
this_is_global = "I'm a global var!!"
require "b"
print(global_in_b) -- error??!! globals in b aren't truly global?
-- b.lua
print(this_is_global) -- prints "I'm a global var!"
-- so b can see globals from a
global_in_b = "Am I global too?"
Run Code Online (Sandbox Code Playgroud)
出于生产率的原因,我刚刚创建了自己的表作为b中的作用域,添加了我想要访问该表的所有内容,然后在b中返回表以便我可以编写:
-- a.lua
stuff_from_b = require "b"
print(stuff_from_b.global_in_b) -- does what we want, in a weird way
Run Code Online (Sandbox Code Playgroud)
我知道我也可以手动将b.lua中的东西添加到_G表中以强制它们是全局的,但这感觉很难看.
所以我的问题:
我正在使用 Love2D 用 Lua 编写游戏。
每个实体显然都有一个 x,y 位置,这只是一个名为“位置”的表,其中包含 {x, y}(即 {10, 4})。
到目前为止,我一直在使用数组运算符实现该表,因此要获取 x 值,我将调用position[1],要获取 y 值,我将调用position[2]。
然而,为了可读性,我宁愿调用position.x和position.y。这将涉及以“地图”样式使用表格,例如position = {x=10, y=4}
.
虽然数组查找时间显然必须是 O(1),但我担心使用映射样式会产生更糟糕的结果,因为映射内部往往比简单数组复杂一百万倍。
在某种程度上,我怀疑性能差异是否会产生很大影响,即使在我的主游戏循环中每分钟调用一百万次。我只是想更好地了解我用来创建这个游戏的工具。
谢谢!
我正在尝试向表中添加一行,然后立即获取其唯一ID,这只是一个自动增量列.
谷歌搜索告诉我PHP可以通过mysql_insert_id()方法执行此操作
通过上一个查询(通常是INSERT)检索为AUTO_INCREMENT列生成的ID.
"之前的查询"是否限制在此特定连接的范围内,或者如果在调用它之前插入另一行,它是否可能会返回错误的ID?
有关如何获取或设置行的唯一ID的更好建议吗?我会在客户端创建唯一的ID,但是有多个客户端,所以这不可能.
谢谢.
我对 LLVM 的一个方面感到困惑:
对于它支持的所有语言,它是否支持编译为中间代码和直接二进制?
例如,如果我用 C 编写一些东西,LLVM(或 Clang?)可以编译为二进制(如 GCC)或中间代码吗?
还是只能将某些语言转换为中级?我想不用说,这个中间体需要某种类型的 LLVM 运行时?不过,我从来没有真正听说过运行时。