java反射获取类方法是无序的,原理是什么?

The elements in the returned array are not sorted and are not in any particular order

1、是因为Java内存模型中的重排序?
2、是java编译成class文件的时候,因为内存被清理或重新分配导致类的成员变量顺序无序?

堆(heap)中的方法区存放着类信息,堆是无序的啊。

这里的无序,不是指没有顺序,而不是不能假定它有特定的顺序。
对于特定的程序包,在特定的软件环境上获取,它的顺序一般是确定的。
之所以说无序。是因为java编译器、jvm的实现、操作系统等都可能改变顺序,所以不能保证特定的顺序。