Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does java define string as null terminated?

Tags:

java

string

null

As my title suggests, it's a theoretical question. I'd like to know that if java defines string as null terminated.

like image 833
Dewsworld Avatar asked Aug 24 '13 04:08

Dewsworld


2 Answers

I'd like to know that if java defines string as null terminated.

No. A String is defined to be a fixed length sequence of char values. All possible char values (from 0 to 65535) may be used in a String. There is no "distinguished" value that means that the string ends1.

So how they track string ending? Using length?

Yes. A String object has a private length field (in all implementations I've examined ...).

If you want to understand more about how Java strings are implemented, the source code for various versions is available online. Google for "java.lang.String source".


1 - As noted, neither the JLS or the javadocs for String specifically that a String implementation cannot use NUL termination. However, the fact that all characters including NUL are significant in a String means that NUL termination is not practical.

like image 165
Stephen C Avatar answered Nov 05 '22 19:11

Stephen C


Java strings are not terminated with a null characters as in C or C++. Although java strings uses internally the char array but there is no terminating null in that. String class provides a method called length to know the number of characters in the string.

Here is the simple code and its debugger contents:

public static void main(String[] args) {
    String s = "Juned";
    System.out.println(s);
}

Debugger screenshot:

enter image description here

like image 9
Juned Ahsan Avatar answered Nov 05 '22 18:11

Juned Ahsan