Sorry, I have programmed in Java since 1995 and am now using Go for some years. There are huge differences, so I wonder how you could call those languages somewhat close. Some of the differences, which make me favor Go over Java are:
- functions: Java does not have functions, only methods
- closures: Not sure of the latest state, but until very recently, Java had no closures. Closures are a huge and important element of programming.
- single file executables: make your program easy to deploy, without shipping a JVM, setting up a classpath etc.
- value types: have control to which structures you want to refer by pointer and which should be treated as a value
- goroutines+channels: a far better approach to parallel programming, a goroutine is much more light-weight than a Java thread
- no generics the Java style: eventually Go needs generics, but not in the way Java implemented them.
- no frameworks: possibly not a strict language related issue, but Java grew monstrous frameworks, the Go community has been stay away from them so far.