Tag: uniqueidentifier

使用新的Date()作为唯一标识符

想象一下,我有一个每秒创建1000个实体的过程。 对于每个这些实体,我称之为setter: newEntity.setDate(new Date()); 1)2个实体是否有可能收到相同的日期? 或者可以安全地假设我确实获得了日期字段的唯一标识符效果? 2)如果对问题#1的回答是:“是” – 让我们做一个小调整:让我们创建一个函数: public static synchronized Date getDate() { return new Date(); } 它现在会起作用吗? newEntity.setDate(getDate()); 3)怎么样 System.nanoTime()? 编辑 4)怎么样: public static synchronized Date getDate() { Thread.Sleep(1000); return new Date(); } 谢谢。

Thread.getId()全局唯一性问题

如果系统上运行多个Java应用程序,那么每个线程ID相对于所有其他Java线程是唯一的,无论它们在哪个应用程序中运行? Java应用程序相对于其他Java应用程序应该是沙盒子,因此我认为线程ID可能会发生冲突。 如果线程ID在所有应用程序中都是唯一的,那么这不会泄漏有关系统上其他应用程序的一些(尽管很小)信息吗? 比如在其他应用程序中启动了多少个线程,或者即使其他Java应用程序都在运行?

生成唯一ID

我需要为我的应用程序生成唯一的ID。 当我使用(UUID.randomUUID()).toString() ,我得到一个代码(认为这将是唯一的),这是非常冗长的。 当我们在Java Timestamp或randomstring的帮助下生成代码时,我不确定它有多独特。 我需要生成长度仅为8-10个字符的唯一代码(字母数字)。 怎么这样? 我正在使用MySQL数据库。 在数据库端生成唯一代码是最好的方法还是我们可以在Java中生成这样的短(但唯一)代码? 任何带有示例代码的建议都会非常有用。

在java中生成唯一ID的最佳方法

在java中生成唯一ID的最佳方法是什么。 人们通常使用 String id = System.currentTimeMillis+ someStaticCounter; 但是这种方法需要在multithreading应用程序中进行同步。 我在用 try { Thread.sleep(1); //This sleep ensures that two consecutive calls from the same thread does not return the same id. } catch (InterruptedException e) { // do nothing; } id = System.currentTimeMillis() + “-” + Thread.currentThread().getId(); 这种方法可以帮助我避免同步开销。 有什么更好的方法请建议吗?

生成唯一ID,最大长度为3位/字母/符号

我有一个75200字的清单。 我需要为每个单词赋予一个“唯一”id,每个id的长度可以是3个字母或更少。 我可以使用数字,字母甚至符号,但最大长度为3。 以下是我的代码。 import java.io.*; import java.util.*; public class HashCreator { private Map completedWordMap; private String [] simpleLetters = {“a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”i”,”j”,”k”,”l”,”m”,”n”,”o”,”p”,”q”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”}; private String[] symbols = {“!”,”@”,”#”,”$”,”%”,”^”,”&”,”*”,”~”,”?”}; private String indexNumber; String currentlyUsingLetter, currentlyUsingSymbol; private int currentlyActiveSimpleLetter = 0, currentlyActiveSymbol = 0, currentlyActiveSimpleLetter2 = 0, currentlyActiveSymbol2 = 0; private boolean secondaryNumberIsHundred = false; public HashCreator() { completedWordMap […]

生成long类型的UUID

请给我示例代码,以便在不使用时间戳的情况下在java中生成long类型的UUID 。 谢谢

是否有可能为特定的JVM实例获取真正唯一的ID?

我需要一种方法来从JVM中运行的Java代码中唯一地永久地标识JVM的实例。 也就是说,如果我在同一台机器上同时运行两个JVM,则每个JVM都是可区分的。 它也可以与在其他计算机上运行JVM以及在同一台计算机上的未来执行区分开,即使重用了进程ID也是如此。 我想我可以通过识别开始时间,机器MAC和进程ID来实现这样的东西,并以某种方式组合它们。 我想知道是否有一些标准的方法来实现这一目标。 更新 :我看到每个人都推荐了整个会话的UUID。 这似乎是一个好主意,虽然可能有点太重量级了。 这是我的问题:我想使用JVM id在每个JVM执行中创建多个唯一标识符,以某种方式合并JVM实例。 我的理解是你不应该将其他数字混合到一个UUID中,因为不再保证唯一性。 另一种方法是将UUID转换为字符串并将其链接,但随后它变得太长。 克服这个想法?

安全使用System.currentTimeMillis()生成唯一的数据库ID?

我在Java中使用System.currentTimeMillis() (它返回一个long整数)来为数据库实体生成一个唯一的ID,因为我认为这些时间在任何时候都不可能重叠。 这是一个安全的假设吗? 例如,目前我得到了这个: 1296691225227

生成特定计算机唯一的ID

可能重复: 生成唯一硬件ID的可靠方法 我试图生成一个特定计算机唯一的ID。 ID不会随机生成。 它将基于计算,使得为计算机A生成的ID将是固定的并且对计算机A是唯一的。每当程序在计算机A上执行时,它将继续生成相同的ID,并且当在另一台计算机上执行时,它将生成该计算机唯一的另一个ID。 这是为了确保两台​​计算机不具有相同的ID。 我的挑战:为了使我的程序能够生成计算机唯一的ID,它需要根据执行它的计算机所特有的种子执行计算。 我的问题:如何获得计算机唯一的值,以便我可以将该值用作ID生成程序中的种子? 是否有可能从计算机的硬件(例如主板)获取该计算机独有的值? 这样,只要不更换计算机的主板,该值很可能不会改变。

基于Java的独特计算机ID硬件

我需要从一台PC生成一个唯一的代码,我的软件将通过许可证分发,在本地我需要识别环境并将此代码发送到服务器。 我不想在服务器上保留一个序列号,每个客户端都接收到一些序列,我试图从NetworkInterfaces读取MAC地址,但是不安全,用户可以轻松更改MAC地址。 我认为如果它可以读取主板序列号的最佳方式,但直到现在我还没有找到方法。 任何消化?