原创 Java虛擬機基本原理(二):Java的基本類型

1、Java引進八個基本類型(byte、short、int、long、float、double、boolean、char)來支持數值計算,主要原因是工程上的考慮,使用基本類型能夠在執行效率以及內存使用兩方面提升軟件性能。   Java 的

原创 Java虛擬機基本原理(三):Java虛擬機是如何加載Java類的

1、 從 class 文件到內存中的類,按先後順序需要經過加載、鏈接以及初始化三大步驟。其中,鏈接過程中同樣需要驗證;而內存中的類沒有經過初始化,同樣不能使用。   2、 Java 語言的類型可以分爲兩大類:基本類型和引用類型。其中,引用

原创 Java虛擬機基本原理(一):Java代碼是怎麼運行的

1、運行方式 Java 代碼有很多種不同的運行方式。比如說可以在開發工具中運行,可以雙擊執行 jar 文件運行,也可以在命令行中運行,甚至可以在網頁中運行。當然,這些執行方式都離不開 JRE,也就是 Java 運行時環境。 2、JDK、J

原创 win10部分軟件中文顯示爲“口口口”

起因: 總有 不少系統自帶的快捷鍵,比如切換中文簡體/繁體(具體是什麼也懶得查)。然後我就想改回去,不知道爲什麼沒在“區域和語言”中找到切換按鈕,於是卸載了微軟鍵盤,裝了搜狗輸入法(系統自帶的好像,我沒下載)。第二天發現eclipse的一

原创 使用最新版MySQL的jdbc驅動關於時區的異常

一、異常 com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���׼ʱ��' is unrecognize

原创 Netty入門與實戰——拆包粘包理論與解決方案

*拆包粘包例子 客戶端 FirstClientHandler public class FirstClientHandler extends ChannelInboundHandlerAdapter { @Override

原创 Netty入門與實戰——使用 channelHandler 的熱插拔實現客戶端身份校驗

1. 身份檢驗 首先,我們在客戶端登錄成功之後,標記當前的 channel 的狀態爲已登錄: LoginRequestHandler.java protected void channelRead0(ChannelHandlerCo

原创 Netty入門與實戰——構建客戶端與服務端 pipeline

*ChannelInboundHandlerAdapter 與 ChannelOutboundHandlerAdapter ChannelInboundHandlerAdapter ,這個適配器主要用於實現其接口 ChannelInbou

原创 Springboot學習筆記——熱部署及不生效的解決辦法

一、背景 目前的Springboot,當發生了任何修改之後,必須關閉後再啓動Application類才能夠生效,顯得略微麻煩。 Springboot提供了熱部署的方式,當發現任何類發生了改變,馬上通過JVM類加載的方式,加載最新的類到虛擬

原创 Netty入門與實戰——客戶端與服務端雙向通信

*客戶端 在之前的文章中,客戶端相關的數據讀寫邏輯是通過 Bootstrap 的 handler() 方法指定 .handler(new ChannelInitializer<SocketChannel>() { @Overri

原创 Netty入門與實戰——pipeline 與 channelHandler

Ps:此係列文章來源於Netty 入門與實戰:仿寫微信 IM 即時通訊系統,有能力的還請支持正版,一頓飯錢,絕對物有所值 *如何避免 else 氾濫 不管是服務端還是客戶端,處理流程大致分爲以下幾個步驟 把這三類邏輯都寫在一個類裏面,客

原创 Netty入門與實戰——服務端源碼及啓動流程

此係列文章來源於總結歸納Netty 入門與實戰:仿寫微信 IM 即時通訊系統 代碼: import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelI

原创 Springboot學習筆記——處理url中的參數註解

@PathVariable package com.test.demo; import org.springframework.web.bind.annotation.PathVariable; import org.springfr

原创 Netty入門與實戰——Netty實現客戶端登陸

Ps:此係列文章來源於Netty 入門與實戰:仿寫微信 IM 即時通訊系統,知識付費的時代,有能力請支持正版,一頓飯錢而已~ *登陸流程 客戶端連接上服務端之後 客戶端會構建一個登錄請求對象,然後通過編碼把請求對象編碼爲 ByteBuf

原创 Netty入門與實戰——客戶端與服務端通信協議編解碼

*什麼是服務端與客戶端的通信協議 無論是使用 Netty 還是原始的 Socket 編程,基於 TCP 通信的數據包格式均爲二進制,協議指的就是客戶端與服務端事先商量好的,每一個二進制數據包中每一段字節分別代表什麼含義的規則。如下圖的一個