They create different types of objects. new ArrayList<>() creates a java.util.ArrayList that you can add, etc.
Arrays.asList() uses a type that is also called ArrayList , but is a nested type ( java.util.Arrays$ArrayList ) and does not allow you to add or remove elements. It just wraps the array.
Now, if you don't care about these differences, you will get two roughly equivalent implementations, both wrapping the array in the List<> interface. I would be very surprised if they differed in performance in any significant way - but, as before, if you have certain performance problems, you should check them in your specific context.
source share