19 Mayıs 2019 Pazar

Range Sınıfı

closed metodu
Şöyle yaparız.
Map<String, Range<Long>> theMap = new HashMap<>();
theMap.put("Metric1", Range.closed(Long.MIN_VALUE, Long.MAX_VALUE));
theMap.put("Metric2", Range.closed(10L, 20L));
theMap.put("Metric3", Range.closed(30L, 50L));
contains metodu
Elimizde şöyle bir kod olsun.
private Map<String, Range<Long>> metricRanges = new HashMap<>();
Şöyle yaparız.
Range<Long> rangeOfDates = metricRanges.get(key);
if (rangeOfDates != null && rangeOfDates.contains(timestamp)) {
    return true;
}
intersection metodu
İki tane range nesnesi arasındaki kesişimi verir.

span metodu
İki tane range nesnesi arasındaki union'ı verir.

upperEndpoint metodu
Şöyle yaparız.
Range<String>> r = ...;
r.upperEndpoint(); 

2 Mayıs 2019 Perşembe

Uninterruptibles Sınıfı

awaitInterruptibly metodu
Metodun içi şöyle
public static boolean awaitUninterruptibly(Condition condition, long timeout,
TimeUnit unit)
{ boolean interrupted = false; try { long remainingNanos = unit.toNanos(timeout); long end = System.nanoTime() + remainingNanos; while (true) { try { return condition.await(remainingNanos, NANOSECONDS); } catch (InterruptedException e) { interrupted = true; remainingNanos = end - System.nanoTime(); } } } finally { if (interrupted) { Thread.currentThread().interrupt(); } } }
sleepUninterruptibly metodu
Şöyle yaparız
Uninterruptibles.sleepUninterruptibly(1000, TimeUnit.MILLISECONDS);

1 Mayıs 2019 Çarşamba

StopWatch Sınıfı

Giriş
Bu sınıfla kod içinde geçen süreyi milisaniye olarak ölçmek mümkün.

constructor
Şöyle yaparız.
Stopwatch stopWatch = new Stopwatch();
createStarted metodu
Şöyle yaparız.
Stopwatch stopwatch = Stopwatch.createStarted();
elapsed metodu
Duration nesnesi döner.
Örnek
Şöyle yaparız.
Duration duration = stopWatch.elapsed();
elapsedTime metodu
Şöyle yaparız.
long time = stopWatch.elapsedTime(TimeUnit.SECONDS);
start metodu
Şöyle yaparız.
stopWatch.start();
...
stopWatch.stop();
stop metodu
Şöyle yaparız.
stopwatch.stop().elapsed(TimeUnit.NANOSECONDS);