單例實現
阿新 • • 發佈:2018-11-25
public class WSServer { private static class SingletionWSServer { /* static修飾的變數是類變數,物件例項化之前就存在的變數, 不管例項化多少個物件,始終就只有這一個類變數。 而沒有用static修飾的變數是物件的變數, 每例項化一個物件時就產生一個VALUE_1這個變數。 雖然感覺上他們的值是一樣的,但是在記憶體中的儲存是不一樣的, 通常final 物件都加static修飾符,以節省記憶體。 */ static final WSServer instance = new WSServer(); } public static WSServer getInstance() { return SingletionWSServer.instance; } private EventLoopGroup mainGroup; private EventLoopGroup subGroup; private ServerBootstrap server; private ChannelFuture future; public WSServer() { mainGroup = new NioEventLoopGroup(); subGroup = new NioEventLoopGroup(); server = new ServerBootstrap(); server.group(mainGroup, subGroup) .channel(NioServerSocketChannel.class) .childHandler(new WSServerInitialzer()); } public void start() { this.future = server.bind(8088); // err顯示一個紅色的字 System.err.println("netty websocket server 啟動完畢..."); } }
物件引用就好比大轉盤的指標,指向的物件,就好比指標指向的格子。被final定義的物件引用,就好比只能轉一次的指標,它永遠指向這一個格子