漫谈php和java
Upcoming SlideShare
Loading in...5
×
 

漫谈php和java

on

  • 1,518 views

 

Statistics

Views

Total Views
1,518
Views on SlideShare
1,436
Embed Views
82

Actions

Likes
0
Downloads
12
Comments
0

2 Embeds 82

http://sulong.me 81
http://cache.baidu.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

漫谈php和java 漫谈php和java Presentation Transcript

  • 漫 谈 PHP 和 JAVA Sulong.info
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
      • 二、运作机制
      • 三、互相学 习
      • 四、 协作
      • 五、 举例
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
  • 面向的 领域不同
      • Java
        • 跨平台的通用程序 语言,主要应用于商业应用,嵌入式设备等
  • Java 的 应用领域
    • 目前,采用 Java 的 设备已超过 45 亿,其中包括:
      • 8 亿多台个人计算机
      • 21 亿部移动电话以及其他手持式设备(来源: Ovum )
      • 35 亿个智能卡
      • 以及机 顶盒、打印机、网络照相机、游戏、汽车导航系统、彩票终端、医疗设备、收费站等。
    • —— 以上信息来自 http://www.java.com/zh_CN/about/
  • 面向的 领域不同
      • Php
        • 为 web 而生, 专精于 web , web 第一 语言
  • 详细对比
      • 都跨平台
      • 同 样的受欢迎
    PHP JAVA 解 释型 编译型 动态类型 静 态类型 混合 过程式和面向对象 面向 对象 没有名称空 间 复 杂的名称空间 弱 类型 ? 强类型
  • 同 样受欢迎
  • Php 的特点 没有名称空 间,不需要导入,内置函数直接可用 PHP mysql_connect Mysql_fetch_array ftp_get PDF_open_file … JAVA Import javax.servlet.* Import javax.jms.* Import java.util.* … . Java 默 认只导入 java.lang 包内非常基本的功能 java se 的功能也 远没有 php 发行包强大
  • Php 的特点 拥有丰富而实用的内置函数 —— 数百个内置函数几乎涵盖了 web 编程的方方面面,不需要导入就可以直接使用 PHP 就是瑞士 军刀!
  • Php 的特点 解 释执行,修改后就可以看到效果 不需 编译!
  • Php 的特点 灵活 强大的 Array $earth = array( “ 大洲” =>array( “ 亚洲” =>array( “ 中国” =>array( “ 人口” =>”13 亿” , “ 领土” =>”960 万” ) ) ) ) 不需要 总是定义类来表示数据!
  • Php 的特点 讨论: 你 觉得 PHP 还有什么特点?
  • Java 的特点 Jvm 运行快
  • Java 的特点 一切都是 对象 Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object Object
  • Java 的特点
      • 由于 java 的快速和面向 对象, java 程序往往使用大量(成百上千)的 类,函数堆栈数十层!相比之下 php 扁平化得多。
  • Java 的特点 标准化,一个标准 , 众多 实现 标准名 实现 jvm Sun jvm,IBM jvm,Oracle jrokit,Open jdk,Microsoft jvm … Java ee application server Glassfish, jboss, tomcat, weblogic,websphere,resin… Jms Activemq, ibm mq, jboss mq … … …
  • Java 的特点 被 业界支持
  • Java 的特点 讨论: 你 觉得 Java 还有什么特点?
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
      • 二、运作机制
  • 运作机制
      • Php 为每个请求重新创建资源,并在 请求结束后释放所有资源 。 Php 在 语言级别上没有能力直接在两次请求间保持数据。
  • Php 运作机制
  • Java 运作机制
      • Jvm 常 驻内存 ,用一个 进程,多个线程来处理所有请求,资源的释放由 JVM 和程序自行控制。
  • Java 运作机制
  • 运作机制
      • Php: 我 们为每个苹果制造一个刀子,削完了苹果,扔掉刀子
      • Java: 我 们制造一个刀子削所有的苹果,削完一个苹果接着削下一个
    • 看一个例子
  • 运作机制 讨论: Java 和 PHP 在 Http Session 的 实现机制上有什么差别?
  • 运作机制 这种差别带来的结果 PHP JAVA
    • 资源在页面处理完成后被释放,所以
      • 不太容易 资源泄漏
      • 程序 员更轻松
    • 资源由 JVM 和程序 员负责释放
      • 比 PHP 容易 导致泄漏
      • 程序 员责任更大
    • 每次都要重建运行 时环境,所以
      • 程序不能太复 杂,否则代价太大
      • 不容易构建中 间件
      • 修改在下次 请求被处理时就生效
    • 不需要每次重建,所以
      • 可以构建极 为复杂的程序
      • 容易构建中 间件
      • 需要重新启 动才能生效
    • 缺少本地内存 缓存机制,所以
      • 依 赖 memcache
      • 无状 态风格
      • 集群 时不需要考虑状态复制
    • 具有本地内存 缓存
      • 有自己的 缓存,但是管理缓存很复杂
      • 常常使用有状 态风格
      • 有状 态时,集群需要状态复制
    • 标准化不足
      • 和具体 环境耦合,不利于重用
      • 缺少 备选方案
    • 标准化
      • 对具体环境依赖较小,有利于重用
      • 有充足的 备选方案
  • PHP 程序 员和 Java 程序 员
      • Php 程序 员
        • 用直 观,快速,简单的方式解决问题,注重于结果
      • Java 程序 员
        • 注重 积累和重用,注重于过程,有时过度设计
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
      • 二、运作机制
      • 三、互相学 习
  • PHP 程序 员和 Java 程序 员
      • Php 程序 员
        • 创造出了大量的优秀 web 应用程序 :phpmyadmin,wordpress,joomla…
      • Java 程序 员
        • 制造了大量用来解决 问题的工具和组件
  • Java 程序 员应该向 php 学 习
      • 一 边写代码,一边反复测试代码
      • 学 习更多的前端的知识,保证能做出“能用”的产品,最好做出“好用”的产品
  • 互相学 习
      • Java
        • 轻量化: jre 的体 积缩小
        • 简单化: java ee 使用越来越方便,各种框架越来越 简单
        • 平台化:成 为平台,给其它语言提供运行环境,比如 jruby, jython, quercus
  • 互相学 习
      • Php
        • 逐 渐采用面向对象
        • 注意 积累,制造很多优秀框架
          • Codeigniter
          • Cakephp
          • Yii
  • MVC
      • MVC 是 php 和 java 之 间互相学习的例子
        • Struts 把 MVC 在 web 领域的应用推广开来
        • Ruby On Rails 把 MVC 发挥到极致
        • PHP 涌 现了大量的 MVC 的框架
  • MVC 典型的 MVC
  • MVC Front End Controller MVC Front End Controller Controller View Model front End Controller 是程序的入口,决定之后运行哪个 controller
  • 互相学 习
      • Struts 1
  • 互相学 习
      • Codeigniter flow chart
  • 互相学 习 Struts 2
  • 互相学 习
    • 讨论:
      • 为什么要用 MVC ?
      • MVC 有什么不足?
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
      • 二、运作机制
      • 三、互相学 习
      • 四、 协作
  • 协作
      • 各取所 长
        • 让灵活的 php 处理多变的用户界面和交互
        • 让稳定可靠的 java 处理繁琐的业务逻辑
  • 协作
      • 目前我 们采用的方式
    用 户 PHP Java HTTP HTTP SOAP
  • 协作
      • Http
        • 简单直观
        • 需要更多的 编码工作
      • SOAP
        • 标准
        • 复 杂, java 和 php 对 soap 的 实现有差别
  • 协作
      • Querqus
        • Php 被 编译成 java 的字 节码在 JVM 执行
        • 兼容 PHP 的 语法和绝大部分函数库
        • 保留 PHP 的 动态能力
        • 让 PHP 可以使用 JAVA 的功能:
          • Thread
          • Java messaging service
          • Database connection pool
          • In memory cache
  • 协作 了解一下 Servlet 的工作机制
  • 协作
      • Querqus 模式
        • Querqus Servlet 处理 url 以 .php 结尾的 http 请求
        • Querqus servlet 解 释对应的 php 文件
        • Php 通 过 jdbc 访问数据库
        • Urlrewrite 有 java 的 Servlet filter 实现
  • 协作 Quercus 目 录结构
  • 协作
      • Querqus 模式
    OS PHP JVM Querqus JAVA
  • 漫 谈 PHP 和 JAVA
      • 一、 语言
      • 二、运作机制
      • 三、互相学 习
      • 四、 协作
      • 五、 举例
  • 举例 看例子
  • Q&A
  • GAME OVER