小编Ekl*_*eog的帖子

哪些对象在 Java Card 中是持久的?何时?

这个问题是双重的,但希望回答起来不会太长,尽管它本身很长。不过,请随意回答其中的一部分,很抱歉使它如此详尽!

  • 哪些对象被持久化?哪些对象是瞬态的?
  • 对象什么时候被持久化?

对于第一部分,问题适用于:

  • 存储在一个对象中的对象Applet
  • 传递存储在一个对象中的对象Applet
  • 仅存储在堆栈变量中的对象(不从任何引用,即使是传递性引用Applet
  • 存储在使用以下命令构建的数组中的对象makeTransientObjectArray
  • 传递存储在数组中的对象makeTransientObjectArray(例如,存储在 a 中存储的对象的成员变量中makeTransientObjectArray

对于第二部分,它的适用取决于第一个问题的答案。例如:

  • 我假设直接存储在瞬态对象数组中的对象不会被持久化。在这种情况下,假设堆栈上的对象被持久化,那么存储在那里的对象什么时候变得不持久?new Object当放入瞬态对象数组时,它是持久化的还是非持久化的?
  • 如果一个对象同时具有来自瞬态对象数组和小程序的引用,并且小程序引用被删除,那么该对象是否会被取消持久化?

先感谢您!


我已经研究了 JCRE 规范 v2.2.2 (我正在使用的版本),但其中有一些不清楚的地方(因此这个问题很详尽,因为我觉得这更适合 Q/A 风格论坛):

  • 第 2-2 页提到,当对象以传递方式存储在Applet. 然而,Glossary-7 指出对象默认是持久的。这种差异可能看起来不可观察,但无论如何都会影响卡电源循环时是否需要进行垃圾收集。
  • 第 5-1 页指出,瞬态对象的字段决不能存储在持久内存中。但它没有说明这对于瞬态对象数组中的传递对象是否也适用,例如。存储在瞬态对象数组中的对象字段中的对象。
  • 当一个对象的引用同时存储在瞬态对象数组和Applet.

这三个问题分别相当于:

  • 第 1 部分要点 3 和 5(以及第 2 部分要点 1,具体取决于答案)
  • 第 1 部分要点 5
  • 第 2 部分要点 2

java smartcard javacard

7
推荐指数
1
解决办法
1191
查看次数

Git 变基和签名提交

让我们假设一个 git 存储库满足以下条件:

  • 大多数提交都已签名。
  • 经常使用变基,以便拥有干净的历史记录。
  • 有时多人在同一分支机构工作。
  • 假设签署提交意味着签署等效的差异,而不是签署存储库的整个状态(尽管签署的提交也签署了祖先的哈希值)

现在,我想重新建立一个分支,我在那里完成了部分工作,并且一位同事推送了一些提交;我想“保留”我所做的提交上的签名(即重新签署我用新历史记录所做的所有提交,即使在合并冲突的情况下),但不签署不是由我编写的工作(即。我更喜欢丢失同事提交的签名,而不是签署它们)。

我可以使用(就像在回答这个问题git rebase -S时提出的那样);但这也会签署我同事的承诺。

有没有办法做到这一点?

git version-control sign

5
推荐指数
1
解决办法
3928
查看次数

Git 在历史中的某个地方签署提交

在 Internet 的许多部分(例如此处)上,暗示 git 提交必须在完成或从不签名。

然而,从技术上讲,提交上的签名只不过是提交对象上的签名(如此处所示,它由“树”文件的哈希值(即 git 对象的哈希值列表)、哈希值组成父级和一些元数据。

因此,似乎没有什么可以阻止事后签署提交,而无需重写整个历史记录。

真的可能吗?有推荐的方法吗?这样的事后签名能很好地处理推拉操作吗?

git version-control sign git-sign

5
推荐指数
1
解决办法
231
查看次数

标签 统计

git ×2

sign ×2

version-control ×2

git-sign ×1

java ×1

javacard ×1

smartcard ×1