70

Consider a Java String Field named x. What will be the initial value of x when an object is created for the class x;

I know that for int variables, the default value is assigned as 0, as the instances are being created. But what becomes of String?

1

5 Answers 5

134

It's initialized to null if you do nothing, as are all reference types.

Sign up to request clarification or add additional context in comments.

2 Comments

why it is not assigning as Empty String ""? Does Integer also become null?
@selvin: yes, Integer will be null as well. As the answer says: all reference types will be null. int however, which is a primitive type and thus not a reference type, will be 0.
27

That depends. Is it just a variable (in a method)? Or a class-member?

If it's just a variable you'll get an error that no value has been set when trying to read from it without first assinging it a value.

If it's a class-member it will be initialized to null by the VM.

Comments

14

There are three types of variables:

  • Instance variables: are always initialized
  • Static variables: are always initialized
  • Local variables: must be initialized before use

The default values for instance and static variables are the same and depends on the type:

  • Object type (String, Integer, Boolean and others): initialized with null
  • Primitive types:
    • byte, short, int, long: 0
    • float, double: 0.0
    • boolean: false
    • char: '\u0000'

An array is an Object. So an array instance variable that is declared but no explicitly initialized will have null value. If you declare an int[] array as instance variable it will have the null value.

Once the array is created all of its elements are assiged with the default type value. For example:

private boolean[] list; // default value is null

private Boolean[] list; // default value is null

once is initialized:

private boolean[] list = new boolean[10]; // all ten elements are assigned to false

private Boolean[] list = new Boolean[10]; // all ten elements are assigned to null (default Object/Boolean value)

Comments

11

The answer is - it depends.

Is the variable an instance variable / class variable ? See this for more details.

The list of default values can be found here.

1 Comment

It doesn't depend.. all reference types are set to null.
5

Any object if it is initailised , its defeault value is null, until unless we explicitly provide a default value.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.