Let me first highlight three different ways for similar purpose.

length -- arrays (int[], double[], String[]) -- to know the length of the arrays

length() -- String related Object (String, StringBuilder, etc) -- to know the length of the String

size() -- Collection Object (ArrayList, Set, etc) -- to know the size of the Collection

Now forget about length() consider just length and size().

length is not a method, so it completely makes sense that it will not work on objects. It only works on arrays.
size() its name describes it better and as it is a method, it will be used in the case of those objects who work with collection (collection frameworks) as I said up there.

Now come to length():
String is not a primitive array (so we can't use .length) and also not a Collection (so we cant use .size()) that's why we also need a different one which is length() (keep the differences and serve the purpose).

As answer to Why?
I find it useful, easy to remember and use and friendly.

Answer from Saif on Stack Overflow
🌐
W3Schools
w3schools.com › java › ref_string_length.asp
Java String length() Method
Java Examples Java Videos Java Compiler Java Exercises Java Quiz Java Code Challenges Java Practice Problems Java Server Java Syllabus Java Study Plan Java Interview Q&A ... The length() method returns the length of a specified string.
🌐
GeeksforGeeks
geeksforgeeks.org › java › length-vs-length-java
length vs length() in Java - GeeksforGeeks
January 4, 2025 - 3. To directly access a field member of an array we can use .length; whereas .length() invokes a method to access a field member. ... // Java program to illustrate the // concept of length // and length() public class Test { public static void main(String[] args) { // Here array is the array name of int type int[] array = new int[4]; System.out.println("The size of the array is " + array.length); // Here str is a string object String str = "GeeksforGeeks"; System.out.println("The size of the String is " + str.length()); } }
Discussions

arrays - length and length() in Java - Stack Overflow
Why do we have the length of an array as an attribute, array.length, and for String we have a method, str.length()? Is there some reason? More on stackoverflow.com
🌐 stackoverflow.com
Why is it String.length() instead of String.getLength()? How to name my own length method?
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full - best also formatted as code block You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/learnjava
13
7
September 13, 2023
java - Difference between size and length methods? - Stack Overflow
So, even though conceptually, linked lists have a "length," they are not stored in memory as a "list" and so they use the more generic "size" instead. 2016-12-17T23:39:57.817Z+00:00 ... @MattPuntam: as you say and Java also; size() is a method specified in java.util.Collection, but I didn't ... More on stackoverflow.com
🌐 stackoverflow.com
[Java] size vs. length
Arrays are fixed length so they use a field/variable that gets set on initialization. Lists are variable length so they need a method to figure out their own size. More on reddit.com
🌐 r/learnprogramming
7
3
July 16, 2013
🌐
TheServerSide
theserverside.com › blog › Coffee-Talk-Java-News-Stories-and-Opinions › Find-Java-String-Length-Example-Tutorial
How do I find the Java String length?
The Java String class contains a length() method that returns the total number of characters a given String contains. This value includes all blanks, spaces, and other special characters.
Top answer
1 of 8
134

Let me first highlight three different ways for similar purpose.

length -- arrays (int[], double[], String[]) -- to know the length of the arrays

length() -- String related Object (String, StringBuilder, etc) -- to know the length of the String

size() -- Collection Object (ArrayList, Set, etc) -- to know the size of the Collection

Now forget about length() consider just length and size().

length is not a method, so it completely makes sense that it will not work on objects. It only works on arrays.
size() its name describes it better and as it is a method, it will be used in the case of those objects who work with collection (collection frameworks) as I said up there.

Now come to length():
String is not a primitive array (so we can't use .length) and also not a Collection (so we cant use .size()) that's why we also need a different one which is length() (keep the differences and serve the purpose).

As answer to Why?
I find it useful, easy to remember and use and friendly.

2 of 8
27

A bit simplified you can think of it as arrays being a special case and not ordinary classes (a bit like primitives, but not). String and all the collections are classes, hence the methods to get size, length or similar things.

I guess the reason at the time of the design was performance. If they created it today they had probably come up with something like array-backed collection classes instead.

If anyone is interested, here is a small snippet of code to illustrate the difference between the two in generated code, first the source:

public class LengthTest {
  public static void main(String[] args) {
    int[] array = {12,1,4};
    String string = "Hoo";
    System.out.println(array.length);
    System.out.println(string.length());
  }
}

Cutting a way the not so important part of the byte code, running javap -c on the class results in the following for the two last lines:

20: getstatic   #3; //Field java/lang/System.out:Ljava/io/PrintStream;
23: aload_1
24: arraylength
25: invokevirtual   #4; //Method java/io/PrintStream.println:(I)V
28: getstatic   #3; //Field java/lang/System.out:Ljava/io/PrintStream;
31: aload_2
32: invokevirtual   #5; //Method java/lang/String.length:()I
35: invokevirtual   #4; //Method java/io/PrintStream.println:(I)V

In the first case (20-25) the code just asks the JVM for the size of the array (in JNI this would have been a call to GetArrayLength()) whereas in the String case (28-35) it needs to do a method call to get the length.

In the mid 1990s, without good JITs and stuff, it would have killed performance totally to only have the java.util.Vector (or something similar) and not a language construct which didn't really behave like a class but was fast. They could of course have masked the property as a method call and handled it in the compiler but I think it would have been even more confusing to have a method on something that isn't a real class.

🌐
Codecademy
codecademy.com › docs › java › arrays › .length
Java | Arrays | .length | Codecademy
April 21, 2025 - In Java, the .length property is used to determine the length or size of an array. It is a built-in property for arrays and returns an integer value that represents the number of elements in the array.
🌐
GeeksforGeeks
geeksforgeeks.org › java › java-string-length-method-with-examples
Java String length() Method - GeeksforGeeks
December 23, 2024 - The length() method returns the number of characters present in the string.
Find elsewhere
🌐
TheServerSide
theserverside.com › blog › Coffee-Talk-Java-News-Stories-and-Opinions › Java-length-vs-length-Whats-the-difference
Java length vs length(): What's the difference?
The key difference between Java’s length variable and Java’s length() method is that the Java length variable describes the size of an array, while Java’s length() method tells you how many characters a text String contains.
🌐
Codecademy
codecademy.com › docs › java › strings › .length()
Java | Strings | .length() | Codecademy
June 22, 2025 - In Java, the .length() method returns the length or number of characters in a string. It’s a built-in method that comes with the String class.
🌐
Reddit
reddit.com › r/learnjava › why is it string.length() instead of string.getlength()? how to name my own length method?
r/learnjava on Reddit: Why is it String.length() instead of String.getLength()? How to name my own length method?
September 13, 2023 -

Hi, I've been trying to find a name for my method that returns the length of an object. A quick google search showed that it's conventional to name getters getX(). However, when I investigated the first standard class that came to mind - String, I found it having the length() method instead of expected getLength(). Why is that? How should I name a length method in my own class then?

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#length--

🌐
Oracle
docs.oracle.com › javase › 8 › docs › api › java › lang › String.html
String (Java Platform SE 8 )
April 21, 2026 - Constructs a new String by decoding the specified subarray of bytes using the specified charset. The length of the new String is a function of the charset, and hence may not be equal to the length of the subarray. The behavior of this constructor when the given bytes are not valid in the given ...
🌐
iO Flood
ioflood.com › blog › length-java
.Length() Java: A Guide for Beginners to Experts
March 4, 2024 - In Java, .length is used to get the length of an array or a string, with the syntax int length = str.length();. It’s a property that helps you determine the size of your arrays and strings, making it a handy tool in your Java programming toolkit.
🌐
Quora
quora.com › What-is-the-code-of-length-function-of-Java
What is the code of length function of Java? - Quora
Answer (1 of 3): If you mean literally the code in the Java API, I’d suggest that you should dare to delve deeper into the directory where you have installed Java. You will find *.jar files. If you have WinRar installed, you will be able to get into those files.
🌐
BeginnersBook
beginnersbook.com › 2013 › 12 › java-string-length-method-example
Java String length() Method with examples
This method returns an integer number which represents the number of characters (length) in a given string including white spaces.
🌐
Interview Kickstart
interviewkickstart.com › home › blogs › learn › how to reverse a string in java
Length vs. Length Method in Java
December 18, 2025 - However, StringBuilder is faster than String. equals() method can be used to compare two Strings in Java. StringBuilder does not override the equals() So, this method can not compare two StringBuilder objects. A new StringBuilder object cannot be created without using a new operator, while a String object can be. Length of the String object is fixed, while StringBuilder has a method setLength(), which can be used to change the length of its object.
🌐
Baeldung
baeldung.com › home › java › java string › java’s string.length() and string.getbytes().length
Java’s String.length() and String.getBytes().length | Baeldung
July 6, 2024 - But these can also be overused and fall into some common pitfalls. To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:
🌐
Tutorialspoint
tutorialspoint.com › java › java_string_length.htm
Java - String length() Method
Java Vs. C++ ... This method returns the length of this string. The length is equal to the number of 16-bit Unicode characters in the string.
🌐
Jaro Education
jaroeducation.com › home › blog › how to find the length of a string in java
Java String Length Method: Everything You Need to Know
10 hours ago - The length method of the String class in Java is used to determine the total number of characters in a string. Let’s learn how to find the string length in Java.
🌐
TheServerSide
theserverside.com › blog › Coffee-Talk-Java-News-Stories-and-Opinions › Java-array-size-explained-by-example
Java array size, length and loop examples
Any class that extends the List interface expands dynamically. Java arrays do not expand and contract. You can’t change the size of an array in Java once the array is initialized. A common example of the Java array length property being used in code is a program looping through all of the elements in an array.