What is a Java String's default initial value?

JavaString

Java Problem Overview


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?

Java Solutions


Solution 1 - Java

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

Solution 2 - Java

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.

Solution 3 - Java

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)

Solution 4 - Java

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.

Solution 5 - Java

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSelvinView Question on Stackoverflow
Solution 1 - JavaduffymoView Answer on Stackoverflow
Solution 2 - JavaDexterView Answer on Stackoverflow
Solution 3 - JavaCarlos CaldasView Answer on Stackoverflow
Solution 4 - Javanikhil500View Answer on Stackoverflow
Solution 5 - JavadeveloperView Answer on Stackoverflow