Java best practice is always to use StringBuilder/StringBuffer classes to assemble Strings like you are doing, or (since it became available) String.format() if that makes more sense. Strings are immutable in Java, and certainly way back all the + operator on Strings would do is take the 2 Strings, and create a 3rd as the result. Looks like Java 8 has a nice internal way of dealing with that, and I’m not sure when that got introduced. But it looks like Java 11 out of the box (or at least what we’re running on the RIO) does not have this.
Why 1 second or so the first time? When you first use a class, Java needs to load that class definition, initialise any statics, put constants on the heap etc… And that takes some time. Once they are loaded into the VM, the next call to any of those classes is WAY faster because it’s already there and cached, and any initialisation is done. 1 second does sound a lot though, but at the same time, this is not a desktop machine.
If there’s any way you can move this code into an initialisation method, or a static initialiser, so that it isn’t going to get called and run slowly when you actually want to run the robot, you should do that. But certainly go with String concatenation best practices and use a StringBuilder or StringBuffer to do what you are doing will get you a long way to much faster code.