主要有以下原因造成的:1)入门门槛:java的入门门槛要比.NET的高。以开发web应用程序为例,javaweb程序员要学的技术体系结构远比.net web程序员要学的技术体系结构多。2)速成:.net的一些技术被微软高度集成在IDE里,即很多功能都可以通过VS IDE可视化操作完成,配置少。相反JAVA大部分东西都是要去配置的。所以很容易被人造成一个错觉,认为搭建一个.net项目比搭建java项目简单的多,周期短,后者开发周期长。从而福利这块也就相应变少了。