{"id":2308,"date":"2026-05-29T21:47:53","date_gmt":"2026-05-29T21:47:53","guid":{"rendered":"https:\/\/vkrastev1blog.com\/?p=2308"},"modified":"2026-05-29T21:48:41","modified_gmt":"2026-05-29T21:48:41","slug":"questions-and-informations-prepairing-for-java-developer-job-interview","status":"publish","type":"post","link":"https:\/\/vkrastev1blog.com\/2026\/05\/29\/questions-and-informations-prepairing-for-java-developer-job-interview\/","title":{"rendered":"Vragen en informatie ter voorbereiding op een sollicitatiegesprek met Java Developer"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wat zijn SOLID-principes?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het Single Responsibility Principe (SRP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een klasse zou slechts \u00e9\u00e9n verantwoordelijkheid moeten hebben.<br>Er zou maar \u00e9\u00e9n reden moeten zijn om te veranderen.<br>Voordelen zijn onder meer eenvoudiger testen, minder koppeling en een betere organisatie.<br>Voorbeeld:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare les Boek {<br>priv\u00e9 Stringnaam;<br>priv\u00e9 String-auteur;<br>priv\u00e9 String-tekst;<br>\/\/ constructors, getters en setters<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het open-gesloten principe (OCP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Software-entiteiten (klassen, modules, functies) moeten open zijn voor uitbreiding, maar gesloten voor wijziging.<br>Bereik dit door gebruik te maken van interfaces, abstracte klassen en overerving.<br>Voorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">interface Vorm {<br>dubbel gebied();<br>}<br>class Circle implementeert Shape { \/* implementatie <em>\/ } klasse Rechthoek implementeert Vorm { \/<\/em> implementatie *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het Liskov-substitutieprincipe (LSP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Subtypen moeten vervangbaar zijn door hun basistypen zonder de correctheid van het programma te veranderen.<br>Volgt de &#8216;is-een&#8217;-relatie.<br>Voorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">klasse Vogel { \/* algemeen vogelgedrag <em>\/ } klasse Mus verlengt Vogel { \/<\/em> specifiek musgedrag *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het interface-segregatieprincipe (ISP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klanten mogen niet gedwongen worden afhankelijk te zijn van interfaces die ze niet gebruiken.<br>Splits grote interfaces op in kleinere, specifiekere interfaces.<br>Voorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">interface Werknemer {<br>ongeldig werk();<br>}<br>interface eter {<br>leegte eten();<br>}<br>klasse Robot implementeert Werker { \/* implementatie *\/ }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het afhankelijkheidsinversieprincipe (DIP):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modules op hoog niveau mogen niet afhankelijk zijn van modules op laag niveau; beide moeten afhankelijk zijn van abstracties.<br>Abstracties mogen niet afhankelijk zijn van details; details moeten afhangen van abstracties.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Abstractie<br>interface BerichtSender {<br>void sendMessage(String-bericht);<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Module op hoog niveau<br>klasse NotificatieService {<br>priv\u00e9berichtAfzender berichtAfzender;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public NotificationService(MessageSender messageSender) {<\/div><div class=\"cm-line\">    this.messageSender = messageSender;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void send(String message) {<\/div><div class=\"cm-line\">    messageSender.sendMessage(message);<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Laagniveaumodule<br>klasse EmailSender implementeert MessageSender {<br>@Overschrijven<br>public void sendMessage(String-bericht) {<br>System.out.println(&#8220;E-mail verzenden: &#8221; + bericht);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Nog een module op laag niveau<br>klasse SmsSender implementeert MessageSender {<br>@Overschrijven<br>public void sendMessage(String-bericht) {<br>System.out.println(&#8220;SMS verzenden: &#8221; + bericht);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Hoofdklasse<br>openbare klasse Hoofd {<br>public static void main(String[] args) {<br>\/\/ Gebruik EmailSender<br>MessageSender emailSender = nieuwe EmailSender();<br>NotificationService notificatieService1 = nieuwe NotificationService(emailSender);<br>notificatieService1.send(&#8220;Hallo via e-mail!&#8221;);<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/ Use SmsSender\n    MessageSender smsSender = new SmsSender();\n    NotificationService notificationService2 = new NotificationService(smsSender);\n    notificationService2.send(&#034;Hello via SMS!&#034;);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De MessageSender-interface fungeert als abstractie.<br>De module NotificationService op hoog niveau is afhankelijk van deze abstractie in plaats van van concrete implementaties.<br>Low-level modules zoals EmailSender en SmsSender zijn ook afhankelijk van de abstractie door de MessageSender-interface te implementeren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is normalisatie van SQL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is normalisatie?<br>Normalisatie omvat het structureren van gegevens binnen een relationele database om afwijkingen zoals redundantie te elimineren.<br>Het splitst grote, complexe tabellen op in kleinere, terwijl de gegevensrelaties behouden blijven.<br>Waarom is normalisatie belangrijk?<br>Vermindert redundantie: Door gegevens in kleinere tabellen op te splitsen, voorkomen we dat dezelfde informatie meerdere keren wordt opgeslagen.<br>Verbetert de prestaties van query&#8217;s: Kleinere genormaliseerde tabellen leiden tot een snellere uitvoering van query&#8217;s.<br>Minimaliseert update-afwijkingen: Updates kunnen worden uitgevoerd zonder andere records te be\u00efnvloeden.<br>Verbetert de gegevensintegriteit: zorgt voor consistente en nauwkeurige gegevens.<br>Scenario&#8217;s voor normalisatie:<br>Gegevensintegriteit: Voorkom inconsistenties bij het bijwerken van gegevens (bijvoorbeeld veranderingen in de leeftijd van klanten).<br>Effici\u00ebnte query&#8217;s: Vereenvoudig complexe query&#8217;s door gegevens op te splitsen.<br>Opslagoptimalisatie: Elimineer onnodige redundantie om ruimte te besparen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is Microservices-monoliet?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is monoliet?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een monolithische applicatie wordt gebouwd als \u00e9\u00e9n enkele, verenigde eenheid. Het koppelt alle componenten (zoals de client-side UI, database en server-side applicatie) nauw in \u00e9\u00e9n codebasis.<br>Voordelen:<br>Eenvoudige implementatie: Omdat het \u00e9\u00e9n uitvoerbaar bestand of map is, is de implementatie eenvoudig.<br>Ontwikkelingssnelheid: Vroeg in de levensfase van een project maken monolieten een snelle ontwikkeling mogelijk vanwege hun eenvoud.<br>Prestaties: Gecentraliseerde code kan verschillende functies verwerken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat zijn microservices?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microservices splitsen de applicatie op in kleinere, onafhankelijk inzetbare services. Elke dienst richt zich op een specifiek bedrijfsdomein.<br>Voordelen:<br>Schaalbaarheid: Microservices maken het onafhankelijk schalen van individuele componenten mogelijk.<br>Flexibiliteit: Ontwikkelaars kunnen voor elke service verschillende technologie\u00ebn kiezen.<br>Isolatie: Storingen in de ene dienst hebben geen invloed op andere.<br>Uitdagingen:<br>Complexiteit: Het beheren van meerdere services vereist een robuuste orkestratie.<br>Netwerkoverhead: Communicatie tussen services introduceert latentie.<br>Implementatiecomplexiteit: Het co\u00f6rdineren van updates tussen services kan lastig zijn.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is polymorfisme?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Methode overschrijven:<br>Wanneer een subklasse een specifieke implementatie biedt voor een methode die al in zijn superklasse is gedefinieerd.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Methode Overbelasting:<br>Wanneer een klasse meerdere methoden heeft met dezelfde naam maar met verschillende parameters (verschillend aantal of typen argumenten).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is het gebruik van particuliere constructeurs?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Private constructors worden gebruikt in nutsklassen of constante klassen.<br>Deze klassen bevatten alleen statische methoden of leden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Subclassificatie vermijden<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Constructeursdelegatie:<br>Priv\u00e9constructors maken constructordelegatie mogelijk, waarbij specifieke constructors een gemeenschappelijke priv\u00e9constructor aanroepen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Singleton-patroon<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over JVM<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Compilatie:<br>Wanneer u een .java-bestand compileert, genereert de Java-compiler .class-bestanden met bytecode (tussenweergave).<br>Bytecode is platformonafhankelijk en kan op elk systeem met een compatibele JVM draaien.<br>&#8211;Klasse ladersubsysteem:<br>Verantwoordelijk voor het laden van klassen in het geheugen.<br>Leest .class-bestanden, genereert binaire gegevens en slaat deze op in het methodegebied.<br>Cre\u00ebert een Class-object dat de geladen klasse in heap-geheugen vertegenwoordigt.<br>Voorbeeld: Student s1 = nieuwe Student(); Klasse c1 = s1.getClass();<br>&#8211;Linken:<br>Bestaat uit drie stappen:<br>Verificatie: Garandeert de juistheid van het .class-bestand.<br>Voorbereiding: wijst geheugen toe voor klassevariabelen en initialiseert deze.<br>Resolutie (optioneel): lost symbolische verwijzingen naar andere klassen of methoden op.<br>&#8211;Initialisatie:<br>Voert statische initialisatieprogramma&#8217;s uit (bijvoorbeeld statische blokken) en initialiseert statische variabelen.<br>Instantievariabelen worden ge\u00efnitialiseerd wanneer een object wordt gemaakt.<br>&#8211;Executie-engine:<br>Converteert bytecode naar machinecode.<br>Inclusief Just-In-Time (JIT)-compilatie voor prestatie-optimalisatie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Samenvattend zorgt de JVM ervoor dat Java-programma&#8217;s overal kunnen worden uitgevoerd door bytecode te interpreteren en geheugen te beheren<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is de Privat abstracte methode?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Gebruiksscenario&#8217;s voor priv\u00e9methoden in abstracte klassen:<br>Hoewel abstracte methoden niet priv\u00e9 kunnen zijn, kunt u priv\u00e9methoden binnen een abstracte klasse voor verschillende doeleinden gebruiken:<br>&#8211;Helpermethoden: Implementeer gemeenschappelijke functionaliteit die door andere methoden wordt gedeeld.<br>&#8211;Inkapseling: implementatiedetails verbergen voor subklassen.<br>&#8211;Struct-achtige klassen: maak kleine klassen met priv\u00e9methoden die dienen als gegevenscontainers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is een afvalverzamelaar?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Heap-geheugen:<br>Java-objecten worden gemaakt in de heap, een speciaal geheugengebied.<br>Sommige objecten worden onbereikbaar (er wordt niet langer naar verwezen door het programma).<br>&#8211;Vuilnisverzamelaar (GC):<br>De GC identificeert en verwijdert ongebruikte objecten om geheugen vrij te maken.<br>Het draait automatisch op de achtergrond.<br>Twee soorten:<br>Minor GC: Verwijdert onbereikbare objecten in de jonge generatie.<br>Major GC (Full GC): Wist objecten van de oude generatie.<br>&#8211;Voordelen:<br>Ontwikkelaars hoeven objecten niet expliciet te verwijderen.<br>GC garandeert de beschikbaarheid van geheugen en voorkomt OutOfMemoryErrors<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is OOP?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vier principes van OOP:<br>&#8211;Inkapseling: het samenbundelen van gegevens (attributen) en methoden (functies) binnen een klasse om implementatiedetails te verbergen en een schone interface te bieden.<br>&#8211;Overerving: het cre\u00ebren van nieuwe klassen op basis van bestaande klassen, waarbij hun attributen en gedrag worden ge\u00ebrfd. Het bevordert hergebruik van code.<br>&#8211;Polymorfisme: toestaan \u200b\u200bdat objecten van verschillende klassen uniform worden behandeld via een gemeenschappelijke interface. Het maakt flexibiliteit en uitbreidbaarheid mogelijk.<br>&#8211;Abstractie: Focussen op essenti\u00eble kenmerken terwijl onnodige complexiteiten verborgen blijven. Abstractie vereenvoudigt het ontwerp en maakt het beter beheersbaar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is ACID-eigenschappen spelen een cruciale rol bij het garanderen van de betrouwbaarheid en consistentie van transacties.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Atomiciteit:<br>Transacties worden geheel of helemaal niet uitgevoerd.<br>Geen gedeeltelijke uitvoering: Als een transactie halverwege mislukt, worden eventuele wijzigingen in de database teruggedraaid.<br>Voorbeeld: Overweeg om \u20ac 100 over te maken van rekening X naar rekening Y. Als de transactie mislukt nadat deze van X is afgetrokken maar voordat deze aan Y is toegevoegd, blijft de database consistent.<br>&#8211;Samenhang:<br>De database moet voor en na een transactie integriteitsbeperkingen handhaven.<br>Voorbeeld: Als het totale bedrag v\u00f3\u00f3r een transactie \u20ac700 bedraagt \u200b\u200b(X: \u20ac500, Y: \u20ac200), moet dit na de transactie hetzelfde blijven (X: \u20ac400, Y: \u20ac300).<br>&#8211;Isolatie:<br>Er kunnen meerdere transacties tegelijkertijd plaatsvinden zonder dat ze elkaar be\u00efnvloeden.<br>Wijzigingen die door \u00e9\u00e9n transactie worden aangebracht, zijn pas zichtbaar voor anderen als ze zijn vastgelegd.<br>Garandeert gelijkwaardige resultaten alsof transacties serieel worden uitgevoerd.<br>Voorbeeld: Het isoleren van transacties voorkomt inconsistenties als gevolg van verweven bewerkingen.<br>&#8211;Duurzaamheid:<br>Zodra een transactie is vastgelegd, zijn de wijzigingen permanent.<br>Overleeft systeemstoringen of crashes.<br>Zorgt voor persistentie van gegevens.<br>Voorbeeld: Zelfs nadat het systeem opnieuw is opgestart, blijven vastgelegde wijzigingen intact.<br>Vergeet niet dat ACID-eigenschappen de basis vormen voor betrouwbare en consistente databasebewerkingen! \ud83c\udf1f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat is een strategiepatroon?<br>Beschrijving: Definieert een familie van algoritmen, kapselt ze allemaal in en maakt ze uitwisselbaar. Hierdoor kan het algoritme onafhankelijk vari\u00ebren van de clients die het gebruiken.<br>Voorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Interface voor eetgedrag<br>interface Eetgedrag {<br>leegte eten();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Concrete implementaties van eetgedrag<br>klasse NormalDiet implementeert Eetgedrag {<br>@Overschrijven<br>openbare leegte eten() {<br>\/\/ Normaal eten<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">klasse LosingWeightDiet implementeert EatBehavior {<br>@Overschrijven<br>openbare leegte eten() {<br>\/\/ Gezonde voeding<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Kattenklas met eetgedrag<br>abstracte klasse Kat {<br>EetGedrag eetGedrag;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public void eat() {<\/div><div class=\"cm-line\">    eatBehavior.eat();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void setEatBehavior(EatBehavior eatBehavior) {<\/div><div class=\"cm-line\"> this.eatBehavior = eatBehavior;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Gebruik<br>Kat kat = nieuwe Kat();<br>cat.setEatBehavior(nieuw LosingWeightDiet());<br>kat.eet(); \/\/ Kat eet gezonder<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creatiepatronen:<br>Deze patronen zijn gericht op klasse-instantiatie.<br>Voorbeelden inbegrepen<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Fabrieksmethode,<br>Probleemstelling: Stel dat we verschillende soorten producten willen maken (bijvoorbeeld auto&#8217;s, fietsen, fietsen) zonder onze code nauw te koppelen aan specifieke implementaties.<br>Belangrijkste componenten:<br>Product: Een abstracte klasse of interface die algemene bewerkingen definieert voor de objecten die de fabriek gaat maken.<br>Concrete producten: feitelijke klassen die de productinterface implementeren en specifieke typen objecten vertegenwoordigen.<br>Maker: een abstracte klasse of interface die de fabrieksmethode declareert. Het is verantwoordelijk voor het maken van Product-objecten, maar delegeert de daadwerkelijke creatie aan subklassen.<br>Concrete Creators: Subklassen van de Creator die de fabrieksmethode implementeren. Ze beslissen welk specifiek betonproduct ze willen maken op basis van invoerparameters of configuratie.<br>Fabrieksmethode: een methode die is gedefinieerd in de klasse Creator en die Product-objecten maakt. Het wordt doorgaans als abstract gedeclareerd in de Creator en ge\u00efmplementeerd in de Concrete Creators.<br>Voorbeeld in Java: Laten we zeggen dat we een fabriek hebben die verschillende soorten voertuigen produceert. Hier is een vereenvoudigd voorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ AbstractProduct<br>interfaceproduct {<br>ongeldige weergave();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Betonproducten<br>klasse Autowerktuigen Product {<br>openbare leegteweergave() {<br>System.out.println(&#8220;Auto gemaakt&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">klasse Fietswerktuigen Product {<br>openbare leegteweergave() {<br>System.out.println(&#8220;Fiets gemaakt&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Schepper (fabriek)<br>interface Fabriek {<br>ProductfabriekMethode();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Betonmakers<br>klasse ConcreteFactoryA implementeert Factory {<br>openbare productfabriekMethode() {<br>nieuwe auto retourneren();<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">klasse ConcreteFactoryB implementeert Factory {<br>openbare productfabriekMethode() {<br>retourneer nieuwe fiets();<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse FactoryMethodExample {<br>public static void main(String[] args) {<br>FabrieksfabriekA = nieuwe BetonFabriekA();<br>ProductproductA = fabriekA.factoryMethod();<br>productA.display();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    Factory factoryB = new ConcreteFactoryB();\n    Product productB = factoryB.factoryMethod();\n    productB.display();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Bouwer<br>Het Builder Pattern is een creatief ontwerppatroon waarmee u stap voor stap complexe objecten kunt construeren,<br>hun constructie te scheiden van hun representatie. Hier is een eenvoudig voorbeeld in Java:<br>\/\/ Definieer de klasse die u wilt bouwen<br>klasse bericht {<br>priv\u00e9 finale Stringtitel;<br>priv\u00e9 finale String-tekst;<br>priv\u00e9 finale Stringcategorie;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">Post(Builder builder) {<\/div><div class=\"cm-line\">    this.title = builder.title;<\/div><div class=\"cm-line\">    this.text = builder.text;<\/div><div class=\"cm-line\">    this.category = builder.category;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Getters for properties<\/div><div class=\"cm-line\">public String getTitle() {<\/div><div class=\"cm-line\">    return title;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public String getText() {<\/div><div class=\"cm-line\">    return text;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public String getCategory() {<\/div><div class=\"cm-line\">    return category;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Builder class<\/div><div class=\"cm-line\">public static class Builder {<\/div><div class=\"cm-line\">    private String title;<\/div><div class=\"cm-line\">    private String text;<\/div><div class=\"cm-line\">    private String category;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder title(String title) {<\/div><div class=\"cm-line\">        this.title = title;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder text(String text) {<\/div><div class=\"cm-line\">        this.text = text;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Builder category(String category) {<\/div><div class=\"cm-line\">        this.category = category;<\/div><div class=\"cm-line\">        return this;<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public Post build() {<\/div><div class=\"cm-line\">        return new Post(this);<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Gebruik<br>openbare klasse Hoofd {<br>public static void main(String[] args) {<br>Bericht plaatsen = nieuwe Post.Builder()<br>.title(&#8220;Java Builder-patroon&#8221;)<br>.text(&#8220;Uitleg hoe u het Builder-patroon in Java implementeert&#8221;)<br>.category(&#8220;Ontwerppatronen&#8221;)<br>.bouwen();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    System.out.println(&#034;Title: &#034; + post.getTitle());\n    System.out.println(&#034;Text: &#034; + post.getText());\n    System.out.println(&#034;Category: &#034; + post.getCategory());\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Prototype<br>Het Prototypepatroon is een creatief ontwerppatroon waarmee u nieuwe objecten kunt maken door een bestaand object te kopi\u00ebren.<br>In plaats van helemaal opnieuw nieuwe exemplaren te maken, kloont u een bestaand prototype, wat effici\u00ebnter en flexibeler kan zijn. Laten we eens kijken naar een voorbeeld in Java:<br>Definieer de prototype-interface: eerst maken we een abstracte klasse of interface genaamd Tree met een abstracte methode copy():<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare abstracte klasse Boom {<br>openbare samenvatting Tree copy();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concrete prototypes: Vervolgens implementeren we twee betonklassen die Tree uitbreiden: PlasticTree en PineTree. Deze klassen vertegenwoordigen specifieke soorten bomen en bieden hun eigen implementatie van de copy() -methode:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse PlasticTree breidt Tree uit {<br>@Overschrijven<br>openbare boomkopie() {<br>PlasticTree plasticTreeClone = nieuwe PlasticTree(this.getMass(), this.getHeight());<br>plasticTreeClone.setPosition(deze.getPosition());<br>plasticTreeClone retourneren;<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse PineTree breidt Tree uit {<br>@Overschrijven<br>openbare boomkopie() {<br>PineTree pineTreeClone = nieuwe PineTree(this.getMass(), this.getHeight());<br>pineTreeClone.setPosition(deze.getPosition());<br>retourneerboomKloon;<br>}<br>}<br>In deze lessen passen we het kloonproces aan op basis van het specifieke boomtype. We kopi\u00ebren bijvoorbeeld de massa, hoogte en positie van de originele boom.<br>Gebruik: Laten we nu exemplaren van onze concrete prototypes maken:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse Hoofd {<br>public static void main(String[] args) {<br>Boom origineelPlasticTree = nieuwe PlasticTree(10, 5);<br>Boom gekloondPlasticTree = originalPlasticTree.copy();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    Tree originalPineTree = new PineTree(15, 8);\n    Tree clonedPineTree = originalPineTree.copy();\n\n    \/\/ Use the cloned trees as needed\n    \/\/ ...\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wat zijn structurele patronen?<br>Deze patronen hebben te maken met de structuur en samenstelling van een klas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Adapterpatroon<br>Het Adapterpatroon is een structureel ontwerppatroon waarmee u twee incompatibele interfaces kunt laten samenwerken.<br>Het fungeert als een brug tussen deze interfaces en maakt samenwerking mogelijk zonder de broncode te wijzigen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Objectadapter:<br>Bij deze aanpak gebruiken we compositie om logica naar de adapter te delegeren.<br>De adapter bevat de Adaptee en delegeert de methode request() aan de methode specificRequest() in de Adaptee.<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adaptee (bestaande klas)<br>klasse adaptee {<br>void gespecificeerdRequest() {<br>System.out.println(&#8220;Specifiek verzoek van Adaptee&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Doelinterface<br>interface Doel {<br>ongeldig verzoek();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adapter (met behulp van compositie)<br>klasse Adapter implementeert Target {<br>priv\u00e9 finale Adaptee adaptee;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">Adapter(Adaptee adaptee) {<\/div><div class=\"cm-line\">    this.adaptee = adaptee;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void request() {<\/div><div class=\"cm-line\">    adaptee.specificRequest();<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">KlasseAdapter:<br>Vereist meervoudige overerving (niet direct mogelijk in Java).<br>We kunnen dit bereiken met behulp van interfaces met standaardmethoden.<br>De adapter breidt zowel de Target- als de Adaptee-klassen uit.<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Doelinterface<br>interface Doel {<br>ongeldig verzoek();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adaptee (bestaande klas)<br>klasse adaptee {<br>void gespecificeerdRequest() {<br>System.out.println(&#8220;Specifiek verzoek van Adaptee&#8221;);<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adapter (met behulp van klassenovererving)<br>klasse Adapter verlengt Adaptee-werktuigen Doel {<br>@Overschrijven<br>openbaar ongeldig verzoek() {<br>gespecificeerdRequest();<br>}<br>}<br>Voordelen en afwegingen:<br>Class Adapter werkt goed voor \u00e9\u00e9n-op-\u00e9\u00e9n methodetoewijzing.<br>Object Adapter biedt meer flexibiliteit en vermijdt codewijzigingen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Decorateurpatroon<br>Het Decoratorpatroon is een creatief ontwerppatroon waarmee u op dynamische wijze functionaliteit en gedrag aan een object kunt toevoegen<br>die het gedrag van andere bestaande objecten binnen dezelfde klasse be\u00efnvloeden. Het is met name handig als u de objecten van een object wilt uitbreiden<br>mogelijkheden zonder de structuur ervan te veranderen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Overzicht:<br>Het Decoratorpatroon biedt een verbeterde interface met het originele object door er extra functionaliteit aan toe te voegen.<br>We geven de voorkeur aan compositie boven overerving om de overhead van subklassen te verminderen.<br>Decorateurs kunnen tijdens de looptijd worden toegevoegd, wat flexibiliteit mogelijk maakt.<br>Voorbeeldscenario: Stel dat we een kerstboomobject hebben en dit willen versieren met verschillende items, zoals slingers, klatergoud en bellenlichten. We volgen de originele ontwerpconventies van de Gang of Four:<br>Uitvoering:<br>Maak eerst een ChristmasTree-interface:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare interface Kerstboom {<br>Tekenreeks versieren();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Implementeer de interface met een basisboom:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse ChristmasTreeImpl implementeert ChristmasTree {<br>@Overschrijven<br>openbare String versieren() {<br>retourneer &#8220;Kerstboom&#8221;;<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maak vervolgens een abstracte TreeDecorator-klasse die ChristmasTree implementeert en de versierde boom vasthoudt:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare abstracte klasse TreeDecorator implementeert ChristmasTree {<br>priv\u00e9 laatste kerstboom;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public TreeDecorator(ChristmasTree tree) {<\/div><div class=\"cm-line\">    this.tree = tree;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return tree.decorate();<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maak nu specifieke decorateurs. BubbleLights bijvoorbeeld:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class BubbleLights breidt TreeDecorator uit {<br>openbare BubbleLights(kerstboom) {<br>super(boom);<br>}<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return super.decorate() + &quot; with Bubble Lights&quot;;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class Garland breidt TreeDecorator uit {<br>openbare slinger(kerstboom) {<br>super(boom);<br>}<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public String decorate() {<\/div><div class=\"cm-line\">    return super.decorate() + &quot; with Garland&quot;;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<br>Gebruik:<br>Versierde bomen maken:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse DecoratorPatternDemo {<br>public static void main(String[] args) {<br>Kerstboomboom1 = nieuwe slinger(nieuwe KerstboomImpl());<br>Systeem.out.println(boom1.decorate()); \/\/ Uitvoer: &#8220;Kerstboom met slinger&#8221;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    ChristmasTree tree2 = new BubbleLights(new Garland(new Garland(new ChristmasTreeImpl())));\n    System.out.println(tree2.decorate()); \/\/ Output: &#034;Christmas tree with Garland with Garland with Bubble Lights&#034;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<br>Het patroon maakt het mogelijk om tijdens de looptijd decorateurs toe te voegen, waardoor u de flexibiliteit heeft om naar behoefte te decoreren.<br>Houd er rekening mee dat het Decoratorpatroon veel wordt gebruikt in scenario&#8217;s waarin u het gedrag van een object wilt verbeteren zonder de kernstructuur ervan te wijzigen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Gevelpatroon<br>Het gevelpatroon is een structureel ontwerppatroon dat de interactie met een complex subsysteem vereenvoudigt door een uniforme interface te bieden.<br>Het fungeert als een \u2018voordeur\u2019 om de onderliggende complexiteit te verbergen en het voor klanten gemakkelijker te maken het systeem te gebruiken<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;Composiet<br>Het samengestelde patroon is een structureel ontwerppatroon waarmee u objecten in boomstructuren kunt samenstellen om deel-gehele hi\u00ebrarchie\u00ebn weer te geven.<br>Het belangrijkste idee achter het Composite Pattern is het bouwen van een boomstructuur van objecten, waarbij individuele objecten en samengestelde objecten een gemeenschappelijke interface delen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Basiscomponent (afdeling): We defini\u00ebren een eenvoudige afdelingsinterface als onze basiscomponent:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare interface Afdeling {<br>void printAfdelingsnaam();<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Leaf Components (FinancialDepartment en SalesDepartment): Laten we klassen maken voor financi\u00eble en verkoopafdelingen, die beide de afdelingsinterface implementeren:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class FinancialDepartment implementeert Afdeling {<br>\/\/ Implementatiedetails (bijv. ID, naam)<br>public void printDepartmentName() {<br>Systeem.out.println(getClass().getSimpleName());<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class SalesDepartment implementeert Afdeling {<br>\/\/ Implementatiedetails (bijv. ID, naam)<br>public void printDepartmentName() {<br>Systeem.out.println(getClass().getSimpleName());<br>}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deze leaf-klassen implementeren de methode printDepartmentName() en bevatten geen verwijzingen naar andere Department-objecten.<br>Samengesteld element (HeadDepartment): Laten we als samengestelde klasse een HeadDepartment maken die een verzameling afdelingscomponenten bevat:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">java.util.ArrayList importeren;<br>java.util.List importeren;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">public class HeadDepartment implementeert Afdeling {<br>priv\u00e9 geheel getal-ID;<br>priv\u00e9 Stringnaam;<br>priv\u00e9 Lijst kindAfdelingen;<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public HeadDepartment(Integer id, String name) {<\/div><div class=\"cm-line\">    this.id = id;<\/div><div class=\"cm-line\">    this.name = name;<\/div><div class=\"cm-line\">    this.childDepartments = new ArrayList&lt;&gt;();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void printDepartmentName() {<\/div><div class=\"cm-line\">    childDepartments.forEach(Department::printDepartmentName);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void addDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.add(department);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void removeDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.remove(department);<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De klasse HeadDepartment implementeert de methode printDepartmentName() en biedt methoden voor het toevoegen en verwijderen van onderliggende afdelingen.<br>Gebruik: u kunt exemplaren maken van bladafdelingen (bijvoorbeeld FinancialDepartment, SalesDepartment) en een samengestelde afdeling (bijvoorbeeld HeadDepartment). Voeg bladafdelingen toe aan de composiet en druk hun namen af.<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse Hoofd {<br>public static void main(String[] args) {<br>Afdelingsfinanci\u00ebn = new FinancialDepartment();<br>Afdelingsverkoop = new SalesDepartment();<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    HeadDepartment headDepartment = new HeadDepartment(1, &#034;Company Departments&#034;);\n    headDepartment.addDepartment(finance);\n    headDepartment.addDepartment(sales);\n\n    headDepartment.printDepartmentName();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uitgang:<br>Financi\u00eble afdeling<br>Verkoopafdeling<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Met het Composite Pattern kunt u flexibele boomstructuren cre\u00ebren waar u maar wilt<br>individual objects and compositions (composites) can be treated uniformly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What is HASH Function !!!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een hash-functie is een wiskundige functie die een invoer (of &#8220;bericht&#8221;) gebruikt en een reeks tekens met een vaste grootte retourneert,<br>dat is meestal een reeks cijfers en letters. Deze uitvoer wordt een &#8220;hashwaarde&#8221; of eenvoudigweg een &#8220;hash&#8221; genoemd.<br>Hash-functies worden vaak gebruikt in de informatica en cryptografie en hebben een aantal belangrijke eigenschappen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Hoe zou u de hash-functie gebruiken en hoe werkt deze?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deterministisch: dezelfde invoer zal altijd dezelfde hash opleveren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fast: The function can quickly compute the hash value for any given input.<br>Uniek (bijna): twee verschillende invoergegevens moeten verschillende hashes produceren (dit staat bekend als het minimaliseren van &#8220;botsingen&#8221;).<br>Irreversible: Given a hash, it should be computationally infeasible to determine the original input.<br>Uniform: De hashwaarden worden gelijkmatig verdeeld over de uitvoerruimte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hash-functies worden veel gebruikt in verschillende toepassingen, zoals:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gegevensintegriteit: Om ervoor te zorgen dat gegevens niet zijn gewijzigd of vervalst, door hashwaarden te vergelijken.<br>Wachtwoordopslag: het veilig opslaan van gehashte wachtwoorden in plaats van de daadwerkelijke wachtwoorden.<br>Cryptografie: gebruikt in digitale handtekeningen en andere cryptografische algoritmen.<br>Hashtabellen: voor het effici\u00ebnt ophalen van gegevens bij het programmeren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Geef me een voorbeeld van een hashkaart, hoe zou je deze gebruiken?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SHA (veilig hash-algoritme):<br>Bevat varianten zoals SHA-1, SHA-256, SHA-384 en SHA-512.<br>SHA-256 en SHA-512 worden veel gebruikt in cryptografie en blockchain-technologie (bijvoorbeeld Bitcoin).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">import java.security.MessageDigest;<br>import java.security.NoSuchAlgorithmException;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">openbare klasse HashExample {<br>public static void main(String[] args) {<br>poging {<br>\/\/ De invoertekenreeks die moet worden gehasht<br>Stringinvoer = &#8220;Hallo wereld!&#8221;;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>        \/\/ Create a MessageDigest instance for SHA-256\n        MessageDigest digest = MessageDigest.getInstance(&#034;SHA-256&#034;);\n\n        \/\/ Compute the hash\n        byte&#091;] hash = digest.digest(input.getBytes());\n\n        \/\/ Convert the hash bytes to a hexadecimal string\n        StringBuilder hexString = new StringBuilder();\n        for (byte b : hash) {\n            String hex = String.format(&#034;%02x&#034;, b);\n            hexString.append(hex);\n        }\n\n        \/\/ Print the resulting hash\n        System.out.println(&#034;SHA-256 Hash: &#034; + hexString.toString());\n    } catch (NoSuchAlgorithmException e) {\n        System.err.println(&#034;Error: &#034; + e.getMessage());\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Invoergegevens: De invoervariabele bevat de gegevens die u wilt hashen.<br>Initialisatie van MessageDigest: de instantie MessageDigest wordt gemaakt met behulp van getInstance(&#8220;SHA-256&#8221;), dat het hash-algoritme van SHA-256 specificeert.<br>Hashing: De digest-methode berekent de hash van de invoergegevens.<br>Hexadecimale conversie: Omdat de hash een binair formaat heeft, gebruiken we een lus om deze om te zetten in een beter leesbare hexadecimale reeks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Putten en patchen? Wanneer moet je het gebruiken?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zowel PUT als PATCH zijn HTTP-methoden die worden gebruikt om bronnen op een server bij te werken, maar ze verschillen in de manier waarop ze met updates omgaan:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NEERZETTEN:<br>Volledige update:<br>PUT wordt gebruikt om een \u200b\u200bbestaande bron volledig te vervangen.<br>De volledige resource moet in het verzoek worden verzonden, zelfs als slechts een deel ervan wordt gewijzigd.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als de bron niet bestaat, maakt PUT deze vaak aan (hoewel dit gedrag kan vari\u00ebren).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotent:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herhaalde PUT-verzoeken met dezelfde gegevens resulteren altijd in dezelfde status van de bron.<br>Voorbeeld: het profiel van een gebruiker bijwerken:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>PUT \/gebruikers\/123<br>{<br>&#8220;naam&#8221;: &#8220;Velislav&#8221;,<br>&#8220;email&#8221;: &#8220;velislav@example.com&#8221;,<br>&#8220;leeftijd&#8221;: 30<br>}<br>Indien alleen de naam verandert maar het e-mailadres en de leeftijd hetzelfde blijven, moeten deze alsnog in de aanvraag worden opgenomen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PATCHES:<br>Gedeeltelijke update:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PATCH wordt gebruikt om een \u200b\u200bgedeeltelijke update van een bestaande bron uit te voeren.<br>Alleen de velden die gewijzigd worden, hoeven in de aanvraag meegestuurd te worden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotent (meestal):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Net als PUT resulteren herhaalde PATCH-verzoeken met dezelfde gegevens doorgaans in dezelfde status van de bron.<br>Het gedrag kan echter afhankelijk zijn van de serverimplementatie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voorbeeld: alleen de gebruikersnaam bijwerken:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>PATCH \/gebruikers\/123<br>{<br>&#8220;naam&#8221;: &#8220;Velislav&#8221;<br>}<br>Hier wordt alleen het naamveld bijgewerkt, terwijl andere velden ongewijzigd blijven.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Belangrijkste verschil:<br>PUT vervangt de volledige bron, terwijl PATCH alleen gespecificeerde velden van de bron wijzigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HTTP-methoden met een korte beschrijving.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GET: Wordt gebruikt om gegevens van de server op te halen zonder deze te wijzigen. Vaak gebruikt voor het ophalen van bronnen of informatie.<br>POST: Wordt gebruikt om gegevens naar de server te verzenden, meestal om een \u200b\u200bnieuwe bron te maken. Bijvoorbeeld het indienen van een formulier of het uploaden van een bestand.<br>PUT: Wordt gebruikt om een \u200b\u200bbestaande bron op de server bij te werken of volledig te vervangen. Als de bron niet bestaat, kan deze worden gemaakt.<br>PATCH: Wordt gebruikt voor gedeeltelijke updates van een bestaande bron, waarbij alleen de opgegeven velden worden gewijzigd.<br>DELETE: Wordt gebruikt om een \u200b\u200bbron van de server te verwijderen.<br>HEAD: Vergelijkbaar met GET, gebruikt om headers op te halen zonder de hoofdtekst van een bron.<br>OPTIES: Het vertelt welke HTTP-methoden zijn toegestaan.<br>TRACE: voornamelijk gebruikt voor diagnostische doeleinden door het verzoek terug te sturen naar de client<br>VERBINDEN: Brengt een tunnel tot stand naar de server, vaak gebruikt voor SSL\/TLS-verbindingen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">========== Functionele interface ===================================<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een functionele interface in Java is een interface die precies \u00e9\u00e9n abstracte methode bevat. Deze interfaces worden voornamelijk gebruikt in lambda-expressies en methodereferenties, waardoor een beknopter en leesbaarder functioneel programmeren mogelijk wordt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Belangrijkste kenmerken:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Enkele abstracte methode<\/strong>: Een functionele interface heeft slechts \u00e9\u00e9n abstracte methode. Dit is de essentie van zijn functionaliteit.<\/li>\n\n\n\n<li><strong>Standaard- en statische methoden<\/strong>: Functionele interfaces kunnen standaard- en statische methoden bevatten, maar deze tellen niet als de enige abstracte methode.<\/li>\n\n\n\n<li><strong>@FunctionalInterface-annotatie<\/strong>: Hoewel deze annotatie optioneel is, helpt het door aan te geven dat de interface bedoeld is om functioneel te zijn. Als er aanvullende abstracte methoden aan de interface worden toegevoegd, genereert de compiler een fout.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Voorbeeld:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">@FunctionalInterface<\/div><div class=\"cm-line\">interface Calculator {<\/div><div class=\"cm-line\">    int calculate(int a, int b);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Using lambda expression<\/div><div class=\"cm-line\">public class Main {<\/div><div class=\"cm-line\">    public static void main(String[] args) {<\/div><div class=\"cm-line\">        \/\/ Implementing the calculate method using a lambda<\/div><div class=\"cm-line\">        Calculator addition = (a, b) -&gt; a + b;<\/div><div class=\"cm-line\">        Calculator multiplication = (a, b) -&gt; a * b;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        System.out.println(&quot;Addition: &quot; + addition.calculate(5, 3));  \/\/ Output: 8<\/div><div class=\"cm-line\">        System.out.println(&quot;Multiplication: &quot; + multiplication.calculate(5, 3));  \/\/ Output: 15<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Gebruiksscenario:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">De <code>Calculator<\/code> interface in het voorbeeld heeft \u00e9\u00e9n abstracte methode <code>calculate<\/code>, waardoor het een functionele interface wordt.<br>Hierdoor kunnen we lambda-uitdrukkingen gebruiken voor beknoptheid en elegantie bij de implementatie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gemeenschappelijke functionele interfaces in Java:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java biedt verschillende ingebouwde functionele interfaces in de <code>java.util.function<\/code> pakketten, zoals:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Predikaat<\/strong>: Neemt een invoer en retourneert een Booleaanse waarde.<\/li>\n\n\n\n<li><strong>Functie<\/strong>: Neemt een invoer en retourneert een uitvoer van het type R.<\/li>\n\n\n\n<li><strong>Leverancier<\/strong>: Geeft een waarde zonder invoer.<\/li>\n\n\n\n<li><strong>Consument<\/strong>: Accepteert een waarde en voert een actie uit.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Functionele interfaces stroomlijnen de bewerkingen, vooral in scenario&#8217;s zoals het werken met verzamelingen, streams of asynchrone taken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ze stellen Java in staat functionele programmeerparadigma&#8217;s over te nemen, terwijl het objectgeori\u00ebnteerde karakter ervan behouden blijft.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">================ functie van hogere orde is ============================<br>Een functie van hogere orde is een functie die andere functies als argumenten gebruikt of een functie als resultaat retourneert. Met andere woorden, het werkt op basis van functies en behandelt hen als &#8216;eersteklasburgers&#8217;. Dit is een krachtige functie in functionele programmeerparadigma&#8217;s, die abstractie, hergebruik van code en compositie mogelijk maakt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Voorbeeld van een functie van hogere orde in Java:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">import java.util.function.Function;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class Main {<\/div><div class=\"cm-line\">    public static void main(String[] args) {<\/div><div class=\"cm-line\">        \/\/ Higher-order function: applies a function to a value<\/div><div class=\"cm-line\">        Function&lt;Integer, Integer&gt; squareFunction = x -&gt; x * x;<\/div><div class=\"cm-line\">        int result = applyFunction(5, squareFunction);<\/div><div class=\"cm-line\">        System.out.println(&quot;Square of 5: &quot; + result);  \/\/ Output: 25<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public static int applyFunction(int value, Function&lt;Integer, Integer&gt; function) {<\/div><div class=\"cm-line\">        return function.apply(value);<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">In het bovenstaande voorbeeld:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>De <code>applyFunction<\/code> methode is een functie van hogere orde omdat deze een andere functie accepteert (<code>Function&lt;Integer, Integer&gt;<\/code>) als parameter.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Functies:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Accepteert functies als argumenten<\/strong>: Functies van hogere orde kunnen andere functies als invoer gebruiken om specifieke bewerkingen uit te voeren.<\/li>\n\n\n\n<li><strong>Retourneert functies<\/strong>: Ze kunnen dynamisch nieuwe functies genereren en retourneren.<\/li>\n\n\n\n<li><strong>Moedigt hergebruik van code aan<\/strong>: Bevordert modulaire en herbruikbare code, omdat functies kunnen worden doorgegeven en samen kunnen worden samengesteld.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Gebruiksscenario:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Java worden functies van hogere orde vaak gebruikt bij functioneel programmeren met streams, lambdas en methodereferenties. Bijvoorbeeld:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">List&lt;String&gt; names = Arrays.asList(&quot;John&quot;, &quot;Jane&quot;, &quot;Jake&quot;);<\/div><div class=\"cm-line\">names.stream()<\/div><div class=\"cm-line\">     .filter(name -&gt; name.startsWith(&quot;J&quot;))  \/\/ Takes a lambda function as argument<\/div><div class=\"cm-line\">     .forEach(System.out::println);         \/\/ Takes a method reference as argument<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Functies van hogere orde bieden Java-programma&#8217;s flexibiliteit en kracht, waardoor ontwikkelaars schone, beknopte en expressieve code kunnen schrijven!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier vindt u enkele echte interviewreacties.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Begrijpt basisprincipes zoals polymorfisme, statische methoden en String-pool<\/li>\n\n\n\n<li>bekend met collecties (bijv. HashSet, TreeSet) en hun gebruiksscenario&#8217;s.<\/li>\n\n\n\n<li>Identificeert bonenscopes correct (singleton, prototype)<\/li>\n\n\n\n<li>Bewust van afhankelijkheidsinjectie en het doel ervan.<\/li>\n\n\n\n<li>knows how to implement many-to-many relationships using junction tables.<\/li>\n\n\n\n<li>Understands the purpose of indexes (though superficially)<\/li>\n\n\n\n<li>can differentiate between monolithic and microservice architectures<\/li>\n\n\n\n<li>understands basic trade-offs (scalability, maintainability)<\/li>\n\n\n\n<li>misunderstands Liskov Substitution Principle and Dependency Inversion<\/li>\n\n\n\n<li>Struggles to provide concrete examples for Open\/Closed Principle.<\/li>\n\n\n\n<li>Lacks depth in bean lifecycle management<\/li>\n\n\n\n<li>Unclear on advanced dependency injection<\/li>\n\n\n\n<li>superficial understanding of indexes (composite indexes, query optimization)<\/li>\n\n\n\n<li>Unfamiliar with isolation levels and optimistic\/pessimistic locking<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pros:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Worked with legacy code in a huge and complex system<\/li>\n\n\n\n<li>Knows SOLID<\/li>\n\n\n\n<li>Knowledge of streams<\/li>\n\n\n\n<li>Explained indexes and ACID<\/li>\n\n\n\n<li>Good level of English<br>Cons:<\/li>\n\n\n\n<li>No responsibility for deployment or infrastructure, participation in architecture design<\/li>\n\n\n\n<li>Has some knowledge of the OOP principles but really struggled to explain them and got some concepts wrong<\/li>\n\n\n\n<li>General knowledge of collections but has gaps and very uncertain<\/li>\n\n\n\n<li>Doesn\u2019t understand the difference between concurrency and parallelism, not very strong knowledge of concurrency<\/li>\n\n\n\n<li>Not looked into the micro service architecture much<\/li>\n\n\n\n<li>Vague on some database concepts (indexes discussion was surface-level)<\/li>\n\n\n\n<li>Couldn&#8217;t explain livelock<\/li>\n\n\n\n<li>Gaps in finally block understanding<\/li>\n\n\n\n<li>Limited knowledge of exception handling specifics<\/li>\n\n\n\n<li>Confused around access modifiers (Protected vs. Package Private)<br>The consensus opinion \u2026..is<br>not suitable for the Mid-Java developer position due to the gaps in his technical knowledge.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pros<br>Explained SOLID well<br>Explained OOP well<br>Explained composition (but struggled initially a bit)<br>Excellent understanding of collections<br>Difference between lists and sets<br>Hashsets<br>Hashmap<br>ConcurrentHashmap<br>Good understanding of data structures &#8211; stacks, queues, trees<br>Good knowledge of the jvm architecture<br>Explained concurrency vs parallelism, demonstrated good knowledge of multithreaded applications<br>Good understanding of REST<br>Explained db indexes well<br>Explained different types of joins<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wat zijn SOLID-principes? Wat is het Single Responsibility Principle (SRP): Een klasse zou slechts \u00e9en veranb\u00e4ndermoeten moeten hebben.Er zou maar \u00e9en reden moeten zijn om te mutenderen.Voordelen zijn onder meer s\u00f6llscher testen, minder koppeling en een betere organisatie.Voorbeeld: Java openbaar les Boek {priv\u00e9 Stringnaam;priv\u00e9 String-auteur;priv\u00e9 String-tekst;\/\/ constructors, getters en setters} Wat is het open-gelost principe [&hellip;]<\/p>\n","protected":false},"author":65283547,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1017],"tags":[11788,789678139,2549795,196,789678143],"class_list":["post-2308","post","type-post","status-publish","format-standard","hentry","category-java","tag-interview","tag-interview-java-developer","tag-java-2","tag-programming","tag-questions-java-developer"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4CoHV-Be","jetpack-related-posts":[{"id":2537,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d1%82%d1%80%d0%b5%d1%82%d0%b8%d1%8f%d1%82-%d0%b2%d1%81%d0%b5%d0%bb%d0%b5%d0%bd%d1%81%d0%ba%d0%b8-%d1%81%d1%8a%d0%b1%d0%be%d1%80-%d0%b2-%d0%b5%d1%84%d0%b5%d1%81-431-%d0%b3-%d1%85%d1%80%d0%b8%d1%81\/","url_meta":{"origin":2308,"position":0},"title":"Het Derde Oecumenische Concilie van Efeze (431): het christologische geschil tussen Cyrillus van Alexandri\u00eb en Nestorius en de bevestiging van de leer van de Moeder van God","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440 \u0432 \u0415\u0444\u0435\u0441 (431 \u0433.): \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0438\u044f\u0442 \u0441\u043f\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u041a\u0438\u0440\u0438\u043b \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0438\u0439\u0441\u043a\u0438 \u0438 \u041d\u0435\u0441\u0442\u043e\u0440\u0438\u0439 \u0438 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0438\u0446\u0430 \u041d\u0430\u0443\u0447\u043d\u043e-\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e \u0438 \u0431\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u0441\u043a\u043e \u0438\u0437\u0441\u043b\u0435\u0434\u0432\u0430\u043d\u0435 \u0410\u0432\u0442\u043e\u0440: \u0412\u0435\u043b\u0438\u0441\u043b\u0430\u0432 \u041a\u0440\u044a\u0441\u0442\u0435\u0432\u0422\u0435\u043c\u0430: \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0440\u0430\u043d\u043d\u0430\u0442\u0430 \u0426\u044a\u0440\u043a\u0432\u0430 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u0442\u0430 \u0434\u043e\u0433\u043c\u0430\u0442\u0438\u043a\u0430\u041f\u0435\u0440\u0438\u043e\u0434: 428\u2013451 \u0433.\u041e\u0441\u043d\u043e\u0432\u043d\u043e \u0441\u044a\u0431\u0438\u0442\u0438\u0435: \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u0415\u0444\u0435\u0441, 431 \u0433. \u0420\u0435\u0437\u044e\u043c\u0435 \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u2026","rel":"","context":"In &quot;Artikelen gewijd aan de Bijbel en over de geest en het lichaam&quot;","block_context":{"text":"Artikelen gewijd aan de Bijbel en over de geest en het lichaam","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":901,"url":"https:\/\/vkrastev1blog.com\/2024\/11\/17\/%d0%ba%d0%be%d0%bb%d0%ba%d0%be-%d0%bf%d1%80%d0%be%d1%82%d0%b5%d0%b8%d0%bd%d0%b8-%d0%b4%d0%b0-%d0%bf%d1%80%d0%b8%d0%b5%d0%bc%d0%b0%d0%bc%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd\/","url_meta":{"origin":2308,"position":1},"title":"Hoeveel eiwitten moet je per dag eten en de gevolgen van eiwitgebrek","author":"vkrastev2014","date":"17.11.2024","format":false,"excerpt":"\u041a\u043e\u043b\u043a\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u0434\u0430 \u043f\u0440\u0438\u0435\u043c\u0430\u043c\u0435 \u043d\u0430 \u0434\u0435\u043d \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0438\u0446\u0438\u0442\u0435 \u043e\u0442 \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u043e\u0432 \u0433\u043b\u0430\u0434 \u041f\u0440\u0438\u0435\u043c\u044a\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u043d\u0430 \u0434\u0435\u043d \u0435 \u043e\u0442 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u0440\u0430\u0434\u0438 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0438: \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0438 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438: \u041f\u0440\u043e\u0442\u0435\u0438\u043d\u0438\u0442\u0435 \u0441\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u0442\u0435 \u0433\u0440\u0430\u0434\u0438\u0432\u043d\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438 \u043d\u0430 \u043c\u0443\u0441\u043a\u0443\u043b\u0438\u0442\u0435, \u043a\u043e\u0436\u0430\u0442\u0430, \u043a\u043e\u0441\u0430\u0442\u0430 \u0438 \u043d\u043e\u043a\u0442\u0438\u0442\u0435. \u0422\u0435 \u0441\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438 \u0437\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u2026","rel":"","context":"In &quot;Artikelen gewijd aan de Bijbel en over de geest en het lichaam&quot;","block_context":{"text":"Artikelen gewijd aan de Bijbel en over de geest en het lichaam","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2586,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d0%b2%d0%b5%d0%bb%d0%b8%d0%ba%d0%b0%d1%82%d0%b0-%d1%81%d1%85%d0%b8%d0%b7%d0%bc%d0%b0-%d0%be%d1%82-1054-%d0%b3-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5\/","url_meta":{"origin":2308,"position":2},"title":"Het Grote Schisma van 1054 - de historische redenen voor de splitsing tussen de Orthodoxe en Rooms-Katholieke Kerk","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0442\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0437\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u041f\u0440\u0430\u0432\u043e\u0441\u043b\u0430\u0432\u043d\u0430\u0442\u0430 \u0438 \u0420\u0438\u043c\u043e\u043a\u0430\u0442\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u0420\u0435\u0437\u044e\u043c\u0435 \u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u0435 \u0435\u0434\u043d\u043e \u043e\u0442 \u043d\u0430\u0439-\u0437\u043d\u0430\u0447\u0438\u043c\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e\u0442\u043e. \u0422\u044f \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430 \u0441 \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0446\u044a\u0440\u043a\u043e\u0432\u043d\u043e\u0442\u043e \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0420\u0438\u043c\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0417\u0430\u043f\u0430\u0434 \u0438 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0418\u0437\u0442\u043e\u043a. \u0421\u044a\u0431\u0438\u0442\u0438\u044f\u0442\u0430\u2026","rel":"","context":"In &quot;Artikelen gewijd aan de Bijbel en over de geest en het lichaam&quot;","block_context":{"text":"Artikelen gewijd aan de Bijbel en over de geest en het lichaam","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":2663,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/10\/%d1%81%d1%8a%d0%b1%d1%80%d0%b0%d0%bd%d0%b8-%d0%bb%d0%b8%d0%bd%d0%ba%d0%be%d0%b2%d0%b5-%d0%ba%d1%8a%d0%bc-%d0%b4%d0%be%d0%b1%d1%80%d0%b8-%d1%85%d1%80%d0%b8%d1%81%d1%82%d0%b8%d1%8f%d0%bd%d1%81%d0%ba\/","url_meta":{"origin":2308,"position":3},"title":"Verzamelde links naar goede christelijke films van internet","author":"vkrastev2014","date":"10.10.2026","format":false,"excerpt":"\u0421\u044a\u0431\u0440\u0430\u043d\u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u0435 \u043a\u044a\u043c \u0434\u043e\u0431\u0440\u0438 \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u0424\u0438\u043b\u043c\u0438 \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0422\u0443\u043a \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043c \u0441\u043f\u0438\u0441\u044a\u043a \u0441 \u0434\u043e\u0431\u0440\u0438 \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u0424\u0438\u043b\u043c\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0421\u0442\u0430\u0442\u0438\u044f\u0442\u0430 \u0449\u0435 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441 \u043d\u043e\u0432\u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u0435, \u043d\u0435 \u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u044f. \u0418\u043c\u0430 \u0438 \u0444\u0438\u043b\u043c\u0438 \u0441 \u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043f\u0440\u0435\u0432\u043e\u0434 \u0438 \u0441 \u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438 \u043d\u043e \u043d\u044f\u043a\u043e\u0438 \u0441\u0430 \u0441\u0430\u043c\u043e \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u043a. \u041f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0442\u0435\u0437\u0438\u2026","rel":"","context":"In &quot;Artikelen gewijd aan de Bijbel en over de geest en het lichaam&quot;","block_context":{"text":"Artikelen gewijd aan de Bijbel en over de geest en het lichaam","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/films-about-bible-and-jesus.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2532,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d0%b2%d1%82%d0%be%d1%80%d0%b8%d1%8f%d1%82-%d0%b2%d1%81%d0%b5%d0%bb%d0%b5%d0%bd%d1%81%d0%ba%d0%b8-%d1%81%d1%8a%d0%b1%d0%be%d1%80-%d0%b2-%d0%ba%d0%be%d0%bd%d1%81%d1%82%d0%b0%d0%bd%d1%82%d0%b8%d0%bd\/","url_meta":{"origin":2308,"position":4},"title":"Het tweede oecumenische concilie in Constantinopel (381) - de bevestiging van de leer van de Heilige Geest","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0412\u0442\u043e\u0440\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440 \u0432 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b (381 \u0433.) \u2013 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0421\u0432\u0435\u0442\u0438\u044f \u0414\u0443\u0445 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e\u0442\u043e \u2022 \u0412\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440\u0438 \u2022 IV \u0432\u0435\u043a \u0412\u0442\u043e\u0440\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u0435\u0437 381 \u0433. \u0432 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b, \u0435 \u0435\u0434\u043d\u043e \u043e\u0442 \u043d\u0430\u0439-\u0432\u0430\u0436\u043d\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u0440\u0430\u043d\u043d\u043e\u0442\u043e \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e. \u041d\u0430 \u043d\u0435\u0433\u043e \u0435 \u043f\u043e\u0442\u0432\u044a\u0440\u0434\u0435\u043d\u0430 \u041d\u0438\u043a\u0435\u0439\u0441\u043a\u0430\u0442\u0430 \u0432\u044f\u0440\u0430 \u043e\u0442 325\u2026","rel":"","context":"In &quot;Artikelen gewijd aan de Bijbel en over de geest en het lichaam&quot;","block_context":{"text":"Artikelen gewijd aan de Bijbel en over de geest en het lichaam","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/ebtppy-v5hhqxqbousaxhde8pmrm8ky9vg5zhq_i42gf-itvech_wr25ui-u_ruov2gkqenknbbx2y7ekwwxzt8559wmlq424iif_pbcon6riek_ttdbxwp75aulyh3_naxhvg_pukcmdvjs88b30esv3xgtigs1gsziujd02gs.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":297,"url":"https:\/\/vkrastev1blog.com\/2024\/05\/15\/artifitial-eye\/","url_meta":{"origin":2308,"position":5},"title":"Het kunstmatige oog - hoe ver de wetenschap heeft bereikt in 2026","author":"vkrastev2014","date":"15.05.2024","format":false,"excerpt":"\u0418\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043e\u0442\u043e \u043e\u043a\u043e \u2013 \u0434\u043e\u043a\u044a\u0434\u0435 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430\u0443\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u0437 2026 \u0433\u043e\u0434\u0438\u043d\u0430 \u041e\u0442 \u0440\u0435\u0442\u0438\u043d\u0430\u043b\u043d\u0438 \u0438\u043c\u043f\u043b\u0430\u043d\u0442\u0438 \u0434\u043e \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u0430 \u0440\u0435\u0442\u0438\u043d\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043b\u0430\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0446\u044f\u043b\u043e \u043e\u043a\u043e \u0418\u0434\u0435\u044f\u0442\u0430 \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043e \u043e\u043a\u043e, \u043a\u043e\u0435\u0442\u043e \u0434\u0430 \u0437\u0430\u043c\u0435\u043d\u0438 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0447\u043e\u0432\u0435\u0448\u043a\u043e\u0442\u043e \u043e\u043a\u043e \u0438 \u0434\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u0438 \u0437\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u043b\u0435\u043f\u0438 \u0445\u043e\u0440\u0430, \u0434\u044a\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0435\u0448\u0435 \u043f\u0440\u0435\u0434\u0438\u043c\u043d\u043e \u043d\u0430 \u043d\u0430\u0443\u0447\u043d\u0430\u0442\u0430 \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0430. \u041f\u0440\u0435\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0434\u0435\u0441\u0435\u0442\u0438\u043b\u0435\u0442\u0438\u044f\u2026","rel":"","context":"In &quot;Kunstorganen: hoe ver de wetenschap is gekomen in 2026&quot;","block_context":{"text":"Kunstorganen: hoe ver de wetenschap is gekomen in 2026","link":"https:\/\/vkrastev1blog.com\/category\/kunstorganen-hoe-ver-de-wetenschap-is-gekomen-in-2026\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/05\/d0bed0bad0be.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/users\/65283547"}],"replies":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":6,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions"}],"predecessor-version":[{"id":2314,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions\/2314"}],"wp:attachment":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/categories?post=2308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/tags?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}