国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP 程序員如何快速進(jìn)行 Java 開發(fā)

瀏覽:139日期:2022-09-05 14:17:43
入門不要拿著放大鏡去學(xué)

就像盲人摸象一樣,他要想弄清楚大象的真實(shí)面貌可能要摸很久,就好比我們拿著放大鏡在學(xué)習(xí) java 一樣,java 經(jīng)過這么多年的發(fā)展,可以說非常龐大。如果我們要知道大象長(zhǎng)什么樣,就應(yīng)該放下手中的放大鏡,向后退遠(yuǎn)點(diǎn),反而能夠非常清晰的看到它的全貌。學(xué)習(xí)一門新的語(yǔ)言也一樣,有很多很多網(wǎng)上的教程,非常的大而全,一般得系統(tǒng)的學(xué)習(xí)30~60小時(shí)之后才能正式的接觸項(xiàng)目開發(fā)?;A(chǔ)很重要,但是學(xué)習(xí)了太多的基礎(chǔ)會(huì)讓大家失去學(xué)習(xí)的樂趣和自信心。很多知識(shí)點(diǎn)其實(shí)可以項(xiàng)目之后再補(bǔ)。按需去學(xué),反而是自我驅(qū)動(dòng)著去學(xué)習(xí)的最佳方式。

PHP 程序員如何快速進(jìn)行 Java 開發(fā)

比如 hashmap 的哈希分布、哈希碰撞、動(dòng)態(tài)擴(kuò)容,這些都是我們后期深入提高需要理解的內(nèi)容,初期,我們只需要知道能拿 hashmap 做什么就行。

以實(shí)現(xiàn)自己熟悉的東西為導(dǎo)向

比如我們做 Web 后端 api 開發(fā),首先是常用的循環(huán)/迭代、條件判斷、增刪改成。那么能不能快速用 java 實(shí)現(xiàn)一遍這些我們用 php 做起來非常順手的事呢?

這樣有助于我們快速提升自信心。

使用類比的學(xué)習(xí)方法

PHP 里如何實(shí)現(xiàn),重新用 java 實(shí)現(xiàn)一遍就行了。

最后深入系統(tǒng)的學(xué)習(xí)

當(dāng)自己實(shí)現(xiàn)了一些小 demo 再去參考別人的項(xiàng)目。如果一開始就直接看別人的項(xiàng)目,可能完全不知道別人在干嘛。比如別人用了 ConcurrentHashMap ,就再去思考為什么我用 HashMap 他卻用 ConcurrentHashMap ,帶著問題,帶著思考去看開源代碼。

完成了一些簡(jiǎn)單的項(xiàng)目了之后就可以再回過頭來系統(tǒng)的學(xué)習(xí)了。這時(shí)候就會(huì)有不一樣的收獲。

最后就是當(dāng)項(xiàng)目需要調(diào)優(yōu),性能提升的時(shí)候,再各個(gè)擊破,深入學(xué)習(xí),更有針對(duì)性,更有目標(biāo)性。

實(shí)戰(zhàn)開始

我們用 netty 來提供高性能的 web 服務(wù)服務(wù)。使用簡(jiǎn)單方便(netty 并不簡(jiǎn)單),不依賴其他軟件。然后思考完成一個(gè)簡(jiǎn)單的 web api 服務(wù)器需要哪些必不可少的組成部分。(其實(shí)在思考這的時(shí)候,你必須要要對(duì)做簡(jiǎn)單的架構(gòu)必須熟記于心)。

我簡(jiǎn)單概括了下:

java 基礎(chǔ)數(shù)據(jù)類型(php 也有,不怕)

java 集合框架(php 有數(shù)組,很強(qiáng)大)

初識(shí) maven(php 有 composer)

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

序列化(數(shù)據(jù)傳輸要用到,php 沒有復(fù)雜的數(shù)據(jù)結(jié)構(gòu)要簡(jiǎn)單 N 倍)

jdbc (數(shù)據(jù)庫(kù)操作要用到,php 有 pdo)

大概認(rèn)識(shí)泛型、注解等語(yǔ)法 (可選)

使用 netty 實(shí)戰(zhàn)開發(fā)一個(gè) web api 服務(wù)(php 有 swoole)

Java 基本的數(shù)據(jù)結(jié)構(gòu)、各種基本數(shù)據(jù)類型包裝類

