In Go, strings are immutable just as they are in Java and Python. This has many benefits both in terms of performance and for writing robust concurrent programs.
var s string = "Some text"
var t string = "Some text"
would mean at runtime s == t in Java (afaik)
This is an implementation detail that may or may not be true for any given JVM. The same applies in Python. In Go, s == t is true (== sensibly does the string comparison), but &s != &t (i.e., each has a different address so each string is unique). However, the address uniqueness is still just an implementation detail and shouldn't be assumed.
Go's equivalent to Java's StringBuilder is bytes.Buffer:
This assumes you have some readStringFromSomewhere() function that returns an empty string when it is finished. A slightly more sophisticated example is shown in "Programming in Go" on page 88.