Pages

Saturday, June 11, 2016

.Net Framework interview questions and answers part2

6. What is Common Language Specification (CLS)?

This is a subset of the CTS, which all .NET languages are expected to support. It was always a dream of Microsoft to unite all different languages in to one umbrella and CLS is one-step towards that.Microsoft has defined CLS, which are nothing but guidelines that language should follow so that it can communicate with other .NET languages in a seamless manner.

7. What is an IL or MSIL or CIL?

Intermediate Language (IL) is also known as MSIL (Microsoft Intermediate Language) or CIL (Common Intermediate Language). All .NET source code is compiled to IL. IL is then converted to machine code or at run-time by a Just-In-Time (JIT) compiler.

8. What is Garbage
collection / Memory Management in .Net?

Garbage collection
is automatic process performs by Garbage collector (which lives in CLR) to free
up memory of objects which are no longer in used.

Every time you create a new object, the common language runtime allocates
memory to store that object. But at some point that object may be no longer
needed by your application. So that garbage collector deallocates memory of
this type of objects, so that application can store new objects into memory. If
memory is not deallocated then sooner your application will run out of memory.

Interview Questions Related to garbage collections

a. How does Garbage
collection works?

Every time a garbage collection is performed,
the garbage collector basically looks at the memory and frees up memory which
is no longer needed, that is, memory which is occupied by ‘dead objects’.

b.How does it know
when an object is ‘dead’?

An object is dead if it is unreachable by your
code. The obvious example is a local variable inside a method. There is no way
for your code to access that variable once the method has returned, so it
becomes ‘dead’.

C.How often does the
garbage collector perform a garbage collection?

There are three ways a garbage collection can
be triggered.

Firstly, if your system has low physical
memory, this can trigger a garbage collection.

Secondly, a threshold is defined which
indicates an acceptable level of memory on the heap which can be used by
allocated objects. If this threshold is surpassed, then a garbage collection is
triggered.

Finally, a garbage collection can explicitly be
triggered by calling the GC.Collect method. Only under very rare circumstances
is this ever required.