size() is a method specified in java.util.Collection, which is then inherited by every data structure in the standard library. length is a field on any array (arrays are objects, you just don't see the class normally), and length() is a method on java.lang.String, which is just a thin wrapper on a char[] anyway.

Perhaps by design, Strings are immutable, and all of the top-level Collection subclasses are mutable. So where you see "length" you know that's constant, and where you see "size" it isn't.

Answer from MattPutnam on Stack Overflow
🌐
Study.com
study.com › business courses › business 104: information systems and computer applications
Java Array Length vs. Size - Video | Study.com
January 15, 2019 - The video lesson explains that ... property (e.g., array.length). ... It's important to note that "size" applies to ArrayLists, while "length" applies to arrays....
🌐
Study.com
study.com › business courses › business 104: information systems and computer applications
Java Array Length vs. Size - Lesson | Study.com
January 15, 2019 - Once the type is chosen, all the elements will be of that type. The length of a Java array is the number of elements in the array. Java arrays don't have a size associated with them, although the terms are related.
Discussions

java - Difference between size and length methods? - Stack Overflow
What is the difference between .size() and .length ? Is .size() only for arraylists and .length only for arrays? More on stackoverflow.com
🌐 stackoverflow.com
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
[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
[JAVA beginner Question] Why is it array.length and not array.length() ?
Arrays are part of the Java language (as opposed to being part of some library) and so they can provide shortcuts like this, without having to make a function call. ... I'm not a Java dev, so feel free to correct me, but I thought length was just a property of the array class, which is why ... More on reddit.com
🌐 r/learnprogramming
12
3
May 9, 2014
🌐
W3Schools
w3schools.com › java › ref_arrays_length.asp
Java Array length Property
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 property returns the length of an array.
🌐
JanBask Training
janbasktraining.com › community › java › arraysize-vs-arraylength
Array.size() vs Array.length | JanBask Training Community
August 24, 2025 - Array.size() (or simply .size) returns the total number of elements currently present in the array. It’s basically the same as .length in Ruby, as both are interchangeable. ... In Java, you’ll always use .length for arrays and .size() for ...
🌐
Delft Stack
delftstack.com › home › howto › java › size vs length in java
The Difference Between Size and Length in Java | Delft Stack
October 12, 2023 - Unlike the length property of arrays, the value returned by the size() method is not constant and changes according to the number of elements. All the collections of the Collection Framework in Java are dynamically allocated, so the number of ...
🌐
GeeksforGeeks
geeksforgeeks.org › java › difference-between-length-of-array-and-size-of-arraylist-in-java
Difference between length of Array and size of ArrayList in Java - GeeksforGeeks
July 11, 2025 - Array has length property which provides the length of the Array or Array object. It is the total space allocated in memory during the initialization of the array. Array is static so when we create an array of size n then n blocks are created ...
Find elsewhere
🌐
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.
Published: July 4, 2026
🌐
TutorialsPoint
tutorialspoint.com › What-is-the-difference-between-the-size-of-ArrayList-and-length-of-Array-in-Java
What is the difference between the size of ArrayList and length of Array in Java?
July 30, 2019 - ArrayList doesn't have length() method, the size() method of ArrayList provides the number of objects available in the collection. Array has length property which provides the length or capacity of the Array. It is the total spac
🌐
TutorialsPoint
tutorialspoint.com › difference-between-length-of-array-and-size-of-arraylist-in-java
Difference between length of Array and size of ArrayList in Java
September 18, 2019 - The array has a length method that provides the number of elements can be stored or in simple words capacity of the Array. Also, the length method also defines the total space which has been allocated during the initialization of the array.
🌐
Java67
java67.com › 2014 › 04 › array-length-vs-arraylist-size-java.html
Array length vs ArrayList Size in Java [Example] | Java67
I have mentioned this before on ... well. So, use length attribute to get number of elements in a array, also known as length, and for same thing in Collection classes like ArrayList, Vector, use size() method....
🌐
codelessgenie
codelessgenie.com › blog › difference-between-size-and-length-methods
Difference Between size() and length in Java: Array vs ArrayList Methods Explained — CodeLessGenie.com
ArrayList is a resizable, dynamic array implementation of the List interface in Java’s Collections Framework. Unlike arrays, ArrayList can grow or shrink in size automatically as elements are added or removed.
🌐
Coderanch
coderanch.com › t › 657113 › certification › size-length-length
size() vs length() vs length [Solved] (Associate Certification (OCAJP 8) forum at Coderanch)
October 26, 2015 - Therefore you'll have a (read-only) method to get the number of elements in a collection: the size() method. Last but not least, let's have a look at the array. Arrays are special objects in Java, so each array IS-A Object! They have a simple attribute named length which is public and final.
🌐
GeeksforGeeks
geeksforgeeks.org › java › length-vs-length-java
length vs length() in Java - GeeksforGeeks
January 4, 2025 - array.length: length is a final variable applicable for arrays. With the help of the length variable, we can obtain the size of the array.
🌐
Medium
medium.com › javarevisited › understanding-java-arrays-from-basics-to-length-and-limits-9c30f749f2fd
Understanding Java Arrays: From Basics to Length and Limits | by sajith dilshan | Javarevisited | Medium
August 25, 2025 - Array .length vs String .length(): Arrays → .length, Strings → .length(). Updating: Array size is fixed, but you can always replace elements inside. Loops: Arrays pair perfectly with loops for efficient data handling. Once you’re comfortable with arrays, you’ll find it much easier to transition to flexible collections like ArrayList, which can grow and shrink as needed. ... Follow me for more bite-sized Java tips and dev insights.
🌐
Quora
quora.com › What-is-the-difference-between-length-of-array-and-size-of-ArrayList-in-Java
What is the difference between length() of array and size() of ArrayList in Java? - Quora
Answer (1 of 7): The length property of an array specifies the number of elements the array is capable of storing. That is it specifies the number of slots present in the array. For example, let us define an array like this:- int [] arr = new int[10]; Now when we say, arr.length, it gives us th...
🌐
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 an array’s length field and Java’s length() method is that the array length field describes the size of an array, while Java’s length() method tells you how many characters a text String contains.
Published: February 3, 2026
🌐
JanBask Training
janbasktraining.com › home › difference between array length vs string length () function in java
Difference between Array Length vs String Length () Function in Java
February 28, 2024 - Here, we can say that Array has the length variable that can be used to determine the length of an array, while length function is used with the String class object that can be used to determine the String length.
Top answer
1 of 8
136

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
28

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.

🌐
javaspring
javaspring.net › blog › java-length-vs-size
Java `length` vs `size()`: A Comprehensive Guide — javaspring.net
For example, if you create an array of integers with a length of 5, it will always have space for exactly 5 elements. The size() method is a method provided by the java.util.Collection interface and its subinterfaces and implementations. It returns the number of elements currently present in a collection.