Java, but they are not primitive data types at all! We can see that from the capitalisation of String when we declare String objects. However, say we have two reference variables of type String: String test1 = “Hello”; String test2 = “Hello”; The expression test1 == test2 will evaluate to true. You might be surprised, because we just said that the equality sign used with reference variables just checks if they hold reference to the same object. But here, the object is the String “Hello”, and the two variables that hold a reference to this object are test1, and test2. So test1 == test2 evaluates to true. We go over this concept in unit 9. Just remember, if we try to create a string object that holds the exact same characters in the exact same order, then we don’t actually create this a second object – we just assign another reference variable to it. This is seen above. Because the String object “Hello” already exists, the second line of code just assign test2 to reference this object as well as test1.