Tuesday 16 July 2013

Useful Interview questions

 JAVA INTERVIEW QUESTION


1. Does the order of public and static declaration matter in main() method?

A. No. It doesn't matter but void should always come before main().

2. Can a source file contain more than one class declaration?

A. Yes a single source file can contain any number of Class declarations but only one of the class can be declared as public.

3. What is a package?

A. Package is a collection of related classes and interfaces. package declaration should be first statement in a java class.

4. Which package is imported by default?

A. java.lang package is imported by default even without a package declaration.

5. Can a class declared as private be accessed outside it's package?
A. Not possible.

6. Can a class be declared as protected?

A. class can't be declared as protected. only methods can be declared as protected.

7. What is the access scope of a protected method?

A. A protected method can be accessed by the classes within the same package or by the subclasses of the class in any package.

8. What is the purpose of declaring a variable as final?

A. final variable's value can't be changed. final variables should be initialized before using them.

9. What is the impact of declaring a method as final?

A. A method declared as final can't be overridden. A sub-class can't have the same method signature with a different implementation.

10. I don't want my class to be inherited by any other class. What should i do?

A. You should declared your class as final. But you can't define your class as final, if it is an abstract class. A class declared as final can't be extended by any other class.

11. Can you give few examples of final classes defined in Java API?

A. java.lang.String, java.lang.Math are final classes.

12. How is final different from finally and finalize()?

A. final is a modifier which can be applied to a class or a method or a variable. final class can't be inherited,final method can't be overridden and final variable can't be changed. 
finally is an exception handling code section which gets executed whether an exception is raised or not by the try block code segment. 

finalize() is a method of Object class which will be executed by the JVM just before garbage collecting object to give a final chance for resource releasing activity.

13. Can a class be declared as static?

A. We can not declare top level class as static, but only inner class can be declared static.
public class Test
{
    static class InnerClass
    {
        public static void InnerMethod()
        { System.out.println("Static Inner Class!"); }
    }
    public static void main(String args[])
    {
       Test.InnerClass.InnerMethod();
    }
}
//output: Static Inner Class!

14. When will you define a method as static?

A. When a method needs to be accessed even before the creation of the object of the class then we should declare the method as static.

15. What are the restriction imposed on a static method or a static block of code?

A. static method should not refer to instance variables without creating an instance and cannot use "this" operator to refer the instance.

16. I want to print "Hello" even before main() is executed. How will you acheive that?

A. Print the statement inside a static block of code. Static blocks get executed when the class gets loaded into the memory and even before the creation of an object. Hence it will be executed before the main() method. And it will be executed only once.

17. What is the importance of static variable?

A. static variables are class level variables where all objects of the class refer to the same variable. If one object changes the value then the change gets reflected in all the objects.

18. Can we declare a static variable inside a method?

A. Static variables are class level variables and they can't be declared inside a method. If declared, the class will not compile.

19. What is an Abstract Class and what is it's purpose?

A. A Class which doesn't provide complete implementation is defined as an abstract class. Abstract classes enforce abstraction.

20. Can a abstract class be declared final?

Not possible. An abstract class without being inherited is of no use and hence will result in compile time error.

21. What is use of a abstract variable?

Variables can't be declared as abstract. only classes and methods can be declared as abstract.

22. Can you create an object of an abstract class?

Not possible. Abstract classes can't be instantiated.

23. Can a abstract class be defined without any abstract methods?

Yes it's possible. This is basically to avoid instance creation of the class.

24. Class C implements Interface I containing method m1 and m2 declarations. Class C has provided implementation for method m2. Can i create an object of Class C?

No not possible. Class C should provide implementation for all the methods in the Interface I. Since Class C didn't provide implementation for m1 method, it has to be declared as abstract. Abstract classes can't be instantiated.

25. Can a method inside a Interface be declared as final?

No not possible. Doing so will result in compilation error. public and abstract are the only applicable modifiers for method declaration in an interface.

26. Can an Interface implement another Interface?

Intefaces doesn't provide implementation hence a interface cannot implement another interface.

27. Can an Interface extend another Interface?

Yes an Interface can inherit another Interface, for that matter an Interface can extend more than one Interface.

28. Can a Class extend more than one Class?

Not possible. A Class can extend only one class but can implement any number of Interfaces.

