[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fjava-generics-interfaces":4,"config":253},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","java-generics-interfaces","Java Generics Interfaces","en",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":19,"name":20,"count":11},"api-design","API Design",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Concurrency",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Databases \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":52,"name":53,"count":11},"go-errors","Go Errors",{"key":55,"name":56,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":58,"name":59,"count":11},"go-memory-performance","Go Memory Performance",{"key":61,"name":62,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":64,"name":65,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":67,"name":68,"count":11},"java-concurrency","Java Concurrency",{"key":70,"name":71,"count":11},"java-exceptions","Java Exceptions",{"key":8,"name":9,"count":11},{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Messaging \u002F Queues",{"key":86,"name":87,"count":11},"networking-http","Networking \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Security",{"key":146,"name":147,"count":11},"testing","Testing",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,200,213,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f6e5f-23e8-709f-a7e0-876c01756e4d",1,"What best describes \"type erasure\" in Java generics?",[174,177,180,183],{"key":175,"text":176},"a","The compiler generates a separate specialized class for each type argument, similar to C++ templates.",{"key":178,"text":179},"b","The compiler checks generic types at compile time, then removes the type parameter information from the runtime bytecode.",{"key":181,"text":182},"c","The JVM checks generic type parameters at runtime and throws an error on any mismatch.",{"key":184,"text":185},"d","The compiler stores the exact type argument as bytecode metadata so reflection can always read it directly.","Java generics are implemented via type erasure: the compiler enforces type-safety during compilation, then erases type parameters, replacing them with their bound (or Object) in the generated bytecode. This is why generic type information is largely unavailable at runtime.",{"id":188,"topic":9,"difficulty":171,"body":189,"options":190,"correct_key":184,"explanation":199},"019f6e5f-23e8-792b-88c3-8d989efcc307","You write `List list = new ArrayList();` without a type argument. What is the risk of this raw type usage?",[191,193,195,197],{"key":175,"text":192},"It behaves exactly like `List\u003CObject>` in every respect, with no practical difference.",{"key":178,"text":194},"It is a compile error in current Java versions, so the risk does not arise.",{"key":181,"text":196},"It only causes a problem if the list is left empty after creation.",{"key":184,"text":198},"The compiler can no longer check element types for that list, risking a ClassCastException later at runtime.","Raw types disable generic type checking for that variable. The compiler issues an unchecked warning, and code that puts the wrong type in can compile fine yet blow up with a ClassCastException later when an element is read and cast.",{"id":201,"topic":9,"difficulty":171,"body":202,"options":203,"correct_key":175,"explanation":212},"019f6e5f-23e9-7891-b05f-933c8d62d7b4","```java\nclass Box\u003CT> {\n    private T value;\n    Box(T value) { this.value = value; }\n    T get() { return value; }\n}\n\npublic class Main {\n    public static void main(String[] args) {\n        Box\u003CString> box = new Box\u003C>(\"hello\");\n        System.out.println(box.get().length());\n    }\n}\n```\nWhat does this program print?",[204,206,208,210],{"key":175,"text":205},"5",{"key":178,"text":207},"hello",{"key":181,"text":209},"Compile error: cannot call length() on a generic type T.",{"key":184,"text":211},"Runtime exception: ClassCastException.","`Box\u003CString>` binds T to String, so `box.get()` returns a String, and calling `.length()` on \"hello\" gives 5. The generic type is fully resolved at the call site, so this compiles and runs cleanly.",{"id":214,"topic":9,"difficulty":215,"body":216,"options":217,"correct_key":181,"explanation":226},"019f6e5f-23ea-7727-8ea5-a12616294db9",2,"```java\nclass Pair\u003CT extends Comparable\u003CT>> {\n    T first, second;\n    Pair(T a, T b) { first = a; second = b; }\n    T max() { return first.compareTo(second) >= 0 ? first : second; }\n}\n\npublic class Main {\n    public static void main(String[] args) {\n        Pair\u003CInteger> p = new Pair\u003C>(3, 7);\n        System.out.println(p.max());\n    }\n}\n```\nWhat does this print?",[218,220,222,224],{"key":175,"text":219},"3",{"key":178,"text":221},"Compile error: Integer does not satisfy the bound `T extends Comparable\u003CT>`.",{"key":181,"text":223},"7",{"key":184,"text":225},"Runtime exception: NullPointerException on compareTo.","Integer implements Comparable\u003CInteger>, satisfying the bound, so this compiles. `first.compareTo(second)` compares 3 to 7, which is negative, so `max()` returns `second`, i.e. 7.",{"id":228,"topic":9,"difficulty":171,"body":229,"options":230,"correct_key":175,"explanation":239},"019f6e5f-23eb-7412-a892-9e1c22bdb272","Which statement correctly describes a functional interface in Java?",[231,233,235,237],{"key":175,"text":232},"An interface with exactly one abstract method; it may still have any number of default and static methods.",{"key":178,"text":234},"An interface with exactly one method in total, counting default and static methods as well.",{"key":181,"text":236},"Any interface that is used together with a lambda expression somewhere in the codebase.",{"key":184,"text":238},"An interface annotated with `@FunctionalInterface` regardless of how many abstract methods it declares.","A functional interface has exactly one abstract method (the target for a lambda or method reference); default and static methods don't count toward that limit. `@FunctionalInterface` is only a compiler check that enforces this rule — it does not itself make an interface functional if there are two or more abstract methods.",{"id":241,"topic":9,"difficulty":215,"body":242,"options":243,"correct_key":184,"explanation":252},"019f6e5f-23eb-7ccf-a1d7-3fb071473d94","```java\nimport java.util.function.Predicate;\n\npublic class Main {\n    public static void main(String[] args) {\n        Predicate\u003CString> isLong = s -> s.length() > 3;\n        System.out.println(isLong.test(\"hi\"));\n    }\n}\n```\nWhat is printed?",[244,246,248,250],{"key":175,"text":245},"true",{"key":178,"text":247},"Compile error: Predicate requires a return statement in braces.",{"key":181,"text":249},"2",{"key":184,"text":251},"false","`Predicate\u003CString>` defines `boolean test(T t)`. The lambda checks `\"hi\".length() > 3`, i.e. `2 > 3`, which is false.",{"fields":254,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[255,266,286,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":256},[257,260,261,262,263,264,265],{"key":258,"name":259,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":267,"name_tr":268,"name_en":268,"sort":215,"specializations":269},"frontend","Frontend",[270,271,274,277,280,283],{"key":258,"name":259,"field":267},{"key":272,"name":273,"field":267},"javascript","JavaScript",{"key":275,"name":276,"field":267},"typescript","TypeScript",{"key":278,"name":279,"field":267},"react","React",{"key":281,"name":282,"field":267},"vue","Vue",{"key":284,"name":285,"field":267},"angular","Angular",{"key":287,"name_tr":288,"name_en":288,"sort":289,"specializations":290},"fullstack","Fullstack",3,[291,292,293,294,295,296,297,298,299,300,301,302],{"key":258,"name":259,"field":287},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":272,"name":273,"field":267},{"key":275,"name":276,"field":267},{"key":278,"name":279,"field":267},{"key":281,"name":282,"field":267},{"key":284,"name":285,"field":267},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":258,"name":259,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":258,"name":259,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":258,"name":259,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":258,"name":259,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":379,"name_en":144,"sort":380,"specializations":381},"Güvenlik",8,[382,383,386,389,392,395],{"key":258,"name":259,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":258,"name":259,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":258,"name":259,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":258,"name":259,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":258,"name":259,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[431,10],"tr",[433,434],"google","github",21750,true]