原创 【注意點】netty-> 作用域 channel和context

這兩個擁有很多同名方法,主要差異如下 channel的操作會經過左右的hanndle,context只是從自己這個handle往後操作   context的事件流更短,所以context的性能會更好一些    

原创 netty->[組件] ChannelPipeline的addLast方法解析

隨處可見的addLast方法,分兩種情況。channel未註冊和channel已註冊 public final ChannelPipeline addLast(EventExecutorGroup group, String na

原创 netty->[組件] channelHandlerContext.attr和channel.attr對比

這兩個都是attributeMap的實現 4.1開始作用域相同,不存在每個handle中存在一個map channel中也存在一個單獨的map 具體的實現就是context其實是調用對應的channel的attr方法 666  

原创 【入門】NIO標準範式

server package com.deppyu.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerS

原创 【入門】netty範式-client&server

server package com.deppyu.netty.demo.server; import com.deppyu.netty.demo.server.websocket.WebSocketInitializer; impo

原创 netty-> 常用編解碼處理器

簡述 分類入棧處理器(channelInboundHandler)&出棧處理器(channelOutboundHandler) 裏面全都是回調方法,方法被觸發的時候,會調用對應的實現。常見的編解碼器有encode&decode   net

原创 【入門】netty->byteBuf「非池化堆內內存」

結構圖和nio有差異 同時有讀寫指針,寫讀不用噁心的切換了。 唯一注意的就是讀的時候有相對方法(readBytes)和絕對方法(getBytes),相對方法會改變讀遊標,絕對方法則不會   創建byteBuf實例 ByteBuf bu

原创 netty-> [組件] future promise簡述

1.netty自己也定義了future 繼承自jdk的future,更加實用點吧(主要是在完成的時候 可以添加listener<觀察者模式>) jdk的只能主動的調用對應的方法去判斷是否執行完畢   2.promise是future的變種

原创 【入門】nio->byteBuffer「堆內內存爲例」

初始化實例 //單位大小是byte ByteBuffer buffer = ByteBuffer.allocate(10240); System.out.println("buffer = " + buffer);   reset方法演

原创 redis基於隊列實現的流控模型

前言 本文實現中使用的evalsha執行的lua,所以先描述下redis中eval和evalsha使用區別 eval 基本語法如下: redis 127.0.0.1:6379> EVAL script numkeys key [

原创 interrupt的三個方法區分

thread的三個interrupt方法名比較類似,業務代碼中寫的不多,經常會忘記 三個的差異。看源碼的時候 就會錯亂。   interrupt簡述     interrupt()方法只是改變中斷狀態,不會中斷一個正在運行的線程。需要用戶

原创 幾個不錯的面試題

1.java的一些類爲什麼要實現序列化 2.abstract class和interface的區別  (is-a   like-a 具體說明下) 3.談談java的放射機制 4.請說一下java中爲什麼要引入內部類?還有匿名內部類? 5.

原创 redhat忘記root密碼

自己VM虛擬機裏安裝redhat linux root密碼忘了,剛開始想重新安裝,但是後來想到還有linux有一個single模式,使用single可以直接進入字符界面,然後修改; 啓動vm虛擬機,啓動linux系統; 進

原创 斐波那契(面向對象方法實現和規律實現兩種方法)

準備年後跳槽 找了些簡單的面試題 練練手 import java.util.ArrayList;import java.util.List;public class 斐波拉契 {public static void main(Stri

原创 寫個鏈表玩玩

public class 約瑟夫 {    public static void main(String[] args) {         NodeLink nl = new NodeLink(10);         Node n