回复讨论(解决方案)
没有什么不同
没有什么不同
为什么有的企业偏偏选择java作网站后台呢?
各人喜好,再说 java 可以不给源码
各人喜好,再说 java 可以不给源码
java像C语言一样,非脚本语言?
除了这个,还有什么区别啊?
安全....
安全....
知道一个可执行文件的源代码,并不是很难的事啊?
安全....
你所说的安全是指哪方面的安全?
没有用java写过后台 mark
java做得事情会多一点(成本高),php相对少一点(成本低)。
如果你的网站后台要求不高可以使用php
安全....
你所说的安全是指哪方面的安全?
直接 复制粘贴 好了
这样从几个方面来看:
一、运行机制:
Java代码被编译成字节码后,会在虚拟机里由JIT进行二次编译成为本地码,据传言其执行速度可以和C++相媲美,经过我自己测试,用Java实现一个简单的Memcache协议的缓存服务器,在Java 1.6下运行,和memcache本身相比,同样数据量的存取时间比大概是3:2,虽然有差距,但是比想象的要好很多。Java 1.7在JIT方面做了大量的改进,性能比Java 1.6还要好。
PHP是直接对文本代码进行解释执行,即便有opcode缓存技术,仍然有不可逾越的性能鸿沟。PHP的opcode类似于java的class字节码,仍是解释执行。
二、处理并发:
Java在并发处理上采取单进程多线程的方式,web应用会随着web server的启动而启动,而来自web 浏览器的请求将被分配给线程池内的闲置线程处理,也就是说当有请求到达的时候,进程是准备好的,线程是准备好的,Java要做的仅仅是业务逻辑处理了。
PHP在并发处理上时采取多进程的方式,在web server里没有物理的web应用概念,每个请求都相当于一个独立的应用,而进程也随着请求的到达才启动,而随着请求的结束而消亡。在Fast CGI环境下,有类似于线程池的进程池技术,对性能提高有很大的帮助。然而一方面web server和Fast cgi通讯仍需要通过socket,多出了一定的IO损耗,另一方面进程池内的进程间也很难进行通讯,所以在并发处理上仍然无法和Java相比。
三、数据库应用:
Java可以采用数据库连接池技术,节省下数据库连接过程带来的时间损失。
PHP没有这个好处,原因来自上面的第二条。
在数据库接口上java有JDBC,PHP有PDO,这两个很类似。然而Java有非常多的ORM技术框架(如Hibernate)使数据库操作变得异常简单,而PHP的运行方式决定了它是ORM的禁区(当然也可以做ORM,只是做到什么程度是由你对ORM带来的性能损耗的忍受程度决定的)。
四、缓存技术
Java是单进程,很多缓存可以直接在Java的heap中做,而无需借助外在的工具,当然也有很好的缓存框架,比如Ehcache,因为没有网络IO,所以性能非常高。
PHP多进程单线程决定了它只能借助外来的缓存服务器,比如Memcache.
五、热部署
Java的热部署能力很弱,如果希望修个BUG而不停服是很难做到的。
PHP天然热部署。
六、开发成本
一个好Java程序员所需的知识储备更多,开发、调试所需的周期较长,好点的web server也都是收费的。
PHP免费、web server也免费。
七、安全性
这个要看你怎么来定义安全性,如果是代码安全,java class反编译很容易,这点上来说两者差不多。
Java有安全配置机制可保证一些“非法操作”无法执行,这点上来说PHP较弱。
然而Java很容易因为一个BUG导致整个应用宕掉,PHP就安全的多。
其实要说起来Java的好处多多,然而仅仅最后三条就可以让决策者取PHP而弃Java.
直接 复制粘贴 好了
这样从几个方面来看:
一、运行机制:
Java代码被编译成字节码后,会在虚拟机里由JIT进行二次编译成为本地码,据传言其执行速度可以和C++相媲美,经过我自己测试,用Java实现一个简单的Memcache协议的缓存服务器,在Java 1.6下运行,和memcache本身相比,同样数据量的存取时间比大概是3:2,虽然有差距,但是比想象的要好很多。Java 1.7在JIT方面做了大量的改进,性能比Java 1.6还要好。
PHP是直接对文本代码进行解释执行,即便有opcode缓存技术,仍然有不可逾越的性能鸿沟。PHP的opcode类似于java的class字节码,仍是解释执行。
二、处理并发:
Java在并发处理上采取单进程多线程的方式,web应用会随着web server的启动而启动,而来自web 浏览器的请求将被分配给线程池内的闲置线程处理,也就是说当有请求到达的时候,进程是准备好的,线程是准备好的,Java要做的仅仅是业务逻辑处理了。
PHP在并发处理上时采取多进程的方式,在web server里没有物理的web应用概念,每个请求都相当于一个独立的应用,而进程也随着请求的到达才启动,而随着请求的结束而消亡。在Fast CGI环境下,有类似于线程池的进程池技术,对性能提高有很大的帮助。然而一方面web server和Fast cgi通讯仍需要通过socket,多出了一定的IO损耗,另一方面进程池内的进程间也很难进行通讯,所以在并发处理上仍然无法和Java相比。
三、数据库应用:
Java可以采用数据库连接池技术,节省下数据库连接过程带来的时间损失。
PHP没有这个好处,原因来自上面的第二条。
在数据库接口上java有JDBC,PHP有PDO,这两个很类似。然而Java有非常多的ORM技术框架(如Hibernate)使数据库操作变得异常简单,而PHP的运行方式决定了它是ORM的禁区(当然也可以做ORM,只是做到什么程度是由你对ORM带来的性能损耗的忍受程度决定的)。
四、缓存技术
Java是单进程,很多缓存可以直接在Java的heap中做,而无需借助外在的工具,当然也有很好的缓存框架,比如Ehcache,因为没有网络IO,所以性能非常高。
PHP多进程单线程决定了它只能借助外来的缓存服务器,比如Memcache.
五、热部署
Java的热部署能力很弱,如果希望修个BUG而不停服是很难做到的。
PHP天然热部署。
六、开发成本
一个好Java程序员所需的知识储备更多,开发、调试所需的周期较长,好点的web server也都是收费的。
PHP免费、web server也免费。
七、安全性
这个要看你怎么来定义安全性,如果是代码安全,java class反编译很容易,这点上来说两者差不多。
Java有安全配置机制可保证一些“非法操作”无法执行,这点上来说PHP较弱。
然而Java很容易因为一个BUG导致整个应用宕掉,PHP就安全的多。
其实要说起来Java的好处多多,然而仅仅最后三条就可以让决策者取PHP而弃Java.
学习了!
怪不得说淘宝都用java写的后台

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Following its high-profile acquisition by Facebook in 2012, Instagram adopted two sets of APIs for third-party use. These are the Instagram Graph API and the Instagram Basic Display API.As a developer building an app that requires information from a

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 Linux new version
SublimeText3 Linux latest version

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!
