Skip to content

Instantly share code, notes, and snippets.

View jerolba's full-sized avatar

Jeronimo López jerolba

View GitHub Profile
public class Test {
static int objectCount = 0;
public static int getObjectCount() {
return objectCount;
}
public Test() {
objectCount++;
@jerolba
jerolba / ObjectArrayParameterByValue.java
Last active December 31, 2022 12:18
Arrays are passed by value
public class ObjectArrayParameterByValue {
public static void main(String[] args) {
String[] data = { "Foo", "Bar" };
System.out.println(data[0]);
}
public void changeArray(String[] data) {
data[0] = "Changed";
@jerolba
jerolba / Links.txt
Last active November 29, 2020 12:50
Notas y enlaces bonilsta Elon Musk
@jerolba
jerolba / MapViews.java
Created August 5, 2019 19:04
Example of potential bugs using incorrectly Map API
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class MapViews {
public static void main(String[] args) {
mapChangeModifiesValuesSet();
mapChangeModifiesKeysSet();
//BikeySet<Avenger, Film> avengerFilms = new TableBikeySet<>();
BikeySet<String, String> avengerFilms = new TableBikeySet<>();
avengerFilms.add("Hulk", "The Avengers");
avengerFilms.add("Iron Man", "The Avengers");
avengerFilms.add("Thor", "Avengers: Age of Ultron");
avengerFilms.add("Thor", "Thor: Ragnarok");
avengerFilms.add("Captain America", "Avengers: Infinity War");
....
if (avengerFilms.contains("Iron Man", "Black Panther")) {
//Given the stock of some products and stores
//BikeyMap<Product, Store, Stock> stock = new TableBikeyMap<>();
BikeyMap<String, String, Integer> stock = new TableBikeyMap<>();
stock.put("shirt-ref-123", "store-76", 10);
stock.put("pants-ref-456", "store-12", 24);
...
stock.put("tie-ref-789", "store-23", 2);
//Get the stock of a product/store
Integer inStock = stock.get("shirt-ref-1234", "store-45");
MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
MemoryUsage beforeHeapMemoryUsage = mbean.getHeapMemoryUsage();
Object instance = codeThatCreatesComplexDataStructure();
MemoryUsage afterHeapMemoryUsage = mbean.getHeapMemoryUsage();
long consumed = afterHeapMemoryUsage.getUsed() -
beforeHeapMemoryUsage.getUsed();
System.out.println("Total consumed Memory:" + consumed);
methodThatDoesThings();
MemoryHistogram diff = Histogramer.getDiff(() -> {
return methodThatDoesThings();
});
System.out.println(diff);
MemoryHistogram filterd = diff.filter("Object[]", "java.util.HashMap*",
ArrayList.class, Pattern.compile(".*Hibernate.*"));
MemoryHistogram diff = Histogramer.getDiff(() -> {
HashMap<Integer, String> map = new HashMap<>();
for (int i = 0; i < 10000; i++) {
map.put(i, "" + i);
}
return new ArrayList<>(map.values());
});
System.out.println(diff);