為了賬號安全,請及時綁定郵箱和手機立即綁定

Noseparte說:要想Java玩得好,HashMap怎能少 首發

簡言 作為Java程序員, HashMap是一個必知必會的數據類型。 無論是從開發中的使用頻率還是在面試中考察的頻率都足以證明這一點。 HashMap的前世今生 HashMap誕生于JDK1.2, 隨著JDK版本的更新以及為了解決JDK1.7中HashMap中hash碰撞問題, Oracle團隊于JEP 180:使用平衡樹(Balanced Trees, 即我們所知的紅黑樹)處理頻繁的HashMap沖突。官方文檔如下: JEP 180: Handle Frequent HashMap Collisions with Balanced Trees JDK-8023463 : Improvements to...

1015瀏覽
1推薦
0評論

Noseparte說:網絡游戲中的網關線程池是如何創建的 首發

Java 線程池的正確使用姿勢 ThreadPool 線程池的定義? 如何創建? 配置 ThreadPoolExecutor 管理任務隊列 BlockingQueue 飽和策略 RejectedExecutionHandler [不推薦] 使用Executors工廠模式創建線程池 ExecutorService的生命周期 線程工廠 ThreadFactory DefaultThreadFactory PrivilegedThreadFactory [推薦] 使用guava的 ThreadFactoryBuilder 創建線程池的正確姿勢 線程池 ThreadPool 1. 線程池的定義:...

673瀏覽
0推薦
0評論

Noseparte說: Spring Aop中的動態代理 首發

Spring Aop中的動態代理 spring AOP的底層實現由倆種方式: 一種是JDK動態代理,另一種是CGLib動態代理。 區別主要是jdk是代理接口,而cglib是代理類。 動態代理的前世今生 自Java 1.3以后,Java提供了動態代理技術,允許開發者在運行期創建接口的代理實例,后來這項技術被用到了Spring的很多地方。 JDK動態代理主要涉及java.lang.reflect包下邊的兩個類:Proxy和InvocationHandler。其中,InvocationHandler是一個接口,可以通過實現該接口定義橫切邏輯,并通過反射機制調用目標類的代

676瀏覽
0推薦
0評論

Noseparte說: 網絡游戲中的幀同步與狀態同步 首發

幀同步的基礎概念 相同的輸入 + 相同的時機 = 相同的輸出。 客戶端發送操作信息到服務器,服務器收到后轉播給所有的客戶端,客戶端接收服務器的操作信息后計算游戲行為的結果, 然后通過廣播下發游戲中各種狀態,客戶端收到狀態后顯示內容。 幀同步和狀態同步的對比 (狀態同步的概念: 客戶端發送操作信息到服務器,服務器收到后,計算游戲行為的結果,然后通過廣播下發游戲中各種狀態,客戶端收到狀態后顯示內容。) 幀同步 狀態同步 安全性 低 高 開發效率 高 低 網速要求

2160瀏覽
1推薦
0評論

Almost-Famous

