Home  >  Article  >  Backend Development  >  Analysis and comparison of java and php

Analysis and comparison of java and php

小云云
小云云Original
2018-03-20 13:47:461614browse

It has been some time since I switched from PHP to Java development. I returned from the Alibaba annual meeting and had a long journey on the high-speed train, so I chatted with my colleagues about the comparison between Java and PHP. Question: Java has interpretation and execution and JIT, and PHP has opcode. If PHP's opcode is made compiled, or the Java source code is directly interpreted and executed, will Java and PHP be the same?

Answer: First of all, the difference between Java and PHP is not only in this aspect. PHP is a dynamic language, and Java is a static language. The data type of PHP is variable. There will definitely be a performance consumption in detecting variable types. It will lengthen the execution process of the program. If java is directly interpreted and executed, you will not be able to enjoy the powerful underlying functions of jvm, and if the server system environment changes, the machine code generated by the java source file may not be executed. If PHP is compiled into opcode in advance, PHP will lose the feature that changes will take effect immediately, and the gain outweighs the loss.

Why java is better than php:

The editor supports java better than php, such as unified renaming, which is beneficial to the maintainability of the program;

java's The pojo class can make program writing more convenient and controllable, and you can use the functions of the editor to perform some convenient processing;

Because php is a dynamic language, the type of the variables is uncertain before running. The type of the variable needs to be determined during runtime, which consumes a certain amount of performance;

php will destroy resources after completing a request, resulting in many resources that cannot be reused, and the static attribute of java will always exist in In the memory, they will not be destroyed when the request ends. Local variables under the main method or methods consistent with the service will not be destroyed when the request ends. Using this feature, spring realizes automatic injection. In the project The necessary objects are created during the startup phase. Although the memory becomes higher, there is no need to reload and initialize all resources with every request like PHP. Java can implement connection pooling very well in this way, while PHP has difficulty implementing connection pooling, and PHP cannot even implement singleton mode. This may be the key reason why companies like Alibaba and JD.com gave up on PHP. In a high-concurrency environment, Java should be many orders of magnitude higher than PHP, and PHP is more suitable for small and medium-sized projects;

Java exceptions The mechanism is more complete than that of PHP, which makes Java more stable;

PHP's environment construction is more complicated. nginx, apache, and PHP all need to be configured, compiled and installed. For Java's springboot, you can directly git download the code to start the project. ;

The entire ecosystem of java is more complete. Tomcat, kafka, lucene, solr, es, and other open source software are all implemented in java, while php is mostly open source software that relies on the c language. ;

Guava's local cache can cache data that originally requires IO, reducing IO usage, while PHP cache basically relies on distributed caches such as memcache and redis, and there will still be a lot of IO consumption, even if it is used Some extensions can cache resources locally, but since PHP is multi-process, it will definitely consume more performance than multi-threaded Java;

The feature of PHP that destroys all resources when used up makes it impossible to maintain Long connections. Although the current swoole framework can do long connections, it still cannot compete with compiled languages ​​in terms of performance.

Why php still exists:

Although java has so many benefits, it does not have so many requirements for small and medium-sized projects. You can quickly develop and complete projects with php.

Related recommendations:

Comparison between java and PHP

Java and php implement RSA encryption interoperability

Comparison of Java and PHP in Web Development_PHP Tutorial

The above is the detailed content of Analysis and comparison of java and php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn