关于linux上的java线程最大限制问题

java的线程开启,默认的虚拟机会分配1M的内存,但是在4G的windows上线程最多也就开到300多 ,是因为windows本身的一些限制?

另外我想知道的是,在linux服务器上,linux默认给每个线程的内存是10M,那java在linux上开启线程到底是拿到1M还是10M的内存?不管是哪种方式, 一台4G的服务器,最多又能开多少个java线程呢?