从大一开始就开始接触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. 短小实用 渗透用的Python小脚本

    渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小实用. 一.记录root密码小工具 root.py #!/usr/bin/py ...

  2. python获取每颗cpu使用率

    以下是关于python来获取服务器每颗CPU使用率的使用脚本. #!/usr/bin/env python # -*- coding: utf-8 -*- import re,time def _re ...

  3. 如何创建sequence

    我用的是在oracle中的方法,在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有CREATE ...

  4. iOS 下拉刷新 上拉加载实现原理

    1.下拉刷新 实现原理 if (scrollView.contentOffset.y < -100) { [UIView animateWithDuration:1.0 animations:^ ...

  5. vb6如何将MSHFlexGrid控件中的内容导出为Excel

    首先的是是准备工作 需要引用 Microsoft Excel 11.0 Object Library 需要添加控件Mircrosoft Hierarchical FlexGrid Control 6. ...

  6. Oracle 约束类型

    在Oracle中的约束类型:NOT NULLUNIQUE KeyPRIMARY KEYFOREIGN KEYCHECK create table emp--创建表格 ,注意约束( empno numb ...

  7. 利用css使文本在限制几行之后隐藏

    想要在布局中显示一段新闻的标题或是内容,特别是内容,东西超多...下面的方法就是通过css来控制文本显示多少的: 首先在html中写上: <p class="ellipsis" ...

  8. GSS3 SPOJ 1716. Can you answer these queries III gss1的变形

    gss2调了一下午,至今还在wa... 我的做法是:对于询问按右区间排序,利用splay记录最右的位置.对于重复出现的,在splay中删掉之前出现的位置所在的节点,然后在splay中插入新的节点.对于 ...

  9. python连接字符串的方式

    发现Python连接字符串又是用的不顺手,影响速度 1.数字对字符进行拼接 s=""  #定义这个字符串,方便做连接 print type(s) for i in range(10 ...

  10. ASP.Net 验证控件 RangeValidator

    RangeValidator 定义和用法 RangeValidator 控件用于检测用户输入的值是否介于两个值之间.可以对不同类型的值进行比较,比如数字.日期以及字符. 注释:如果输入控件为空,验证不 ...