Skip to content

Instantly share code, notes, and snippets.

View orionll's full-sized avatar

jkozlov orionll

View GitHub Profile
@orionll
orionll / RussianJavaTelegramChannels.md
Last active November 30, 2023 14:20
Список русскоязычных Telegram-каналов про Java
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import java.util.ArrayList;
@orionll
orionll / Typeclasses.scala
Last active June 9, 2020 12:46
Typeclass example
// Тайпкласс Animal (для полноты картины добавил метод hello, иначе был бы совсем тривиальный пример)
// Animal полностью абстрагирован от низлежашего типа A
trait Animal[A] {
def word: String
def talk() { println(word) }
def hello(a: A): String
}
// Обертка над тайпклассом Animal, чтобы можно было писать cat.hello, а не animal.hello(cat)
// AnimalOps полностью дублирует методы, определённые в Animal, но также может содержать еще и дополнительные методы.
import com.google.common.math.Stats;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
@orionll
orionll / Sort.java
Last active November 13, 2018 12:47
import org.openjdk.jmh.annotations.*;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
@State(Scope.Thread)
public class Sort {
import java.lang.ref.WeakReference;
public final class Main {
public static void main(String... args) throws Throwable {
Integer i = new Integer(1);
WeakReference<Integer> ref = new WeakReference<>(i);
System.gc();
System.out.println(ref.get());
i.signum(0);
public final class Main {
public static void main(String... args) throws Throwable {
Integer i = new Integer(1);
WeakReference<Integer> ref = new WeakReference<>(i);
System.gc();
System.out.println(ref.get());
myStupidReachabilityFence(i);
}
@orionll
orionll / ArrayIterator.java
Created September 11, 2018 10:08
Bug in Array Iterator
public final class ArrayIterator<A> implements Iterator<A> {
private int i;
private final A[] array;
ArrayIterator(final A[] array) {
this.array = array;
}
@Override
public boolean hasNext() {
-- Файл ElmComponent.elm
module ElmComponent exposing (..)
import Html exposing (..)
import Html.Events exposing (onClick)
-- Простой компонент (кнопка со счётчиком)
type alias Model = { text : String , counter : Int }
type Msg = Inc
@orionll
orionll / ArrayListCreate.java
Last active April 11, 2017 04:27
new ArrayList vs. addAll
import org.openjdk.jmh.annotations.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
@State(Scope.Thread)
public class ArrayListCreate {