29. Why is an Interface be able to extend more than one Interface but a Class can't extend more than one Class?

Basically Java doesn't allow multiple inheritance, so a Class is restricted to extend only one Class. But an Interface is a pure abstraction model and doesn't have inheritance hierarchy like classes(do remember that the base class of all classes is Object). So an Interface is allowed to extend more than one Interface.

30. Can an Interface be final?

Not possible. Doing so so will result in compilation error.

31. Can a class be defined inside an Interface?

Yes it's possible.

32. Can an Interface be defined inside a class?

Yes it's possible.

33. What is a Marker Interface?

An Interface which doesn't have any declaration inside but still enforces a mechanism.

34. Which object oriented Concept is achieved by using overloading and overriding?
Polymorphism.

35. Why does Java not support operator overloading?

Operator overloading makes the code very difficult to read and maintain. To maintain code simplicity, Java doesn't support operator overloading.

36. Can we define private and protected modifiers for variables in interfaces?
   No.

37. What is Externalizable?

Externalizable is an Interface that extends Serializable Interface. And sends data into Streams in Compressed Format. It has two methods, writeExternal(ObjectOuput out) and readExternal(ObjectInput in)

38. What modifiers are allowed for methods in an Interface?

Only public and abstract modifiers are allowed for methods in interfaces.

39. What is a local, member and a class variable?

Variables declared within a method are "local" variables.
Variables declared within the class i.e not within any methods are "member" variables (global variables).
Variables declared within the class i.e not within any methods and are defined as "static" are class variables.

40. What is an abstract method?

An abstract method is a method whose implementation is deferred to a subclass.

41. What value does read() return when it has reached the end of a file?

The read() method returns -1 when it has reached the end of a file.


42. Can a Byte object be cast to a double value?

No, an object cannot be cast to a primitive value.

43. What is the difference between a static and a non-static inner class?

A non-static inner class may have object instances that are associated with instances of the class's outer class. A static inner class does not have any object instances.

44. What is an object's lock and which object's have locks?

An object's lock is a mechanism that is used by multiple threads to obtain synchronized access to the object. A thread may execute a synchronized method of an object only after it has acquired the object's lock. All objects and classes have locks. A class's lock is acquired on the class's Class object.

45. What is the % operator?

It is referred to as the modulo or remainder operator. It returns the remainder of dividing the first operand by the second operand.

46. When can an object reference be cast to an interface reference?

An object reference be cast to an interface reference when the object implements the referenced interface.

47. Which class is extended by all other classes?

The Object class is extended by all other classes.

48. Which non-Unicode letter characters may be used as the first character of an identifier?

The non-Unicode letter characters $ and _ may appear as the first character of an identifier

49. What restrictions are placed on method overloading?

Two methods may not have the same name and argument list but different return types.

50. What is casting?

There are two types of casting, casting between primitive numeric types and casting between object references. Casting between numeric types is used to convert larger values, such as double values, to smaller values, such as byte values. Casting between object references is used to refer to an object by a compatible class, interface, or array type reference.

Monday 15 July 2013

Types of Resumes


                         Types of Resumes

              One of the first decisions job-seekers must make when preparing their resumes is how to organize the resume’s content. Today’s resumes generally are:

       1.    Chronological (actually reverse chronological listing all your experience from most to least recent).

       2.    Functional which lists experience in skills cluster.

    3.    A combinational or hybrid of these two types, sometimes nown as chrono functional format.   
   
CHRONOLOGICAL RESUMES:

The traditional, default format for resumes is the chronological resume this type of resume is organized by your employment history in reverse chronological order with job titles of employers of employment working backwards 10-15 years.

A standard chronological resume may be your best choice if most/all of your experience has been in one field, you have to large employment gaps, and you plan to stay in that same field.

FUNCTIONAL RESUME: 

The resume format preferred by job seekers with a limited job history or a job history in a different career field is the functional resume.

COMBINATIONAL CHRONO FUNCTIONAL (HYBRID) RESUMES:

Because the purely functional format has become the subject of employer backlash in recent years, some job seekers have learned to structure their resumes in most recent years, format but also include a base bones work in reverse chronological order creating what is variously known as a chrono functional, hybrid combination format.

DO’S: 
           > A thorough self-discovery of the strengths, skills and potential.

           > Knowledge the required points to be covered.

           > Edit the resume at-least three times.

           > A good job analysis before you draft a resume.

           > Be concise, clear and correct.

