"자바 uniqid()"의 두 판 사이의 차이

 
2번째 줄: 2번째 줄:
;자바 Util.uniqid()
;자바 Util.uniqid()
<source lang='java'>
<source lang='java'>
public static long currentTimeNanos() {
private static class Util {
return System.nanoTime() + ((System.currentTimeMillis() * 1000000) - System.nanoTime());
private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
public static long currentTimeNanos() {
return System.nanoTime() + currentTimeNanosOffset;
}
public static String uniqid() {
long nanos = Util.currentTimeNanos();
return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
}
public static String uniqid(String prefix) {
return prefix + "_" + Util.uniqid();
}
}
}
public static String uniqid() {
</source>
long nanos = currentTimeNanos();
<source lang='java'>
return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
}
public static String uniqid(String prefix) {
return prefix + "_" + uniqid();
}
...
System.out.println( Util.uniqid() );
System.out.println( Util.uniqid() );
System.out.println( Util.uniqid() );
System.out.println( Util.uniqid() );
27번째 줄: 31번째 줄:
<source lang='java'>
<source lang='java'>
public class HelloApplication {
public class HelloApplication {
public static long currentTimeNanos() {
private static class Util {
return System.nanoTime() + ((System.currentTimeMillis() * 1000000) - System.nanoTime());
private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
}
public static long currentTimeNanos() {
public static String uniqid() {
return System.nanoTime() + currentTimeNanosOffset;
long nanos = currentTimeNanos();
}
return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
public static String uniqid() {
+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
long nanos = Util.currentTimeNanos();
}
return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
public static String uniqid(String prefix) {
+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
return prefix + "_" + uniqid();
}
public static String uniqid(String prefix) {
return prefix + "_" + Util.uniqid();
}
}
}
public static void main(String[] args) {
public static void main(String[] args) {
System.out.println( uniqid() );
System.out.println( Util.uniqid() );
System.out.println( uniqid() );
System.out.println( Util.uniqid() );
System.out.println( uniqid("hello") );
System.out.println( Util.uniqid("hello") );
System.out.println( uniqid("hello") );
System.out.println( Util.uniqid("hello") );
// 58eddeabe0db9
// 58eddeabe0db9
// 58eddeabe0f60
// 58eddeabe0f60

2017년 4월 17일 (월) 17:21 기준 최신판

1 개요[ | ]

자바 Util.uniqid()
private static class Util {
	private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
	public static long currentTimeNanos() {
		return System.nanoTime() + currentTimeNanosOffset;
	}
	public static String uniqid() {
		long nanos = Util.currentTimeNanos();
		return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
				+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
	}
	public static String uniqid(String prefix) {
		return prefix + "_" + Util.uniqid();
	}
}
System.out.println( Util.uniqid() );
System.out.println( Util.uniqid() );
System.out.println( Util.uniqid("hello") );
System.out.println( Util.uniqid("hello") );
// 58eddeabe0db9
// 58eddeabe0f60
// hello_58eddeabe0f96
// hello_58eddeabe0fc2

2 전체 예제[ | ]

public class HelloApplication {
	private static class Util {
		private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
		public static long currentTimeNanos() {
			return System.nanoTime() + currentTimeNanosOffset;
		}
		public static String uniqid() {
			long nanos = Util.currentTimeNanos();
			return Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(0,10)))
					+ Long.toHexString(Long.parseLong(String.valueOf(nanos).substring(10,16)));
		}
		public static String uniqid(String prefix) {
			return prefix + "_" + Util.uniqid();
		}
	}

	public static void main(String[] args) {
		System.out.println( Util.uniqid() );
		System.out.println( Util.uniqid() );
		System.out.println( Util.uniqid("hello") );
		System.out.println( Util.uniqid("hello") );
		// 58eddeabe0db9
		// 58eddeabe0f60
		// hello_58eddeabe0f96
		// hello_58eddeabe0fc2
	}
}

3 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}