•  

    Ok, chwilę mi to zajęło ale wspominałem, że wpisy nie będą się pojawiać regularnie. Będę starał się pisać jak najczęściej.

    1. Error a Exception
    Podstawowa różnica jest taka, że błędów nie możemy obsługiwać. Najbardziej znanym błędem jest OutOfMemory, który pojawia się gdy po prostu brakuje nam pamięcie (Nie nam bezpośrednio a maszynie na której działa kod:)

    Exceptions – to wyjątki, które mogą byś obsługiwane i najczęściej są to „błędy” spowodowane przez klienta. Ze znanych można wymienić FileNotFoundException albo NullPointerExcepton

    2. Przechwytywanie
    Skoro już wiemy jaka jest różnica pomiędzy błędem a wyjątkiem to jakich słów kluczowych potrzebujesz do przechwytywania wyjątków?
    TRY → CATCH → FINALLY → THROW → THROWS
    TRY – W tym miejscu umieszczamy blok kodu, który będzie sprawdzany pod względem wyjątków. Np operacje na bazie danych
    CATCH – w tym bloku przechwytujemy wyjątek i ustalamy co z nim zrobić
    FINALLY – w tym miejscu pojawi się kod, który postara się wykonać bez przechwytywania wyjątku

    Zadanie domowe:

    pokaż spoiler Różnica pomiędzy Throw i Throws oraz przykład prostej implementacji


    3. Encje
    Która wersja kodu jest poprawna i dlaczego. Czy kod jest kompilowalny?
    Ver1=========================
    `@Entity
    public class Test {

    @NotNull
    int n;
    //getters setters
    }
    Ver2=========================
    @Entity
    public class Test1 {

    @NotNull
    Integer n;
    //getters setters
    }`

    4. Czy konstruktor może być oznaczony jako final?

    pokaż spoiler Oczywiśćie, że nie :-)


    TAGI:
    #pytanianadeva #programowanie  #nauka #naukaprogramowania  #java   #testowanieoprogramowania
    pokaż całość

    źródło: javaex.jpg

    Ad3 Która wersja?

    • 40 głosów (33.90%)
      Wersja 1
    • 78 głosów (66.10%)
      Wersja 2
  •  

    Długo się zastanawiałem nad tym czy codzienne posty są dobre. No i są na pewno dobre ale nie dla mnie. Niestety wymagają one dużo poświęcenia na redagowanie. Dlatego też posty będą dość nieregularnie umieszczane. Wybaczcie ( ͡° ʖ̯ ͡°)

    1. Pytanie od @interface (Ostatnoi vikop.ru zawalił i pytanie się nie dodało).
    2. Co to znaczy, że obiekt jest immutable i podaj prosty przykład takiego obiektu,
    Z angielskiego immutable oznacza niezmienność. Czyli po stworzeniu obiektu nie możemy zmienić jego stanu. Najprostszym przykładem jest… String. Dlatego też powstał StringBuilder (deprecated StringBuffer).
    Ok, więc jak to jest z tym Stringiem skoro można użyć na nim konkatenacji. Przedstawię to na przykładzie:
    String a = „Hello”; // a jest referencją dla „Hello” w Spring pool
    String b = „Hello”;// b jest referencją dla „Hello” tego samego co zmienna a
    a == b // true
    String c = „world”; // c jest referencją dla „world”
    b = a + b; //b już nie jest referencją dla „Hello”, b wskazuje na nowego Stringa
    String a1 = new String(„Hello”);
    System.out.println(b); // „Hello world”
    a1 == a // false

    Dzieje się tak dlatego, że w Javie mamy String Pool i jest to „pula” literałów przechowywana w pamięci. Trzeba również dodać, że Garbage Collector nie czyści String Poola. I jeżeli mamy już w puli danych String i dodajemy go znowu to java zwraca nam referencję do już istniejącego. Takie rozwiązanie pozwala zaoszczędzić pamięć.

    Ok spójrzmy na to jeszcze z innej strony. Ile poniższy kod stworzy nam Stringów?
    String str = new String("tricky");

    pokaż spoiler To zależy. Jeżeli w puli istnieje już literał „tricky” to jeden. Jeżeli nie ma takowego to zostaną stworzone dwa Stringi. Dlaczego tak jest doszukajcie sami i napiszcie odpowiedź w komentarzu.


    3. Rozwiń skrót SOLID
    S for Single Responsibility Principle
    O for Open closed design principle
    L for Liskov substitution principle
    I for Interface segregation principle
    D for Dependency inversion principle

    4. Jaka jest relacja dla URL,URI i URN
    URN (ang. Uniform Resource Name)
    URL (ang. Uniform Resource Locator)
    URI (ang. Uniform Resource Identifier)
    URL i URN należy do URI. (URI (URL)(URN))

    5. Zadanie do samodzielnego rozwiązania
    Podaj w komentarzu różnicę pomiędzy override a overload. Odpowiedź wrzuć w spoiler!

    TAGI
    #pytanianadeva #naukaprogramowania #programowanie #java
    pokaż całość

    źródło: comment_lR3xmcDlR7Ebz5xGsSCUrzMyyUBqABLr.jpg

    +: Janishek, l...........e +237 innych

    Ktora z map uzywa ==?

    • 22 głosy (9.91%)
      Map
    • 18 głosów (8.11%)
      WeakHashMap
    • 25 głosów (11.26%)
      LinkedHashMap
    • 44 głosy (19.82%)
      HashMap
    • 90 głosów (40.54%)
      IdentityHashMap
    • 23 głosy (10.36%)
      TreeMap
  •  

    Hej!

    Niestety na wstępie zaznaczę, że dzisiejszy odcinek będzie okrojony z materiału i przeznaczony raczej dla początkujących.

    pokaż spoiler Dzisiejszy dzień zaczął się od pięknego długiego artykułu redagowanego na mirko... To był błąd. Nigdy więcej nie redagować na mirko! Zwiecha chroma i wszystko przepadło. Jutro postaram się zrobić mega duży artykuł, który odrobi dzisiejsze straty.


    1. Deadlock rozszerzenie definicji.
    Dzięki użytkownikowi @63274682374 umieszczam bardziej zobrazowaną definicę deadlocka.

    Dwie osoby chcą zjeść obiad. Na stole jest tylko jeden nóż i jeden widelec. Jedna osoba chwyta nóż, druga widelec. Żadna z nich nie może zacząć jeść bo nie ma drugiego sztućca, więc czeka na jego zwolnienie. To jest właśnie deadlock, gdzie dwa lub więcej wątków zablokowało między sobą zasoby potrzebne do wykonania zadania.

    Aby zapobiec takiej sytuacji wystarczy się trzymać zasady, że dostęp do chronionych np. blokadą zasobów jest realizowany zawsze w tej samej kolejności. W naszym przykładzie zakładamy, że najpierw trzeba mieć nóż a dopiero potem można starać się o widelec. Jedna osoba chwyta nóż, druga próbuje ale jej się nie udaje więc czeka. Ta z nożem bierze widelec, je obiad i odkłada sztućce. Następnie druga osoba może zjeść obiad.

    2. Która klasa jest nadklasą wszystkich klas?
    Wszystkie klasy w javie rozszerzane są przez java.lang.Object

    3. Paradygmat obiektowy
    Tak naprawdę na początku nauki ciągle mówi się o obiektowości. O programowaniu obiektowy. OOP. Tylko nikt za bardzo nie tłumaczy co się tutaj z czym je. Zacznijmy od tego, że podstawowe założenia to: Hermetyzacja, Abstrakcja, Dziedziczenie i Polimorfizm.

    Hermetyzacja – to ukrywanie implementacji. Z założenia zapewnienie, że zmiany w obiekcie będą oczekiwane. Tutaj znajdziemy mutatory i akcesory (gettery i settery)

    Abstrakcja – z definicji nazywamy pewnego rodzaju uproszczenie rozpatrywanego problemu, polegające na ograniczeniu zakresu cech manipulowanych obiektów wyłącznie do cech kluczowych dla algorytmu, a jednocześnie niezależnych od implementacji. W tym sensie abstrakcja jest odmianą formalizmu matematycznego. Cel stosowania abstrakcji jest dwojaki: ułatwienie rozwiązania problemu i zwiększenie jego ogólności.
    Najłatwiej jest sobie to wyobrazić jako mechanika samochodowego. Po świecie porusza się wiele pojazdów i nie potrzebujemy do każdego wyspecjalizowanego mechanika. Większość napraw (działań) może wykonać jeden mechanik.

    Polimorfizm – każdy obiekt ma wiele form (oprócz obiektu Object) i może być zmieniany / rozszerzany.
    Dziedziczenie – jest to sposób na przekazanie pewnych cech danej klasy innej klasie. Dziedziczy się głównie pola i metody.

    4. Wymień motody protokołu HTTP
    Pytanie, które jest banalne i praktycznie zawsze pojawia się przy rekrutacji juniorów.
    GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH

    5. Proste zadanie
    Jaki będzie wynik?

    String s1 = "abc";
    String s2 = "abc";
    System.out.println("s1 == s2 is:" + s1 == s2);


    pokaż spoiler Ponieważ znak + jest ponad == to nasze wyrażenie zostanie rozbite na: “s1 == s2 is:abc” == “abc” a wynikiem tego jest false.


    Pierwsze zadanie domowe polega na zapoznaniu się co dane metody HTTP wykonują.
    Drugie zadanie domowe jest od @interface (dziękuje).

    TAGI
    #pytanianadeva #naukaprogramowania #programowanie #java #javascript #maven
    pokaż całość

  •  

    Hej!
    Nikt nie zauważył, że wczoraj nie było wpisu? ( ͡° ͜ʖ ͡°)

    #pytanianadeva 2/01/18

    1. Czym jest deadlock?
    Deadlock jest to sytuacja w której kilka wątków się zblokowało. Kilka znaczy dwa+.

    Przykład:
    --------------------------
    public class Deadlock {
    static class Friend {
    private final String name;
    public Friend(String name) {
    this.name = name;
    }
    public String getName() {
    return this.name;
    }
    public synchronized void bow(Friend bower) {
    System.out.format("%s: %s"
    + " has bowed to me!%n",
    this.name, bower.getName());
    bower.bowBack(this);
    }
    public synchronized void bowBack(Friend bower) {
    System.out.format("%s: %s"
    + " has bowed back to me!%n",
    this.name, bower.getName());
    }
    }

    public static void main(String[] args) {
    final Friend alphonse =
    new Friend("Alphonse");
    final Friend gaston =
    new Friend("Gaston");
    new Thread(new Runnable() {
    public void run() { alphonse.bow(gaston); }
    }).start();
    new Thread(new Runnable() {
    public void run() { gaston.bow(alphonse); }
    }).start();
    }


    }
    --------------------------

    2. Maven: szukanie wersji zależności
    Tutaj sposobów jest kilka. Postaram się opisać każdy po trochu:
    - Jeżeli używamy Intellij to w pliku POM.xml możemy spróbować wpisywać wersję ręcznie w tagu <version>. Ale sposób ten jest mało efektywny jeżeli nie wiemy z jakiej wersji chcemy skorzystać.
    - Może wersje zadeklarować, że będziemy używać tej i tylko tej poprzez <version>[1.0.1]</version>. Raczej niezalecane ze względu na możliwe konflikty
    - Standardowe deklarowanie wersji poprzez <version>2.0.0</version> chyba najbardziej preferowany sposób tzw. rekomendacja
    - Deklarowanie zakresu wersji <version>[2.0.0,5.0.0)</version>
    - Deklarowanie w otwartym zakresie <version>[1.0.0,)</version>
    - No i mamy jeszcze ostatnie dwie <version>LATEST</version> oraz <version>RELEASE</version> . Ważne! Żeby korzystać z ver. RELEASE musimy mieć aktywny release-profile.

    pokaż spoiler Korzystam z https://mvnrepository.com/ ( ͡° ͜ʖ ͡°)


    Przydatne:
    http://www.mojohaus.org/versions-maven-plugin/

    3. HTTP error statuses
    Mamy przykładowo dwa rodzaje błędów HTTP. 4xx oraz 5xx. Wskaż podstawową różnicę.
    * 4xx związany jest bezpośrednio z błędami klienta
    * 5xx związany jest bezpośrednio z błędami serwera

    Zadanie do samodzielnego rozwiązania. WAŻNE! Odpowiedź zostaw w spoilerze!
    1. HTTP: Różnica pomiędzy POST a GET
    2. JS: różnica pomiędzy == a ===

    pokaż spoiler Jeżeli podoba Ci się treść to zostaw plusa i czekaj na kolejne wpisy! ( ͡° ͜ʖ ͡°)
    PS. obserwuj #pytanianadeva


    Źródła dodatkowe:
    https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
    https://mvnrepository.com/

    TAGI
    #pytanianadeva #naukaprogramowania #programowanie #java #javascript #maven
    pokaż całość

    +: P..........0, Eoon +259 innych
  •  

    Hej!
    Zacznę od kilku słów wprowadzających. Nie mam lekkiego pióra i czasem mogę popełniać różne błędy. Wybaczcie korygujcie będziemy to załatwiać na bieżąco ( ͡° ͜ʖ ͡°)
    Druga sprawa jest taka, że nie spodziewałem się takiego odzewu. Wpis był głównie pod #naukaprogramowania i chyba zlecieli się wszyscy co do sztuki ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°) A więc czas zacząć!

    #pytanianadeva 1/01/18

    1.Wzorce projektowe: Singleton**
    Pytanie o wzorce projektowe pojawia się prawie zawsze. W tym przypadku **singleton
    jest antywzorcem. Singleton z definicji matematycznej to zbiór jednoelementowy czyli taki do którego należy tylko jeden element. W programowaniu oznacza to jedno: Jedna instancja i globalny dostęp do obiektu.
    No dobra skoro jest on taki anty to po co jest i dlaczego w ogóle go używać? Tutaj nasuwają mi się dwie propozycje:
    - Kiedy np. implementujemy obiekt, którego zadaniem jest przechowywanie o stanie np. o stanie aplikacji.
    - Kiedy chcemy przechowywać zmienne, które są wspólne dla aplikacji.

    Implementacja:
    ------------------------------------
    public final class Singleton {
    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
    return INSTANCE;
    }


    }
    ------------------------------------

    2. Unit Testing: _@Before i @BeforeClass_ || @BeforeEach i @BeforeAll
    Do czego nam służy adnotacja @Before? kod oznaczony tą adnotacją zostanie wykonany zawsze przed każdym testem w danej klasie.
    Do czego nam służy adnotacja @BeforeClass? kod oznaczony tą adnotacją zostanie wykonany raz przed uruchomieniem testów w danej klasie.
    Ok ale mamy jeszcze dwie adnotacje. @BeforeEach i @BeforeAll. Czym się one wszystkie różnią i kiedy której używać? Różnica jest taka, że pierwsze dwie należą do JUnit4 a dwie ostatnie do JUnit5. Są one swoimi odpowiednikami.

    3. Podaj różnice:PUT i POST**
    **PUT
    jest idempotentny a POST nie.
    PUT służy do aktualizowania istniejących danych a POST do tworzenia nowych

    Co znaczy, że PUT jest idempotentny? Że wynik zawsze jest taki sam jeżeli operacja została wykonana raz lub kilka razy

    pokaż spoiler Jeżeli podoba Ci się treść to zostaw plusa i czekaj na kolejne wpisy! ( ͡° ͜ʖ ͡°)
    PS. obserwuj #pytanianadeva!


    Źródła dodatkowe:
    https://en.wikipedia.org/wiki/Singleton_pattern
    https://howtoprogram.xyz/2016/08/10/junit-5-vs-junit-4/

    _TAGI:_
    #pytanianadeva #programowanie #naukaprogramowania #java #wzorceprojektowe #testowanieoprogramowania
    pokaż całość

  •  

    Mirki z #naukaprogramowania #programowanie i trochę #java. Mam duży zbiór pytań i zadań rekrutacyjnych, które często się pojawiają. W ramach utrwalenia wiedzy mogę dla Was opracowywać jedno pytanie dziennie. Niektóre są mega banalne a niektóre to trochę wyższa półka. Jak wpis zbierze odpowiednie zainteresowanie to jutro pojawi się pierwszy pod takiego #pytanianadeva pokaż całość

    +: B...........o, powaznyczlowiek +1822 innych
Ładuję kolejną stronę...

Archiwum tagów