DONT’S:

           >  Be arbitrary while stating facts about one self. 

           >  Adding un-necessary information.

           >  Be in haste to list the points.

          >  Finalize the first copy.

           >  Be too long, un-clear and bluff.

WRITING AN EFFECTIVE COVER LETTER:

Writing a cover letter often seems like a particularly daunting task. However, if you take it one step at a time you’ll soon be an expert at writing letters to send with your resume. A cover letter typically accompanies each having your resume ignored so it makes good sense to devote the necessary time and effort to writing effective cover letters.

A cover letter should complement not duplicate your resume. Its purpose is to interpret the data oriented factual resume and add a personal touch. A cover letter is often your earliest written contact with a potential employer creating a critical first impression.

COVER LETTER FORMAT:

To be effective, your cover letter should follow the basic format of a typical business letter and should address 3 general issues:

1.    First paragraph- why you writing?
2.    Middle paragraph- what do you have to offer?
3.    Concluding paragraph-how will you follow up?

RESUME CHECKLIST:

Ø It’s my resume brief and earns to read.
Ø Does all the information fit on one page?  If not, is my experience extensive enough to use two pages?

Ø Have I tailored my resume to emphasize experiences and qualifications that match with the employer?
Ø Are my most relevant and impressive qualifications easily visible?

Ø  Do I use limited amount of bold, italic capital letters and underlining to weight light the important part of my resume.
Ø Is my resume laser printed on good quality, standard “81/2 by 11” bond paper?

Ø Did I use conversation colors (white and irorfull).
Ø Do I have balanced use of blank spaces and margins?

Ø Have I asked some-one else to critique and proved by resuming?

Have I submitted an updated resume for the office of professional development to keep on fate?

Sunday 14 July 2013

Resume Writing



RESUME WRITING

Objectives:

           1.    To write a suitable resume.
           2.    To understand the nature and importance of employment communication.
           3.    To use acceptable style in writing the resume.
           4.    To know the difference between resume and curriculum vitae.
           5.    To know how to write a job application letter.

Introduction:

          The success of employment search largely depends on a candidate’s ability to design and write an impressive resume your resume is your sales tool, used to advertise your accomplishments and to demonstrate your potential to an employer. It should favorably truthfully an concisely highlight your qualifications.

        A well written persuasive resume tailored to a specific job position immediately grabs the attention of an employer. Therefore a resume should package your assets into a convincing advertisement that sells you for a specific job.

 Information:

         In these days of tough competition a candidate has to  project himself impressively to get a job. The best way of doing it is to present his relevant personal educational and professional information in a systematic way. The documents used for this purpose are called the resume, bio-data (or) personal data and curriculum vitae or academic vitae these are slight difference among them in content and presentation.

         The resume is generally shorter than the curriculum vitae and is written in about two pages under the main parts namely heading, Personal data, employment objective, education, employment experience and reference.

        Bio-data (or) personal data is generally enclosed with a covering letter of an application and information is provided in the proforma. The curriculum vitae (or) academic vitae is a summary of one’s qualification personal activities and work experience as well as teaching and research experience publications, presentations, awards, honors etc. Generally there is no need of a separate covering letter for it.

What to include in your CV or Resume:

          A CV or Resume contains the following headings:

1.    The Heading
2.    Position sought
3.    Career objective
4.    Education
5.    Work experience
6.    Skills
7.    Achievements
8.    Activities & Interests
9.    References

          1.    The Heading:  
                   
                        Heading includes contact information, the applicant’s name, full portal address, telephone number and e-mail address.

            2.    Position sought: 

                            Position sought should be mentioned so that the employer is able to distinguish it from the other applications.

       3.    Career objective:  
                       
                        Career objective should be a specific one-sentence focused statement expressing his\her career goals in relation to the targeted position. It should convey his\her motivation and interest in the job he\she is seeking.

