从大一开始就开始接触java这门语言。但是在这之前也接触了vb,c,asp等等开发语言,唯独java让人感觉严谨,清爽,各种数据之间的不拖泥带水。这才花费更多时间去研究他。但是学着学着,发现他体系的庞大,分支很多。在开始的时候没有收住,结果学习周期过长,在生产环境中的实践却不多。

就拿SSH来说,花费了整整一年时间去研究,但是公司从始至终也没有去用这个,说是太臃肿,反应慢,难以部署和调试。至此,经过了5、6年也最终没有派上用场。生产环境下,也一直是使用jsp+jquery进行开发,核心框架却是公司自己开发的。

学习和使用java的过程,大家一定要有一种定力,不要随便被他新出的各种领域的技术吸引,最好是选择一个领域,深入研究,这样才能够有所收获,不然,每个东西都试一下,结果时间花了,最终长时间用不上,也是得不偿失。如果实在是想与研究,建议不要闭门造车,自己一个人去瞎琢磨,聚集一群志同道合的朋友,将一个大窝窝头分着啃,然后互相交流心得。比如,刚才提到的ssh,内含信息量太大,要研究源码的话一个人估计也至少得花上一两年去研究。虽然我们生产环境里面用不上,但是几个人分别对其中一部分进行研究,再探讨,效果会很不错的。

也是一个偶然的机会,从朋友那里得知他在使用php开发,一开始并不是很喜欢他的语法和开发模式。语法方面,每次都要在变量前面加上“$”符号,让人感觉很别扭。基本上很多内容都直接跟html混合到一起,一种特别混乱的感觉。

但是经历了一些项目后,发现java虽然是严谨,一丝不漏。但是每次开发都需要先将各种框架,各种类摆好,搭好架子再进行具体内容的开发,不然后面就是一团糟了。php就让人摆脱这点了,因为他同时兼备结构化语言和面向对象语言的特点。小web站点我们可以直接快速结构化开发,局部内容进行OO化就行了。所以让我们项目能够迅速实现。

另外,在学习周期方面也确实比较短,有点编程底子就可以在不到一周快速上手,而且可以进行生产开发了。

PHP里面也提供了很多灵活的语言结构,让代码看起来更加高效,紧凑。比如,可变变量和可变函数的使用。

<?php

function get_pen(){

echo "We get a pen.";

}

function get_pencil(){

echo "We get a pencil.";

}

?>

用户给我们一个参数$tool,代表钢笔或铅笔

第一种调用方法:

if($tool == "pen"){

get_pen();

}elseif($tool == "pencil"){

get_pencil();

}

第二种调用方法:

$getsth = "get_".$tool;

$getsth();

本来需要大段代码的编写,这里只需要简单的拼接就行了。这种用法在php中大量存在,极大简化我们的开发过程,提高开发效率。

正因为php诸多这样的优秀特性,加上他自身的不断发展,使得他越来越流行了。也让人爱不释手不是吗?

从java到php的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. [SQLServer]学习总结笔记(基本涵盖Sql的所有操作)

    --################################################################################### /* 缩写: DDL(Dat ...

  2. IOS缓存之NSCache缓存

    NSCache:专门做缓存的类 NSCache简介:NSCache是苹果官方提供的缓存类,用法与NSMutableDictionary的用法很相似,在AFNetworking和SDWebImage中, ...

  3. C++中模板函数或模板类中关键词class和typename

    ##区别 基本上来说,class和typename几乎没有区别.在可以使用class的地方都可以使用typename,在使用typename的地方也几乎可以使用class. 可以看出我加黑了两个子:几 ...

  4. 【VMware虚拟化解决方案】 基于VMware虚拟化平台VDI整体性能分析与优化

    一.说一说 本来打算将前期项目里面出现的问题的分析思路与解决方法写出来,第一.疏导一下自己的思路,第二.分析并找出自身在技术层面所存在欠缺.但由于每个人都有一根懒经所以迟迟未动.今天突然发现51CTO ...

  5. 剑指Offer47 不用加减乘除做加法

    /************************************************************************* > File Name: 47_AddTwo ...

  6. BZOJ 1146: [CTSC2008]网络管理Network 树链剖分+线段树+平衡树

    1146: [CTSC2008]网络管理Network Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 870  Solved: 299[Submit] ...

  7. 揪出ie和Edge的js代码

    var userAgent = navigator.userAgent; var isIE = userAgent.indexOf("compatible") > -1 &a ...

  8. Android之图片滑动与显示

    先在Transitions中插入ImageSwitcher package com.example.Galleryphotoshow; import com.example.Galleryphotos ...

  9. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  10. 单独调用Ueditor的图片上传功能

    <!DOCTYPE html> <html> <head> <title></title> <script src="/sc ...