and a compromise at best. There is a different design in the run-time environment in each language (Java/PHP).
Java has sought to achieve faster response in the face of large numbers of users by, keeping byte code resident in RAM for as long as possible, avoiding reloading programs with each request. The cost of this choice is that in large complex systems, multiple dedicated servers must be used or as it runs out of memory, it looses its advantage. Scalability means buying more servers, and designing applications with dedicated servers in mind, one for one purpose, and another server for another purpose.
ISP's like PHP because it is not a part of the strategy to dedicate servers to a specific purpose or part of an application and one server can support multiple users with entirely different applications on the same machine, up to a point of course.
I know of more than one large site that has had to go out and buy more servers after implementing Java as a solution, primarily because of this tradeoff. Scalability is a buzzword which seeks to place a spin on this impact and disquise the additional cost.
Depending on the hardware involved, I have seen PHP sites supporting 400-500 concurent users with a wide variety of applications, same hardware supporting supporting 5000 concurrent users but only one dedicated app with Java. If you like Java, be sure to bring your pocket book.
Scalability comes at a price (what did you expect?).