Eg:- To be associated with the progressive organization that gives scope to learn and apply my knowledge and skills in area of development and to be part of the team that dynamically works towards the growth of the organization.

        4.    Education:  
                  
                  Education includes specific details of the applicant’s education and professional training, special courses, seminars and workshops attended or conducted etc. Whenever necessary duration, place of institution etc should be mentioned.

       5.    Work experience:  

                       This should be a brief and specific over view of the applicant’s work and professional experience title of the position employer’s name (or) name of the organization company, location of work (town, state) dates of employment and important job responsibilities, activities and accomplishments should illustrate his\her capabilities and positive personality traits such as motivation, willingness to learn, positive attitude, confidence, ability to get along with others and communication and inter-personal skills.

       6.    Skills:  

                      Special skills, abilities and aptitudes that are of significance and direct relevance to the job applied for all that are listed.

Eg:-  Computer programming, foreign languages, machinery operation, drafting etc.

 7.  Achievements: 

                          It includes scholarships, awards, distinctions  certificate or anything that shows achievements or recognition. They convince the prospective employer that he\she is an achiever and therefore worth hiring.

8.  Activities and Interests: 

                     Include extra-curricular, co-curricular professional activities and interests etc. These should reflect a dynamic and energetic person who can accept challenges.


 9.   References:

             Some employers need references from persons who know the applicants work (or) professional competence through formal and professional interaction with him\her these persons may include the applicant’s previous employers, teacher, research guide, colleague etc. The name of the reference his\her designation and full contact address with telephone number, e-mail address, fax number etc must be mentioned.

                                                                                                                   By
                                                                                                            M.Rakesh....:-)
Posted on 22:13 | Categories:

Friday 12 July 2013

Format Of Interview Skills

                                                        


   INTERVIEW SKILLS

An interview is a powerful inter-personal communication between two individuals. It may also be defined as a Direct interaction between the candidate (employee) and the employer. In a face -to-face interview, the candidate is in ‘view’ before a panel of prominent persons and closely examined by them.

Job interviews turning out to be more challenging these days for various reasons like:
1.    Limited vacancies for a large number of aspirants.
2.    Growing competition in the job market.
3.     Increasing focus on the candidate’s personal and interpersonal skills.

 PREPARING FOR AN INTERVIEW AND FACING IT EFFECTIVELY:

The following are a few points to help the candidate to face interviews effectively.

        PERSONAL INFORMATION:

Usually candidate is asked to tell about himself. By grabbing opportunity the candidates are required to tell their strong points self-praise should not be there. The candidates have to explain something about his\her family, academics, paper presentations, hobbies etc.

         ANALYZE YOUR SKILLS:

Every job has a set of functions and also requires certain skills to perform. Analyzing your skills relating to the position, offered by the interview is necessitated during the interview.

         DRESS CODE:

The right dress gives you a smart appearance in the interview.
Ø Dark and light combination for men.
Ø Sari and sandals for women.

         DEVELOP THE INTERVIEW FILE:

You should develop the interview file that may constitute documents such as:
a)    Original certificates
b)    Interview letter
c)     Certificates of merit
d)    Experience certificate
e)    Copies of your resume

          FACING THE INTERVIEW:

Your communicating behaviour starts the moment you are called. On being called, knock gently on the door. Seek permission to enter, wait to be called, enter, move towards the interviewers with a smile and, depending on the time of the interview, greet them with good morning\afternoon. Keep standing and be seated only when asked to do so. If the chair is too close to the interviews. Don’t drag or pull it backward but lift and place it at a comfortable distance. Seat yourself with a straight back non slumped or with a stiff back like a soldier- that is, lean your back lightly touching the chair’s back rest and cross your legs at the ankles with the arms on the sides or holding your certificates in your lap. This posture will help to lean forward when necessary to hand the certificates if necessary and to use your arms for gestures to accompany your speaking. Don’t cross your arms across the chest. This will prevent you from using them. If a drink is offered you may accept it with a ‘thank you’ or decline it with a ‘no, thank you’. Sip through the drink without noise and spilling. Wait for the interviewer(s) to address you.


          The interview may begin with a few questions about yourself to loosen you up, to reduce your tension, to put you at ease. Answer them well, when the actual interview begins, listen to the questions fully and attentively understand them and form your answer in mind, wait for a second or two and then reply. 


                                                                                               By
                                                                                         M.Rakesh :-)


   

Monday 8 July 2013

Sunday 7 July 2013

Java Interview questions Part2



1. What is the difference between a constructor and a method?

A constructor is a member function of a class that is used to create objects of that class. It has the same name as the class itself, has no return type, and is invoked using the new operator.
A method is an ordinary member function of a class. It has its own name, a return type (which may be void), and is invoked using the dot operator.

