I would reiterate what ctomni231 said, but my word isn’t all that important.
Instead I think a good source is Joshua Bloch’s ‘Effective Java’ handbook.
“avoiding object creation by maintaining your own object pool is a bad idea unless the objects in the pool are extremely heavyweight”
Bloch goes on to explain that extremely heavyweight is something like a reusable database connection or network socket.
Generally, “object pools clutters your code, increases memory footprint, and harms performance. Modern JVM implementations have highly optimized garbage collectors that easily outperform such object pools for lightweight objects.” -Item 5
Arrays of strings are about as lightweight as it gets, except for primitives such as byte, int, etc.
The book further mentions that “It is a very bad idea to warp an API to achieve good performance.” -Item 55
The type of warped API the book is talking about is a class, package, set of methods, etc. which include methods or classes aimed to improve performance but that reduce code readability.
Adding a recycleObject() or deleteObject() method to an object shouldn’t be necessary unless the object uses a system resource such as a video card, sound input/output device, network socket, hard drive file, etc.
Programming tends to be a trade off between time, performance, quality, and half a dozen other factors.
Your time is important and adding performance optimizations too early wastes time.
Write a well structures program and if performance issues come up, do some profiling and discover which parts of your code are slow, only then should you start trying to optimize.
DON’T WORRY ABOUT PERFORMANCE UNTIL YOU HAVE SOMETHING MOSTLY DONE.
I try to never shouting, but I’ve wasted weeks of my life prematurely optimizing code and it’s useless; don’t do it, you’ll be a happier, more productive developer for it.
P.S. I know the feeling though, I still worry about optimization too early, even though I know I shouldn’t.