Може ли се користити async/await унутар lock-а? Зашто?
C#
Zašto je async void loša praksa?
Kako okruženje za izvršavanje prepoznaje da je asinhrona operacija završena i da treba nastaviti rad?
Šta će biti prikazano u konzoli? ```csharp public class Program { static void Main() { var myClassObj = new MyClass(); var myStructObj = new MyStruct(); MethodA(myClassObj.Num); // MethodB(myStructObj); MethodC(myClassObj); MethodD(myClassObj); Console.WriteLine(myClassObj.Num); // ? Console.WriteLine(myStructObj.Num); // ? } private static void MethodA(int num) { num = num + 1; } private static void MethodB(MyStruct myStruct) { myStruct.Num += 1; } private static void MethodC(MyClass myClass) { myClass.Num += 1; } private static void MethodD(MyClass myClass) { myClass = new MyClass(); } } ```
Šta je struktura? Da li je to tip vrednosti ili referentni tip? Gde se dodeljuje memorija? Koje su granice efikasne upotrebe struktura?
Šta su indeksi u bazi podataka? Tipovi indeksa (B-stablo, Hash, Full-text). Klasterizovani vs nekasterizovani indeks. Pokrivajući indeksi.
Koje hrpe poznaješ osim glavne (SOH)? Pričaj mi o Large Object Heap i Pinned Object Heap.
Šta je konzistentno heširanje (consistent hashing)? Virtuelni shardovi/bucket-ovi?
Zadatak sa async/await: kako radi async/await? U šta se razvija? Koja je razlika između Task i ValueTask?
Zadatak sa virtuelnim metodama: šta će biti prikazano? Za koju metodu je više tikova i zašto?
Ispričaj mi o režimima rada GC: server i desktop. Kada koristiti koji?
U čemu je suština koncepta GC generacija (0, 1, 2)? Šta optimizujemo?
Šta su GC koreni? Koje postoje?
Šta je ConfigureAwait(false)? Čemu služi? Šta je kontekst sinhronizacije?
Ispričaj mi o modifikatorima parametara ref, in, out i njihovim razlikama. Šta je readonly ref i ref readonly?
SELECT * FROM t_sensor_data;
Vam je dodeljen zadatak za pregled koda od kolege Koje probleme vidite u kodu? ```csharp namespace SomeProject.Data { public class UserRepository { public Task SaveUser(User user, Dictionary<int,string> shards) { var shardIdx = user.Id % 3; var shardAddress = shards[shardIdx]; using(var shardService = new ShardService(shardAddress)) { return shardService.SaveUserAsync(user); } } } } ```
Zadatak sa nizovima: šta će biti prikazano? Kako je operator == za nizove preopterećen? Šta je bazen interniranja nizova?
Објасните како се додељује меморија на стеку и у хипу. Да ли се вредносни типови увек постављају на стек?
Zadatak sa LINQ: šta će biti prikazano? Koji je tip promenljive query? U čemu se razlikuju IEnumerable i IQueryable?