《成名之路》(Almost-Famous) _ _ _ _____ / \ | |_ __ ___ ___ ___| |_ | ___|_ _ _ __ ___ ___ _ _ ___ / _ \ | | '_ ` _ \ / _ \/ __| __|____| |_ / _` | '_ ` _ \ / _ \| | | / __| / ___ \| | | | | | | (_) \__ \ ||_____| _| (_| | | | | | | (_) | |_| \__ \ /_/ \_\_|_| |_| |_|\___/|___/\__| |_| \__,_|_| |_| |_|\___/...

628瀏覽
0推薦
0評論

Noseparte說: 開源項目HMStrange貢獻記 首發

Noseparte說: 開源項目HMStrange貢獻記簡介An e-commerce back-end framework that supports diversified configurations一個支持多元化配置的電商后端框架歡迎參與QQ群交流與提供建議、業務場景、需求功能等Github官方地址:https://github.com/UncleCatMySelf/HMStrange關于貢獻1.在GitHub上Fork源碼2.Fork后的項目源碼使用IntellIJ IDEA將項目 Git clone到本地3.git到本地的項目進行貢獻并提交到github  ...

1063瀏覽
0推薦
0評論

Noseparte說: 開源項目InChat貢獻記 首發

開源項目InChat貢獻記 簡介 (InChat)Iot Netty Chat 一個輕量級、高效、分布式的異步通信框架, 支持聊天和物聯網, 您可以使用它來快速構建具有后臺的聊天服務器, 并快速自定義自己的通信 api, 包括具有不同的通訊可以支持的協議。 歡迎參與QQ群交流與提供建議、業務場景、需求功能等 Github官方地址: https://github.com/UncleCatMySelf/InChat Maven版本 功能列表: 用戶token登錄校驗 自我聊天 點對點聊天 群聊 獲取在線用戶數與用戶標簽列表 發送系統通知 V1.1.2版本

1828瀏覽
3推薦
1評論

Lucene 高級搜索引擎工廠(二)

Lucene 高級搜索引擎工廠(二) 前情回顧: 上篇文章介紹了,mongodb driver的使用方法。本文詳細的介紹Lucene的全文檢索功能。 1.定時任務 更新索引庫 package com.noseparte.lucene; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.noseparte.mongo.MongoDBConfig; import lombok.extern.slf4j.Slf4j;...

950瀏覽
0推薦
0評論

Lucene 高級搜索引擎工廠(一) 首發

Lucene 高級搜索引擎工廠(一) 一、Lucene環境搭建 <lucene.version>7.5.0</lucene.version> <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId>...

1272瀏覽
1推薦
0評論

UGC三消 一個H5布局的虎牙直播故事 首發

UGC三消 一個H5布局的虎牙直播故事 一、官網直播的頁面效果 二、虎牙的數據接口文檔API 三、后臺Controller提供主播及直播數據 package com.xmbl.ops.controller.huya; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin;...

1640瀏覽
0推薦
0評論

高可用消息隊列ActiveMQ在Springboot中的用武之地 原創

高可用消息隊列ActiveMQ在Springboot中的用武之地 一、ActiveMQ簡介 消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題。實現高性能,高可用,可伸縮和最終一致性架構。是大型分布式系統不可缺少的中間件。 ActiveMQ 中間件用Java語言編寫,因此在集成不同平臺不同語言編寫應用的時候,ActiveMQ擁有巨大優勢。還可作為RPC的替代,由于無需等待被調用者返回信息,故而在耦合上會大大提升系統的性能。 二、ActiveMQ環境配置 <!-- Spring Boot 啟動父依

1773瀏覽
0推薦
0評論

SpringBoot 整合MongoDB多數據源 原創

SpringBoot 整合MongoDB多數據源 一、前情提要 1.環境:SpringBoot+Dubbo+Zookeeper+MongoDB <!-- Spring Boot 啟動父依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent>...

5614瀏覽
6推薦
0評論

微信支付body亂碼問題 --排坑日記(1) 原創

涉及到的工具類: 1. 微信開發文檔: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 2. HttpUtil : 微信H5w網頁支付http請求工具類 3. WxPayConfig : 微信支付商戶配置類 4. MaryunHttpUtils : 微信APP支付http請求工具類 5. OrderGeneratedUtils : 微信訂單生成工具類。 6. WxPayUtils : 微信自帶的工具類(包括 隨機字符串、xml與map數據轉換、MD5加密、獲取時間戳(秒、毫秒)) 7. WxRamdomNumberUtils :...

3457瀏覽
3推薦
0評論

Java APP移動端郵箱認證

Java APP移動端郵箱認證 前言: 要實現郵箱認證服務,大致分為以下四個步驟:搭建郵箱服務、制作一個發送郵件的工具類、后臺實現一個供APP調用的接口API、郵箱認證的通知回調,當然這其中還涉及到郵件內容的設計和一個HTML/jsp頁面,用來向用戶顯示認證結果。 一、郵箱服務的搭建。 在這里不展示SMTP郵箱服務的搭建,只介紹后臺如何使用搭建。 1.如果項目是maven工程,在pom.xml文件中添加如下依賴。 <!-- 郵箱服務依賴包 --> <dependency> <groupId>javax.mail</groupId> <artifactI

3352瀏覽
4推薦
0評論

Java 反射機制的應用實例 原創

Java 反射機制的應用實例 前言: 反射是java中一種強大的工具,能夠使我們很方便的創建靈活的代碼,這些代碼可以再運行時裝配,無需在組件之間進行源代碼鏈接。主要是指程序可以訪問,檢測和修改它本身狀態或行為的一種能力,并能根據自身行為的狀態和結果,調整或修改應用所描述行為的狀態和相關的語義。 下面介紹倆個在實際運用中反射的應用: 場景一:DTO的數據封裝 在大多數軟件架構中有一層DTO層,用于提供于與前端的數據交互。示意如下圖: 數據傳輸對象(DTO)(Data Transfer Obj

8510瀏覽
9推薦
1評論

Tomcat 架構分析(四) Servlet和Jsp模塊 原創

Tomcat 架構分析(四) Servlet和Jsp模塊 前言: Servlet的框架是由兩個Java包組成:javax.servlet和javax.servlet.http. 在javax.servlet包中定義了所有的Servlet類都必須實現或擴展的的通用接口和類.在javax.servlet.http包中定義了采用HTTP通信協議的HttpServlet類. Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必須實現這一接口.在Servlet接口中定義了5個方法,其中有3個方法代表了Servlet的聲明周期: - init方法,負責初始化Servlet對象 -...

2168瀏覽
3推薦
0評論

Tomcat 架構分析(三) Jasper模塊 原創

Tomcat 架構分析(三) Jsper模塊 前言:Jsper模塊: 負責jsp頁面的解析、jsp屬性的驗證,同時也負責將jsp頁面動態轉換為java代碼并編譯成class文件。 1.簡介 Tomcat 8.5使用Jasper 2 JSP引擎來實現JavaServer Pages 2.3規范。 Jasper 2被重新設計,顯著改善了Jasper的表現。除了一般的代碼改進之外,以下的更改還包括: JSP Custom Tag Pooling - 為JSP自定義標記實例化的java對象現在可以被池化和重用。這極大地提高了使用自定義標記的JSP頁面的性能。 Background JSP compi

2645瀏覽
1推薦
0評論

Tomcat 架構分析(二) ClassLoader詳解 原創

Tomcat 架構分析(二) ClassLoader詳解 前言: 上一節提到,Tomcat的五個子模塊:Jsper模塊、Servlet和Jsp模塊、Catalina模塊、Connector模塊、Resource模塊,本節是對lib包下的詳細講解,以及Tomcat是如何加載類(ClassLoader) 1.簡介 與許多服務器應用程序一樣,Tomcat安裝了各種類裝入器(也就是實現java.lang.classloader的類),以允許容器的不同部分和在容器上運行的web應用程序訪問不同的可用類和資源的存儲庫。該機制用于提供Servlet規范中定義的功能。 在Java環境中,類裝入器被安

3791瀏覽
8推薦
2評論

Tomcat 架構分析(一) 體系結構 原創

前言: 1.作為Java開發人員,大多都對Tomcat不陌生,由Apache基金會提供技術支持與維護,因為其免費開源且易用,作為Web服務器深受市場歡迎,所以有必要對其進行深入的研究,本系列皆以Tomcat 8.5為研究課題,下載地址:https://tomcat.apache.org/download-80.cgi 如下圖,為Apache Tomcat 8.5.24的二進制文件分布情況: 這其中包括的各個系列做下簡要說明: * Core: 核心部分,包括(Linux/Unix,Windows 32/64位的壓縮包和安裝程序) * Full documentation: 完整版 * Deployer:

7869瀏覽
11推薦
0評論

Java Quartz定時任務的實現

Java Quartz定時任務的實現 首先,實現quartz定時任務只需要倆個條件: 一、在web項目中新建一個quartz.xml文件,下面是XML文件的示例代碼。 二、根據quartz.xml文件中的任務寫對應的service任務實現類 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans";...

5183瀏覽
1推薦
1評論
首頁上一頁12下一頁尾頁
意見反饋 幫助中心 APP下載
官方微信
lpl竞猜