热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP程序员快速进行Java开发

PHP程序员快速进行Java开发:PHP程序员快速进行Java开发,就好比我们拿着放大镜在学习java一样,java经过这么多年的发展,可以说非常庞大。学习一门新的语言也一样,有很
PHP 程序员快速进行Java 开发,就好比我们拿着放大镜在学习 java 一样,java 经过这么多年的发展,可以说非常庞大。学习一门新的语言也一样,有很多很多网上的教程,非常的大而全,一般得系统的学习30~60小时之后才能正式的接触项目开发。基础很重要,但是学习了太多的基础会让大家失去学习的乐趣和自信心。很多知识点其实可以项目之后再补。按需去学,反而是自我驱动着去学习的最佳方式。

比如 hashmap 的哈希分布、哈希碰撞、动态扩容,这些都是我们后期深入提高需要理解的内容,初期,我们只需要知道能拿 hashmap 做什么就行。

以实现自己熟悉的东西为导向

比如我们做 Web 后端 api 开发,首先是常用的循环/迭代、条件判断、增删改成。那么能不能快速用 java 实现一遍这些我们用 php 做起来非常顺手的事呢?

这样有助于我们快速提升自信心。

使用类比的学习方法

PHP 里如何实现,重新用 java 实现一遍就行了。

最后深入系统的学习

当自己实现了一些小 demo 再去参考别人的项目。如果一开始就直接看别人的项目,可能完全不知道别人在干嘛。比如别人用了 ConcurrentHashMap ,就再去思考为什么我用 HashMap 他却用 ConcurrentHashMap ,带着问题,带着思考去看开源代码。

完成了一些简单的项目了之后就可以再回过头来系统的学习了。这时候就会有不一样的收获。

最后就是当项目需要调优,性能提升的时候,再各个击破,深入学习,更有针对性,更有目标性。

实战开始

我们用 netty 来提供高性能的 web 服务服务。使用简单方便(netty 并不简单),不依赖其他软件。然后思考完成一个简单的 web api 服务器需要哪些必不可少的组成部分。(其实在思考这的时候,你必须要要对做简单的架构必须熟记于心)。

我简单概括了下:

  1. java 基础数据类型(php 也有,不怕)

  2. java 集合框架(php 有数组,很强大)

  3. 初识 maven(php 有 composer)

  4. 反射 (框架路由等地方要用到,php 也有)

  5. 序列化(数据传输要用到,php 没有复杂的数据结构要简单 N 倍)

  6. jdbc (数据库操作要用到,php 有 pdo)

  7. 大概认识泛型、注解等语法 (可选)

  8. 使用 netty 实战开发一个 web api 服务(php 有 swoole)

Java 基本的数据结构、各种基本数据类型包装类

Java - Collections Framework 高频类举例

HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,也就是说所说元素插入的顺序与输出的顺序不一致。

这其实是我的老朋友了,redis 里经常用,比如咱们可以它来实现一个黑名单,这样查找的速度就非常快,也不用去远程查询 redis 了,直接在当前内存中查询。

ArrayList 基于数组来实现集合的功能,其内部维护了一个可变长的对象数组,集合内所有对象存储于这个数组中,并实现该数组长度的动态伸缩。

这不就是我们的 PHP 里面常用的索引数组么?

HashMap 以哈希表数据结构实现,查找对象时通过哈希函数计算其位置,它是为快速查询而设计的。特点就是快,非线程安全。

初识 maven

Maven的基本原理很简单,采用远程仓库和本地仓库以及一个核心的配置文件pom.xml,pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个项目使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。

这和 php 的包管理工具 composer 很像,或者是 composer 是参考着 maven 而设计的。maven 的功能更强大,composer 需要每个项目都要导入一遍,maven 却像 git 一样,有一个本地仓库,第三方包也不会直接引用到项目中,而是在编译的时候才会引入(是不是很方便)。另一方面,maven 不仅仅是包管理工具,而且是一个项目管理工具,集成了编译、打包、单元测试等功能。

实现控制器的访问

具体需求:提供一个 api 可以用户指定用户的信息

定义接口:

http://localhost:10000/users/{id} http://localhost:10000/?method=user.get&id={id}

可能现在大家早已习惯了前者 restful 的 api 接口。

因为这里需要一次路由的映射和 http method 的匹配,考虑到学习的成本呢,我没有选择这种方式。

我们今天的目标是以最简单有效的方式实现我们的功能。

我们首先从最简单的方式来实现(其实没有路由的 api 反而是最快的,毕竟需要做的判断少)。

以上内容就是PHP 程序员如何快速进行Java 开发,希望能帮助到大家。

相关推荐:

一个PHP文件上传类分享_php实例

php图片水印添加、压缩、剪切的封装类

史上最全的PHP正则表达式_正则表达式

以上就是PHP 程序员快速进行Java 开发的详细内容,更多请关注其它相关文章!


推荐阅读
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
ym_泳梅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有