@niezielony: no tak właściwe to to, to tak właściwe zawołam innych tutaj i opiszę dokładniej. @63274682374: @nie_tuzinkowy: @Godziu73: @sorhu: @Wyrewolwerowanyrewolwer:
W tym wypadku te kody są inne, bo

Consumer consumerRef = System.out::println;
To syntax sugar dla takiego kodu:

PrintStream out = System.out;
Objects.requireNonNull(out);
Consumer consumerRefMan = x -> out.println(x);

Co oznacza że jeśli użyjemy metody System.setOut po stworzeniu tych funkcji, to ta używająca method reference dalej
  • Odpowiedz
#java #programowanie #gotojava
Po 1: wyniki zagadki ( https://www.wykop.pl/wpis/30701045/java-naukaprogramowania-gotojava-no-wlasnie-musze-/ ), w momencie pisania tego posta:
true - 9 głosów
false - 17 głosów
błąd kompilacji - 27 głosów
błąd w runtime - 6 głosów

A poprawna odpowiedz to... błąd w runtime! O dziwo javac pozwala na taki kod i wywala java.lang.IllegalAccessError

Po 2: Nowy wpis na blogu Dość mały, ale może to dobry początek przywracania aktywności na blogu.
https://blog.gotofinal.com/java/breakingjava/2018/03/17/everything-is-a-duck.html

Uznałem ze nie
GotoFinal - #java #programowanie #gotojava
Po 1: wyniki zagadki ( https://www.wykop....

źródło: comment_uZUal76k1fMyDzNlfHoQfYGBQphbHpB1.jpg

Pobierz
@b0lec: jak zawsze żadne ( ͡º ͜ʖ͡º)
A tak na bardziej poważnie, można na siłę znaleźć zastosowanie, jak jestes w jakimś bardzo nietypowym projekcie który opiera się na generowaniu kodu - od zabawek jak lomboki po wnętrze hibernate czy springa - to dobrze to zwraca uwagę na to by pamiętać o dodawaniu check casta przed wywołaniem metody.
Ale to tyle :D tak by praktycznie usuwać check
  • Odpowiedz
#java #naukaprogramowania #gotojava (No właśnie, muszę ożywić mojego bloga)
To ja też dam zagadkę ( ͡º ͜ʖ͡º)

public static void main(String[] a) {
        foo(new D());
    }

    public static void foo(I i) {
        System.out.println(i.getBoolean());
    }

    static class C {
        private boolean getBoolean() {
            return false;
        }
    }

    interface I {
        default boolean getBoolean() {
            return true;
        }
    }

    static class D extends C implements I {}

Plusuj by zostać zawołanym do odpowiedzi

Co się stanie z kodem?

  • Wypisze true 20.0% (16)
  • Wypisze false 30.0% (24)
  • Błąd kompilacji przez konflikt metod 38.8% (31)
  • Exception w runtime 11.3% (9)

Oddanych głosów: 80

#java #programowanie

Kontynuacja: https://www.wykop.pl/wpis/27883851/java-programowanie-tym-razem-troche-o-modulach-i-r/

Tym razem refleksje przez kod natywny oraz użycie instrumentalizacji do zdobycia dostępu do modułu.

https://blog.gotofinal.com/java/2017/11/27/reflections-in-java-9-part-2.html

Następnym razem będzie trochę więcej o instrumentalizacji, jak można się do niej dobrać w runtime i inne czarne sztuczki które nikomu nie są potrzebne ( ͡º ͜ʖ͡º)

No i jakiś tag do czarnolistowania oczywiście: #gotojava
#java #programowanie

Tym razem trochę o modułach i refleksjach, czyli co jeśli musimy coś popsuć a oracle nam nie pozwala ( ͡º ͜ʖ͡º)
Czyli tak jak zawsze, problem który większości nie dotyczy bo siedzi głęboko w bibliotekach i frameworkach których wielu z nas używa.
Potem jeszcze pojawi się post z 2 innymi metodami, jeszcze bardziej szalonymi (ʘʘ)

https://blog.gotofinal.com/java/2017/11/08/reflections-in-java-9.html

No i jakiś tag do
#java #programowanie

Zapomniałem jakoś wrzucić info o tym małym wpisie, a więc wrzucam teraz: krótkie wyjaśnienie o domyślnym hashcode w javie bo dalej często na stackach itd widzę wyjaśnienia że to jest adres w pamięci itd.

https://blog.gotofinal.com/java/2017/10/08/java-default-hashcode.html

Przez to że chwilowo dużo się dzieje, jak coś w rodzaju przeprowadzki i sporych zmian w pracy to niezbyt mam pomysły o czym pisać :D

No i jakiś tag do czarnolistowania oczywiście: #gotojava
#java #programowanie
Przepraszam za brak wpisów przez tak długi czas, ale miałem dużo zajęć i pecha.


Postaram się znowu robić wpisy, ale chyba mniejsze, ale częściej, dziś taka ciekawostka o statycznie-finalnych MethodHandles, średnio mi ten post wyszedł, ale może potem będzie lepiej :D

https://blog.gotofinal.com/java/benchmark/performance/2017/09/17/performance-of-java-3.html

No i jakiś tag do czarnolistowania oczywiście: #gotojava
  • Odpowiedz
#java #programowanie

To czas na kolejną część serii o wydajności w javie, popularnych mitach itd, jako że w poprzednim wpisie były 3 propozycje co sprawdzić, to uznałem że sprawdzę wszystkie 3 zamiast własnych.

https://blog.gotofinal.com/java/benchmark/performance/2017/07/17/performance-of-java-2.html

Wołam też osoby które chciały poszczególnych testów:
@AwizisieAkat / @zly_dzien "Streamy - np. sumowanie tablicy ręcznie w forze vs za pomocą streama"
@b0lec - pętla z try/catch zamiast sprawdzaniem indexu, nawet ciekawe wyniki wyszły.
Ponownie AwizisieAkat - lambdy
@GotoFinal: Osobiście lepiej by mi się czytało jak by były tabelki z porównaniem performance, ale takie czytelne aby można było jednym rzutem oka przeczytać problem, i wyniki, a jak ktoś chce to wywody :)

Albo jakieś jeno podsumowanie na końcu, to jest najszybsze, to jest najgorsze koniec ;)
  • Odpowiedz
