[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend\u002Fcsharp-memory-performance":4,"config":251},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","","csharp-memory-performance","Csharp Memory Performance","tr",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,37,40,43,46,49,52,55,58,61,64,67,70,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 Tasarımı",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Eşzamanlılık",{"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":8,"name":9,"count":11},{"key":38,"name":39,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":41,"name":42,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":44,"name":45,"count":11},"databases-sql","Veritabanı \u002F SQL",{"key":47,"name":48,"count":11},"go-concurrency","Go Concurrency",{"key":50,"name":51,"count":11},"go-errors","Go Errors",{"key":53,"name":54,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":56,"name":57,"count":11},"go-memory-performance","Go Memory Performance",{"key":59,"name":60,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"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","Mesajlaşma \u002F Kuyruklar",{"key":86,"name":87,"count":11},"networking-http","Ağ \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","Güvenlik",{"key":146,"name":147,"count":11},"testing","Test",[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,201,211,225,238],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f70e2-e849-7b41-903c-0c66ede2cbc7",1,"C#'ta aşağıdakilerden hangisi varsayılan olarak bir **değer tipi (value type)**dir?",[174,177,180,183],{"key":175,"text":176},"a","`class Point { }`",{"key":178,"text":179},"b","`struct Point { }`",{"key":181,"text":182},"c","`string`",{"key":184,"text":185},"d","`object`","`struct`, C#'ta bir değer tipi tanımlar — instance'lar inline olarak (stack'te ya da içinde bulundukları yerin içinde) saklanır ve atamada değer olarak kopyalanır. `class`, `string` ve `object` ise hepsi referans tipidir: bu tiplerdeki değişkenler heap'teki veriye bir referans tutar.",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":175,"explanation":200},"019f70e2-e84b-766f-861b-cf08b839ec57",2,"```csharp\nstruct Point\n{\n    public int X;\n    public int Y;\n}\n\nvar p1 = new Point { X = 1, Y = 2 };\nvar p2 = p1;\np2.X = 99;\n\nConsole.WriteLine(p1.X);\n```\nBu ne yazdırır?",[192,194,196,198],{"key":175,"text":193},"1",{"key":178,"text":195},"99",{"key":181,"text":197},"0",{"key":184,"text":199},"`NullReferenceException` fırlatır","`Point` bir struct'tır (değer tipi), bu yüzden `var p2 = p1;` tüm değeri `p2`'ye kopyalar — `p2`, `p1`'e bir referans değil, bağımsız bir kopyadır. `p2.X`'i değiştirmek `p1`'i etkilemez, dolayısıyla `p1.X` hâlâ `1`'dir.",{"id":202,"topic":9,"difficulty":189,"body":203,"options":204,"correct_key":178,"explanation":210},"019f70e2-e84f-70fd-8352-32d43c1f5f1e","```csharp\nclass Box\n{\n    public int Value;\n}\n\nvar b1 = new Box { Value = 1 };\nvar b2 = b1;\nb2.Value = 99;\n\nConsole.WriteLine(b1.Value);\n```\nBu ne yazdırır?",[205,206,207,208],{"key":175,"text":193},{"key":178,"text":195},{"key":181,"text":197},{"key":184,"text":209},"Derlenmez","`Box` bir class'tır (referans tipi). `var b2 = b1;` yalnızca referansı kopyalar, bu yüzden `b1` ve `b2` heap'teki aynı nesneyi işaret eder. `b2.Value`'i değiştirmek, `b1`'in de işaret ettiği aynı nesneyi değiştirir, dolayısıyla `b1.Value` da `99` olur.",{"id":212,"topic":9,"difficulty":213,"body":214,"options":215,"correct_key":181,"explanation":224},"019f70e2-e851-7c03-b576-2bc92cf9a665",3,"```csharp\nint number = 42;\nobject boxed = number;\nint unboxed = (int)boxed;\n\nConsole.WriteLine(unboxed);\n```\n`object boxed = number;` satırı ne yapar?",[216,218,220,222],{"key":175,"text":217},"Doğrudan `number`'a bir referans oluşturur, kopya alınmaz",{"key":178,"text":219},"`int`, `object`'e atanamadığı için derlenmez",{"key":181,"text":221},"Heap'te yeni bir nesne ayırır ve `number`'ın değerini bu nesneye kopyalar (boxing)",{"key":184,"text":223},"`number`'ı bir `string` gösterimine dönüştürür","Bir değer tipini `object`'e (ya da uyguladığı herhangi bir interface'e) atamak **boxing**'i tetikler: CLR, managed heap'te yeni bir nesne ayırır ve değer tipinin verisini bu nesneye kopyalar. Orijinal `number` değişkeni ve boxed kopya artık bağımsızdır — boxing'in gerçek bir allocation ve kopyalama maliyeti olmasının nedeni budur.",{"id":226,"topic":9,"difficulty":189,"body":227,"options":228,"correct_key":184,"explanation":237},"019f70e2-e852-7bd6-aaf3-aeb357c1e9a9","C#'ta **unboxing** nedir?",[229,231,233,235],{"key":175,"text":230},"Garbage collector'ın geri kazanabilmesi için bir değişkeni scope'tan çıkarmak",{"key":178,"text":232},"Bir `class` instance'ını bir `struct`'a dönüştürmek",{"key":181,"text":234},"Bir değişkeni ilklendirmeden bildirmek",{"key":184,"text":236},"Boxed bir `object`'ten değer tipini geri çıkarmak (ör. `object`'i tekrar `int`'e cast'lemek)","Unboxing, boxing'in tersidir: `object` olarak saklanan (boxed bir değer tipini tutan) bir referansı alıp orijinal değer tipine geri cast'lemektir, ör. `int i = (int)boxedObj;`. Bu, değeri heap'teki box'tan bir değer-tipi değişkenine kopyalar; geçersiz bir cast `InvalidCastException` fırlatır.",{"id":239,"topic":9,"difficulty":213,"body":240,"options":241,"correct_key":175,"explanation":250},"019f70e2-e853-7cc0-84f9-65656af26e84","Kıdemsiz bir geliştirici, generic olmayan bir `System.Collections.ArrayList`'e 100.000 `int` değeri ekleyen bir döngü yazıyor. Kıdemli bir meslektaşı bunun `List\u003Cint>` kullanmaktan çok daha yavaş olacağını söylüyor. Neden?",[242,244,246,248],{"key":175,"text":243},"`ArrayList`, `object` referansları saklar, bu yüzden her `int` eklenirken boxed edilir",{"key":178,"text":245},"`ArrayList`'in sabit maksimum 10.000 eleman kapasitesi vardır ve bunun üzerinde exception fırlatır",{"key":181,"text":247},"`ArrayList` varsayılan olarak thread-safe'tir ve bunun getirdiği kilitleme overhead'i her işlemi yavaşlatır",{"key":184,"text":249},"`ArrayList`, her `Add` çağrısında elemanları otomatik olarak sıralar","`ArrayList` tipsizdir ve her şeyi `object` olarak saklar. Bir `int` eklemek, her `Add`'de onu boxed eder (heap allocation + kopya) ve geri okurken unbox eder. `List\u003Cint>` generic'tir ve int'leri arka plandaki bir `int[]` dizisinde doğrudan inline saklar — hiç boxing yoktur. 100.000 eleman için bu allocation ve GC baskısı farkı önemlidir.",{"fields":252,"seniorities":421,"interview_shapes":422,"locales":427,"oauth":429,"question_count":432,"coach_enabled":433,"jd_match_enabled":433},[253,264,284,300,324,337,356,375,395,402,408,415],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":254},[255,258,259,260,261,262,263],{"key":256,"name":257,"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":265,"name_tr":266,"name_en":266,"sort":189,"specializations":267},"frontend","Frontend",[268,269,272,275,278,281],{"key":256,"name":257,"field":265},{"key":270,"name":271,"field":265},"javascript","JavaScript",{"key":273,"name":274,"field":265},"typescript","TypeScript",{"key":276,"name":277,"field":265},"react","React",{"key":279,"name":280,"field":265},"vue","Vue",{"key":282,"name":283,"field":265},"angular","Angular",{"key":285,"name_tr":286,"name_en":286,"sort":213,"specializations":287},"fullstack","Fullstack",[288,289,290,291,292,293,294,295,296,297,298,299],{"key":256,"name":257,"field":285},{"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":270,"name":271,"field":265},{"key":273,"name":274,"field":265},{"key":276,"name":277,"field":265},{"key":279,"name":280,"field":265},{"key":282,"name":283,"field":265},{"key":301,"name_tr":302,"name_en":302,"sort":303,"specializations":304},"devops-cloud","DevOps \u002F Cloud",4,[305,306,309,312,315,318,321],{"key":256,"name":257,"field":301},{"key":307,"name":308,"field":301},"aws","AWS",{"key":310,"name":311,"field":301},"gcp","GCP",{"key":313,"name":314,"field":301},"azure","Azure",{"key":316,"name":317,"field":301},"kubernetes","Kubernetes",{"key":319,"name":320,"field":301},"terraform","Terraform",{"key":322,"name":323,"field":301},"linux","Linux",{"key":325,"name_tr":326,"name_en":326,"sort":327,"specializations":328},"ai-engineer","AI Engineer",5,[329,330,331,334],{"key":256,"name":257,"field":325},{"key":166,"name":167,"field":325},{"key":332,"name":333,"field":325},"llm-rag","LLM\u002FRAG",{"key":335,"name":336,"field":325},"mlops","MLOps",{"key":338,"name_tr":339,"name_en":340,"sort":341,"specializations":342},"database","Veritabanı","Database",6,[343,344,347,350,353],{"key":256,"name":257,"field":338},{"key":345,"name":346,"field":338},"postgresql","PostgreSQL",{"key":348,"name":349,"field":338},"mysql","MySQL",{"key":351,"name":352,"field":338},"mongodb","MongoDB",{"key":354,"name":355,"field":338},"redis","Redis",{"key":357,"name_tr":358,"name_en":359,"sort":360,"specializations":361},"mobile","Mobil","Mobile",7,[362,363,366,369,372],{"key":256,"name":257,"field":357},{"key":364,"name":365,"field":357},"ios-swift","iOS (Swift)",{"key":367,"name":368,"field":357},"android-kotlin","Android (Kotlin)",{"key":370,"name":371,"field":357},"flutter","Flutter",{"key":373,"name":374,"field":357},"react-native","React Native",{"key":143,"name_tr":144,"name_en":376,"sort":377,"specializations":378},"Security",8,[379,380,383,386,389,392],{"key":256,"name":257,"field":143},{"key":381,"name":382,"field":143},"appsec","AppSec",{"key":384,"name":385,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":387,"name":388,"field":143},"cloud-security","Cloud Security",{"key":390,"name":391,"field":143},"devsecops","DevSecOps",{"key":393,"name":394,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":396,"name_tr":397,"name_en":398,"sort":399,"specializations":400},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[401],{"key":256,"name":257,"field":396},{"key":403,"name_tr":404,"name_en":404,"sort":405,"specializations":406},"data-engineer","Data Engineer",10,[407],{"key":256,"name":257,"field":403},{"key":409,"name_tr":410,"name_en":411,"sort":412,"specializations":413},"game-dev","Oyun Geliştirme","Game Development",11,[414],{"key":256,"name":257,"field":409},{"key":416,"name_tr":417,"name_en":417,"sort":418,"specializations":419},"ml-engineer","ML Engineer",12,[420],{"key":256,"name":257,"field":416},[14,15,16],{"junior":423,"mid":425,"senior":426},{"questions":424,"median_sec":3},20,{"questions":424,"median_sec":3},{"questions":424,"median_sec":3},[10,428],"en",[430,431],"google","github",21750,true]