mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add comment and test
This commit is contained in:
parent
981bc843e1
commit
025728e389
@ -119,12 +119,14 @@ public class UUID implements java.io.Serializable, Comparable<UUID> {
|
|||||||
public static UUID randomUUID(boolean isSecure) {
|
public static UUID randomUUID(boolean isSecure) {
|
||||||
final Random ng = isSecure ? Holder.numberGenerator : RandomUtil.getRandom();
|
final Random ng = isSecure ? Holder.numberGenerator : RandomUtil.getRandom();
|
||||||
|
|
||||||
byte[] randomBytes = new byte[16];
|
final byte[] randomBytes = new byte[16];
|
||||||
ng.nextBytes(randomBytes);
|
ng.nextBytes(randomBytes);
|
||||||
|
|
||||||
randomBytes[6] &= 0x0f; /* clear version */
|
randomBytes[6] &= 0x0f; /* clear version */
|
||||||
randomBytes[6] |= 0x40; /* set to version 4 */
|
randomBytes[6] |= 0x40; /* set to version 4 */
|
||||||
randomBytes[8] &= 0x3f; /* clear variant */
|
randomBytes[8] &= 0x3f; /* clear variant */
|
||||||
randomBytes[8] |= 0x80; /* set to IETF variant */
|
randomBytes[8] |= 0x80; /* set to IETF variant */
|
||||||
|
|
||||||
return new UUID(randomBytes);
|
return new UUID(randomBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,9 +16,10 @@ import java.util.concurrent.ExecutorService;
|
|||||||
* ps:
|
* ps:
|
||||||
* //模拟1000个线程并发
|
* //模拟1000个线程并发
|
||||||
* SyncFinisher sf = new SyncFinisher(1000);
|
* SyncFinisher sf = new SyncFinisher(1000);
|
||||||
* concurrencyTestUtil.run(() -> {
|
* sf.addWorker(() -> {
|
||||||
* // 需要并发测试的业务代码
|
* // 需要并发测试的业务代码
|
||||||
* });
|
* });
|
||||||
|
* sf.start()
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
21
hutool-core/src/test/java/cn/hutool/core/lang/UUIDTest.java
Normal file
21
hutool-core/src/test/java/cn/hutool/core/lang/UUIDTest.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package cn.hutool.core.lang;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.ConcurrentHashSet;
|
||||||
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class UUIDTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试UUID是否存在重复问题
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void fastUUIDTest(){
|
||||||
|
Set<String> set = new ConcurrentHashSet<>(100);
|
||||||
|
ThreadUtil.concurrencyTest(100, ()-> set.add(UUID.fastUUID().toString()));
|
||||||
|
Assert.assertEquals(100, set.size());
|
||||||
|
}
|
||||||
|
}
|
@ -56,4 +56,5 @@ public class TypeUtilTest {
|
|||||||
public void service(String string) {
|
public void service(String string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ public class SymmetricCrypto implements Serializable {
|
|||||||
} else {
|
} else {
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey, params);
|
cipher.init(Cipher.ENCRYPT_MODE, secretKey, params);
|
||||||
}
|
}
|
||||||
return cipher.doFinal(paddingDataWithZero(data, cipher.getBlockSize()));
|
return cipher.doFinal(paddingDataWithZero(data, cipher.getBlockSize()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new CryptoException(e);
|
throw new CryptoException(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user