- String are made immutable in java because Java maintains a String pool in perm gen space of memory. If the strings are mutable then it will be impossible to maintain the constant string pool in java.
- Calling Thread.sleep will not release the lock which is held by the object whereas calling wait on the object releases the lock
- Finalizer is the method which is run when before object is getting garbage collected and is totally different from Finally Block
- System.gc() method suggest the jvm to run grabage collector , although it is not necessary for jvm to run it
- We can tell JVM to execute some code after calling System.exit() by registering shutdown hook[Runtime.getRunTime().addShutdownHook(Thread)]
- System.exit() method terminates the jvm properly by executing registered shutdown hooks and running finalizers whereas Runtime.getRuntime.halt() shuts down the jvm immediately without running any shutdown hook or finalizer
- System.loadLibrary(String lib) loads the native library files from system(for windows it is dll).It searches the library in paths defined in System property "java.library.path". You will get "java.lang.UnsatisfiedLinkError: Can't load IA 32-bit x.dll on a AMD 64-bit platform" if you try to load a 32 bit library in 64 bit jvm process
- Java is always pass by value.References are copied when you pass from one method to another
- Null is a special type[apart from primitive and reference type] in java which has no name.You can not declare variable as null type and can not cast anything to null .It is neither class nor instance.
- Daemon Threads are background threads which do not prevent the jvm to wait for them to finish. If there is even a single non daemon thread running , JVM will not exit.
Post Comments and suggestions !!