PHP 程序員如何快速進(jìn)行 Java 開發(fā)

Java - Collections Framework 高頻類舉例

PHP 程序員如何快速進(jìn)行 Java 開發(fā)

HashSet 是一個(gè)沒有重復(fù)元素的集合。它是由HashMap實(shí)現(xiàn)的,不保證元素的順序,也就是說所說元素插入的順序與輸出的順序不一致。

這其實(shí)是我的老朋友了,redis 里經(jīng)常用,比如咱們可以它來實(shí)現(xiàn)一個(gè)黑名單,這樣查找的速度就非常快,也不用去遠(yuǎn)程查詢 redis 了,直接在當(dāng)前內(nèi)存中查詢。

ArrayList 基于數(shù)組來實(shí)現(xiàn)集合的功能,其內(nèi)部維護(hù)了一個(gè)可變長(zhǎng)的對(duì)象數(shù)組,集合內(nèi)所有對(duì)象存儲(chǔ)于這個(gè)數(shù)組中,并實(shí)現(xiàn)該數(shù)組長(zhǎng)度的動(dòng)態(tài)伸縮。

這不就是我們的 PHP 里面常用的索引數(shù)組么?

HashMap 以哈希表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),查找對(duì)象時(shí)通過哈希函數(shù)計(jì)算其位置,它是為快速查詢而設(shè)計(jì)的。特點(diǎn)就是快,非線程安全。

這不就是我們的 PHP 里面常用的關(guān)聯(lián)數(shù)組么?

http://www.cnblogs.com/ITtang...

http://www.jianshu.com/p/b54f...

http://www.cnblogs.com/xiaoxi...

初識(shí) maven

Maven的基本原理很簡(jiǎn)單,采用遠(yuǎn)程倉(cāng)庫(kù)和本地倉(cāng)庫(kù)以及一個(gè)核心的配置文件pom.xml,pom.xml中定義的jar文件從遠(yuǎn)程倉(cāng)庫(kù)下載到本地倉(cāng)庫(kù),各個(gè)項(xiàng)目使用同一個(gè)本地倉(cāng)庫(kù)的jar,同一個(gè)版本的jar只需下載一次,而且避免每個(gè)應(yīng)用都去拷貝jar。

這和 php 的包管理工具 composer 很像,或者是 composer 是參考著 maven 而設(shè)計(jì)的。maven 的功能更強(qiáng)大,composer 需要每個(gè)項(xiàng)目都要導(dǎo)入一遍,maven 卻像 git 一樣,有一個(gè)本地倉(cāng)庫(kù),第三方包也不會(huì)直接引用到項(xiàng)目中,而是在編譯的時(shí)候才會(huì)引入(是不是很方便)。另一方面,maven 不僅僅是包管理工具,而且是一個(gè)項(xiàng)目管理工具,集成了編譯、打包、單元測(cè)試等功能。

實(shí)現(xiàn)控制器的訪問

具體需求:提供一個(gè) api 可以用戶指定用戶的信息

定義接口:

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

可能現(xiàn)在大家早已習(xí)慣了前者 restful 的 api 接口。

因?yàn)檫@里需要一次路由的映射和 http method 的匹配,考慮到學(xué)習(xí)的成本呢,我沒有選擇這種方式。

我們今天的目標(biāo)是以最簡(jiǎn)單有效的方式實(shí)現(xiàn)我們的功能。

我們首先從最簡(jiǎn)單的方式來實(shí)現(xiàn)(其實(shí)沒有路由的 api 反而是最快的,畢竟需要做的判斷少嘛)。

后面大家有興趣可以參考我寫的一個(gè) restful api 的 demo https://github.com/zhoumengka...

來自:https://segmentfault.com/a/1190000010333464

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 香港| 廊坊市| 奉节县| 神木县| 巩义市| 天等县| 织金县| 温泉县| 泸定县| 临洮县| 喀喇| 阳曲县| 武穴市| 朝阳县| 南投市| 桓台县| 安平县| 遂川县| 三台县| 武强县| 万年县| 都兰县| 巴彦淖尔市| 丰顺县| 沙田区| 宣威市| 南川市| 珠海市| 夏邑县| 营口市| 绥阳县| 密云县| 仲巴县| 泰宁县| 屏东市| 宁河县| 蚌埠市| 嘉祥县| 曲靖市| 潞西市| 门源|