2. What is the purpose of garbage collection in Java, and when is it used?

The purpose of garbage collection is to identify and discard objects that are no longer needed by a program so that their resources can be reclaimed and reused.
A Java object is subject to garbage collection when it becomes unreachable to the program in which it is used.

3. Describe synchronization in respect to multithreading?

With respect to multithreading, synchronization is the capability to control the access of multiple threads to shared resources.
Without synchonization, it is possible for one thread to modify a shared variable while another thread is in the process of using or updating same shared variable. This usually leads to significant errors.

4. What is an abstract class?

Abstract class must be extended/subclassed (to be useful). It serves as a template. A class that is abstract may not be instantiated (ie. you may not call its constructor), abstract class may contain static data.
Any class with an abstract method is automatically abstract itself, and must be declared as such. A class may be declared abstract even if it has no abstract methods. This prevents it from being instantiated.

5. What is the difference between an Interface and an Abstract class?

An abstract class can have instance methods that implement a default behavior. An Interface can only declare constants and instance methods, but cannot implement default behavior and all methods are implicitly abstract.
An interface has all public members and no implementation. An abstract class is a class which may have the usual flavors of class members (private, protected, etc.), but has some abstract methods.

6. Explain different way of using thread?

The thread could be implemented by using runnable interface or by inheriting from the Thread class. The former is more advantageous, 'cause when you are going for multiple inheritance, the only interface can help.

7. What is an Iterator?

Some of the collection classes provide traversal of their contents via a java.util.Iterator interface. This interface allows you to walk through a collection of objects, operating on each object in turn.
Remember when using Iterators that they contain a snapshot of the collection at the time the Iterator was obtained; generally it is not advisable to modify the collection itself while traversing an Iterator.

8. State the significance of public, private, protected, default modifiers both singly and in combination and state the effect of package relationships on declared items qualified by these modifiers.

public: Public class is visible in other packages, field is visible everywhere (class must be public too)
private : Private variables or methods may be used only by an instance of the same class that declares the variable or method, A private feature may only be accessed by the class that owns the feature.
protected : Is available to all classes in the same package and also available to all subclasses of the class that owns the protected feature. This access is provided even to subclasses that reside in a different package from the class that owns the protected feature.
What you get by default ie, without any access modifier (ie, public private or protected). It means that it is visible to all within a particular package.

9. What is static in java?

Static means one per class, not one for each object no matter how many instance of a class might exist. This means that you can use them without creating an instance of a class.Static methods are implicitly final, because overriding is done based on the type of the object, and static methods are attached to a class, not an object.
A static method in a superclass can be shadowed by another static method in a subclass, as long as the original method was not declared final. However, you can't override a static method with a nonstatic method. In other words, you can't change a static method into an instance method in a subclass.

10. What is final class?

A final class can't be extended ie., final class may not be subclassed. A final method can't be overridden when its class is inherited. You can't change value of a final variable (is a constant).

11. What if the main() method is declared as private?

The program compiles properly but at runtime it will give "main() method not public." message.

12. What if the static modifier is removed from the signature of the main() method?

Program compiles. But at runtime throws an error "NoSuchMethodError".

13. What if I write static public void instead of public static void?

Program compiles and runs properly.

14. What if I do not provide the String array as the argument to the method?

Program compiles but throws a runtime error "NoSuchMethodError".

15. What is the first argument of the String array in main() method?

The String array is empty. It does not have any element. This is unlike C/C++ where the first element by default is the program name.

16. If I do not provide any arguments on the command line, then the String array of main() method will be empty or null?

It is empty. But not null.

17. How can one prove that the array is not null but empty using one line of code?

Print args.length. It will print 0. That means it is empty. But if it would have been null then it would have thrown a NullPointerException on attempting to print args.length.

18. What environment variables do I need to set on my machine in order to be able to run Java programs?

CLASSPATH and PATH are the two variables.

19. Can an application have multiple classes having main() method?

Yes it is possible. While starting the application we mention the class name to be run. The JVM will look for the Main method only in the class whose name you have mentioned.
Hence there is not conflict amongst the multiple classes having main() method.

20. Can I have multiple main() methods in the same class?

No the program fails to compile. The compiler says that the main() method is already defined in the class.

21. Do I need to import java.lang package any time? Why ?

