首页
学习
活动
专区
圈层
工具
发布

从 PHP 到 Java

前言 ---- 最近主要编程语言从 PHP 转到了 Java。这一个多月的经历对我很有意义,所以写文章记录一下。...我用 PHP 做过支付,也用 PHP 做过后台多进程开发,还有用 PHP 做游戏服务端的,PHP 快速开发快速部署的特性完全契合敏捷开发的思想,节约了开发人员大量时间,对一些公司来说,快速开发意味着市场...由于 PHP 是纯粹的 C 系语言,我原准备继续学一门 C 系语言,跟 PHP 互补,我在 PHP 调用 Go 服务的正确方式 一文里也提过,我的选择是 Go。...过渡 ---- 从 PHP 换到 Java,确实有很多地方不适应,虽然大学时也学过 Java,可是已经忘得差不多了,况且写小 Demo 和工业级开发是完全不同的,说说几个转变的点: 强类型:从弱类型到强类型语言...小结 ---- 既然入了 Java 的坑,那么后续会多研究一下 Java 的技术,实现一些工具时也尽量使用 Java,欢迎大家继续关注。

2.6K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从Rust到远方:PHP星系

    从您的博客到世界上最流行的网站,PHP提供了快速、灵活和实用的功能。...PHP ? 要将Rust解析器移植到PHP中,我们首先需要将它移植到C。这在上一节中已经完成。...从脚手架开始 PHP附带一个脚本来创建一个扩展框架模板或者说脚手架,叫做ext_skel.php。这个脚本可以从Zend引擎虚拟机的源代码找到(我们把它叫做php-src)。...我们已经看到在现实世界中如何用Rust编写一个解析器,如何将其绑定到C然后编译到一个静态库和C头文件,如何创建一个PHP扩展暴露一个函数和两个对象,如何将C绑定集成到PHP中,以及如何在PHP中使用这个扩展...考虑到我们要处理的绑定数量,可以对这个属性提出疑问: Rust到C到PHP: 这还安全么?从Rust的角度来看,答案是肯定的,但是在C或PHP中发生的所有事情都必须被认为是不安全的。

    1.5K40

    从php到Golang系统的演变

    ◆ 我们怎样由php转向go 由于之前团队全部都是php栈,在go方面的积累并不多,所以在php转向go的过程中,面临了在转型过程中都会遇到的问题: 1. 用什么框架; 2....从时间成本和系统稳定性上来讲,这种方式风险比较大,不推荐。推荐的思路:一个接口一个接口进行重构。...因此,借助go-kit这套工具集,我们就能很好的对transport协议,middleware进行扩展,且不会影响到业务本身的设计。...图3 go-kit架构图 ◆ 怎样將go-kit集成到现有的业务系统中 我们找到了心仪的开源工具后,那么我们怎样以较低的成本将其引入到我们业务系统中呢?...◆ 如何高效的使用go-kit 前面有提到,go-kit本身分为三层,针对这点有同学会提出:“每次新建项目,都需要手动写下go-kit的这三层逻辑,有点浪费时间,不够简洁”,这确实是一个共性问题, 从go-kit

    1K20

    Java从入门到精通

    : * 如何从键盘获取不同类型的变量:需要使用 Scanner 类 * 具体实现步骤: * 1.导包:import java.util.Scanner; * 2.Scanner 实例化:Scanner...JDK8 中新的日期时间 API涉及到的包 java.time:包含值对象的基础包 java.time.chrono:提供对不同的日历系统的访问 java.time.format:格式化和解析时间和日期...如果返回0,表示相等; 如果返回负整数,表示 o1 小于 o2 代码举例 Comparator comparator = new Comparator() { /** * 按照字符串从大到小排序...启示 客户端 / 游览器端 后台(Java, Go, Python, Node.js, PHP) 数据库 要求前前后后使用的字符集都要统一:UTF-8 其它的流的使用 标准的输入输出流...NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新 的IO API,可以替代标准的Java IO API。

    83110

    从Groovy到Java性能

    最近在这个问题上,我有了一些新的发现,分享一下自己对FunTester测试框架使用的Java+Groovy这对组合性能方面的认识。...因为在开始写FunTester性能测试框架决定使用Groovy时,就觉得这个脚本语言性能肯定是有限的,比Java肯定差得远。...那就是先用Java启动一个JVM,然后加载Groovy脚本,通过修改Java进程的JVM启动参数依然可以控制整个JVM所能使用的资源。当然这个方案会损失一部分Groovy的灵活性。...单纯从性能角度没有必要,一些特殊场景需求,比如多地域测试,会优先考虑分布式方案。 Java单进程拥有足够的性能,堆硬件也能提升很高的单机性能。应对10万QPS级别的HTTP接口性能测试完全没有问题。...自动化如何选择用例 Java&Go高性能队列之channel性能测试 动态模型之动态增减【FunTester测试框架】 白盒测试扫盲 6个重要的JVM性能参数 Java&Go三种HTTP客户端性能测试

    1.2K20

    java从入门到精通_Java 入门到精通的过程

    对于学习语言本身我觉得最高效的方法就是看一本该领域的经典入门书,比如对于 Java 就是 Thinking in Java,这是我称为第一维度的书,聚焦于一个技术领域讲得透彻清晰。...李笑来老师也曾写过一篇文章《从平庸走向卓越的最佳策略》,里面提到的最佳策略就是:“多维度打造竞争力”。从技术到管理似乎就是一条多维度的发展路径,是这样吗?...所以,若你真想在程序员这条道路上从入门到精通,选择了这个维度作为基础维度,就需要不断在这个维度去精进。有一本书叫《程序员修炼之道:从小工到专家》 和本文的主题很类似,只是写作的维度更贴近细节。...无情而有效的测试 让你的用户满意 建立注重实效的团队 无处不在的自动化 而过去十年我一直都在与这些问题做斗争,当这些问题倒下而你还在程序员的阵地上,想必那时你就会让人感受到那种「无名的品质」,那么你也就走完了程序员从入门到精通之路...… 这是一篇从入门到精通的索引,定位程序员的职业道路,学会学习的方法与路径,保持自省的态度,达成程序员这一维的精通,再走向多维。路漫漫,吾等将持续求索。

    2.2K20

    从Java 9 到 Java 17之Java 12

    上一篇说完了Java11,本篇接着说一下Java12.Java 12 对开发者有用的特性并不是特别多,不过实用性还是有的 字符串增强 Java 12 进一步对字符串操作进行增强,增加了两个方法。...来实验一下: String text = " Hello \n Java12"; System.out.println("缩进前"); System.out.println...String txt = "hello "; // hello hello String s = txt.transform(str -> str.repeat(2)); ❝Java...基于内容的文件匹配 Java 12 在Files工具类中增加了一个新的静态方法Files.mismatch(Path,Path),用来找两个文件内容(byte)不一样的地方,返回两个文件内容中第一个不匹配字节的位置...其它 除了上面以外,Java12还有一些预览属性和JVM增强功能,并没有太多的亮点。

    45840

    php 扩展开发 从入门到放弃(一)

    从入门到放弃 “放弃” 一词常常是令人沮丧的,而在程序员的世界里,为何遍地都是“入门到放弃”、“从删库到跑路”系列 我认为是程序员的自我调侃。...程序开发在很多情况下是枯燥无味的,使用消极的话语也就是反话,来激励自己:“从入门到不要轻易放弃!” 什么是 php 扩展(extensions) 为 php 提供扩展功能。...为什么要用 php 扩展 我认为首要原因是性能。php 扩展使用 c 语言编写,众所周知 c 是更加底层的语言,效率要比 php 高出许多。(那我们为什么要用 php?...php phpinfo(); cli 方式:php -m 开发第一个扩展 hello(演示的 php 版本是 7.1.23) 1.查看 php 版本 php -v 2.获取 php 源码 git clone...-b PHP-7.1.23 git://github.com/php/php-src.git 3.生成 hello 扩展 cd php-src/ext/ .

    31920

    从Java 9 到 Java 17之Java 11

    Java 11是自Java 8以来的又一个LTS版本,是目前全球使用最多的LTS版本之一。今天我们接着在Java 9 到 Java 17系列文章中来认识针对普通开发者的Java 11。...字符串API增强 在Java 11中,针对String的操作进一步得到加强。避免我们在很常见的场景中引入额外的、复杂的API。...var可以用于修饰Lambda局部变量 在Java 10中引入的var来进行类型推断。...文件中读写字符串内容更方便 Java 11中可以更轻松地从文件中读取和写入字符串内容了,我们可以通过Files工具类提供的新的静态方法readString和writeString分别进行读写文件的字符串内容...在年初的Java生态调查数据显示Java 11的用户数量大幅增长,成为了主流版本选择之一。

    75340

    从Java 9 到 Java 17之Java 10

    在上一篇我们对Java 9的特性进行了一些回顾,今天接着来看看Java 10带来了什么特性。...之所以需要把Java 8 到Java 17的特性归纳一遍,因为Java社区对Java 17的重视程度前所未有。话不多说,让我们走进Java 10。...Java 10 从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。...编译器从右侧的初始化程序的类型推断出初始化类型,这将大量减少一些样板代码。不过请注意,此特性仅适用于初始化局部变量,它不能用于成员变量、方法参数、返回类型等场景中。...从语义上get应该肯定能得到什么东西,但是实际上异常了,这种歧义性太大了。所以增加了一个orElseThrow()方法来增强语义性。

    82930

    1、Java从入门到精通

    将自己学习的Java基础整理出来,方便复习和记忆~~ 一、Java的历史 1、Java开发分成了3个方向 Java SE:主要用于桌面程序的开发,学习Java EE和Java ME的基础 Java EE...:主要用于网页程序的开发 Java ME:主要用于嵌入式系统程序的开发 2、Java SE平台中的lib软件包 Java.lang 包——语言核心包 java.util 包——Java语言工具包 java.text...从现实世界中客观事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。 类实际上就是封装对象和属性的载体,而对象是类抽象出来的一个实例。通过实体对象来解决一些实际问题。...作用范围:有效范围从该变量的声明开始到该变量的结束为止。 (5)权限修饰符 权限修饰符主要包括private、public和protected,修饰符控制着对类和类的成员变量以及成员方法的访问。...java.io:包含Java输入、输出相关的类、接口; java.text:包含Java格式化相关的类; java.sql:包含一些Java进行JDBC数据库编程相关的类、接口; java.awt:包含了抽象窗口工具集的相关类

    1K10

    从Java到Golang快速入门

    觉得好的话,顺手分享到朋友圈吧,感谢支持。...Golang从09年发布,中间经历了多个版本的演进,已经渐渐趋于成熟,并且出现了很多优秀的开源项目,比如我们熟知的docker,etcd,kubernetes等,其媲美于C的性能、Python的开发效率...和java不同的是,go的包里可以有函数,比如我们常用的fmt.Println(),但是在在java中没有这种用法,java的方法必须是属于一个类或者类的实例的。...Defer代替finally go中没有java的finally了,那么如果我们要关闭一些一些连接,文件流等怎么办呢,为此go为我们提供了defer关键字,这样就可以保证永远被执行到,也就不怕关闭不了连接了...觉得好的话,顺手分享到朋友圈吧,感谢支持。

    72530
    领券