są wyniki przecież, tylko do pętli zjadłem, bo było tak dużo przypadków że za długie to było - więc jest tylko link.


@GotoFinal: tak, waśnie od pętli zacząłem z ciekawości i tych wyników szukałem na widoku, (Tak wiem, był link,a le to też nie jest na szybkie spojrzenie).

Po prostu (ale tylko moim zdaniem) coś nie do końca jest z czytelnością całości nie wiem co, bo treść ok, ale jakoś no
  • Odpowiedz
#java #programowanie
Tak jak gdzieś pisałem, zaczynam małą serie o wydajności różnych elementów javy, o tym czego unikać, a co robić.
Oczywiście wszystko traktować z umiarem, i nie zmieniać połowy kodu by zaoszczędzić kilka ns ( ͜͡ʖ ͡€)
Ale dla tych którzy potrzebują wydajności i dla tych co chcą pisać od razu dobrze - bo to nic nie kosztuje jak już wiemy jak to robić, zapraszam i polecam.
#java #programowanie
Tym razem trochę nudniejszy post, ale nie było czasu ani pomysłu w ostatnich 2 tygodniach ;/

Czyli próby dodania czegoś do enum w runtime.
(przydatne kiedy musimy dostać się do enum innej aplikacji by dodać potrzebną nam funkcjonalność i nie ma innej możliwości niż taka, w innych przypadkach - nigdy tak nie róbcie :D)
https://blog.gotofinal.com/java/diorite/2017/06/24/dynamic-enum.html

No i jakiś tag do czarnolistowania oczywiście: #gotojava
@GotoFinal: czemu po angielsku? W tym języku jest masa materiałów. To co napisałeś pewnie też już jest dawno po angielsku, a nie ma po polsku. Trudniej się przebić.
  • Odpowiedz
#java #programowanie
A co mi tam, zaczynam bloga w łamanym angielskim i zapraszam do ~hejtu~ krytyki ( ͡º ͜ʖ͡º)

https://blog.gotofinal.com/java/2017/06/04/class-loading-behavior.html - trochę o ciekawym zachowaniu się javy podczas ładowania klasy z niedostępnymi w runtime typami.
https://blog.gotofinal.com/java/diorite/benchmark/2017/06/11/event-bus.html - trochę o wydajności eventbus i jak ją polepszyć, na przykładzie MBassadora bo uchodzi chyba za najwydajniejszą libkę dla javy

No i jakiś tag to czarnolistowania oczywiście: #gotojava