No. It is by default loaded internally by the JVM.

22. Can I import same package/class twice? Will the JVM load the package twice at runtime?

One can import the same package or same class multiple times. Neither compiler nor JVM complains about it. And the JVM will internally load the class only once no matter how many times you import the same class.

23. What are Checked and UnChecked Exception?

A checked exception is some subclass of Exception (or Exception itself), excluding class RuntimeException and its subclasses. Making an exception checked forces client programmers to deal with the possibility that the exception will be thrown.
Example: IOException thrown by java.io.FileInputStream's read() method·
Unchecked exceptions are RuntimeException and any of its subclasses. Class Error and its subclasses also are unchecked. With an unchecked exception, however, the compiler doesn't force client programmers either to catch the exception or declare it in a throws clause. In fact, client programmers may not even know that the exception could be thrown.
Example: StringIndexOutOfBoundsException thrown by String's charAt() method· Checked exceptions must be caught at compile time. Runtime exceptions do not need to be. Errors often cannot be.

24. What is Overriding?

When a class defines a method using the same name, return type, and arguments as a method in its superclass, the method in the class overrides the method in the superclass.
When the method is invoked for an object of the class, it is the new definition of the method that is called, and not the method definition from superclass. Methods may be overridden to be more public, not more private.

25. Are the imports checked for validity at compile time? Example: will the code containing an import such as java.lang.ABCD compile?

Yes the imports are checked for the semantic validity at compile time. The code containing above line of import will not compile. It will throw an error saying, can not resolve symbol
symbol : class ABCD
location: package io
import java.io.ABCD;

26. Does importing a package imports the subpackages as well? Example: Does importing com.MyTest.* also import com.MyTest.UnitTests.*?

No you will have to import the subpackages explicitly. Importing com.MyTest.* will import classes in the package MyTest only. It will not import any class in any of it's subpackage.

27. What is the difference between declaring a variable and defining a variable?

In declaration we just mention the type of the variable and it's name. We do not initialize it. But defining means declaration + initialization.
Example: String s; is just a declaration while String s = new String ("abcd"); Or String s = "abcd"; are both definitions.

28. What is the default value of an object reference declared as an instance variable?

The default value will be null unless we define it explicitly.

29. Can a top level class be private or protected?

No. A top level class cannot be private or protected. It can have either "public" or no modifier. If it does not have a modifier it is supposed to have a default access.
If a top level class is declared as private the compiler will complain that the "modifier private is not allowed here". This means that a top level class can not be private. Same is the case with protected.

30. What type of parameter passing does Java support?

In Java the arguments are always passed by value.

31. Primitive data types are passed by reference or pass by value?

Primitive data types are passed by value.

32. Objects are passed by value or by reference?

Java only supports pass by value. With objects, the object reference itself is passed by value and so both the original reference and parameter copy both refer to the same object.

33. What is serialization?

Serialization is a mechanism by which you can save the state of an object by converting it to a byte stream.

34. How do I serialize an object to a file?

The class whose instances are to be serialized should implement an interface Serializable. Then you pass the instance to the ObjectOutputStream which is connected to a fileoutputstream. This will save the object to a file.

35. Which methods of Serializable interface should I implement?

The serializable interface is an empty interface, it does not contain any methods. So we do not implement any methods.

36. How can I customize the seralization process? i.e. how can one have a control over the serialization process?

Yes it is possible to have control over serialization process. The class should implement Externalizable interface. This interface contains two methods namely readExternal and writeExternal.
You should implement these methods and write the logic for customizing the serialization process.

37. What is the common usage of serialization?

Whenever an object is to be sent over the network, objects need to be serialized. Moreover if the state of an object is to be saved, objects need to be serilazed.

38. What is Externalizable interface?

Externalizable is an interface which contains two methods readExternal and writeExternal. These methods give you a control over the serialization mechanism.
Thus if your class implements this interface, you can customize the serialization process by implementing these methods.

39. When you serialize an object, what happens to the object references included in the object?

The serialization mechanism generates an object graph for serialization. Thus it determines whether the included object references are serializable or not. This is a recursive process.
Thus when an object is serialized, all the included objects are also serialized alongwith the original obect.

40. What one should take care of while serializing the object?

One should make sure that all the included objects are also serializable. If any of the objects is not serializable then it throws a NotSerializableException.