原创 Java I/O

emmmm,這篇文章的題目可能有點大了,以後會不斷完善更新。 基礎I/O Java中和I/O相關的類都在java.io包裏面(當然,還有java.nio),I/O的形式都是以流的形式進行的,大致的方法是讀和寫,對應的類(也是方向)是入

原创 TCP的建立連接,包重傳,關閉連接

佛家喜歡講緣起,確實很多事情都不是無緣無故發生,這篇文章就是今天早上跟朋友聊天時提到谷歌的BBR,然後我意識到自己網絡方面的知識很匱乏,帶着疑問去搜索答案,在搜索的過程中產生新的疑問,然後再尋找答案。最後就有了這篇文章。 傳輸層主要有

原创 java.io包和java.nio包

Java中I/O相關的兩個包是java.io和java.nio,它們的最重要的區別就是java.io裏面的類是面向流的(stream oriented),java.nio裏面的類是面向緩存的(buffer oriented)。 面向流

原创 在JavaScript中獲取主機IP

寫了個網頁小遊戲,在自己電腦上測試沒問題之後部署到了服務器上面,結果發現不行,原來是因爲前端網頁的js代碼裏面把websocket的ip硬編碼成了localhost,也可以直接在服務器上面把websocket的IP寫成服務器IP,但是

原创 用JavaScript接收並顯示字節流中的圖片

寫了個網頁版貪吃蛇,需要在前端接受後端傳過來的字節流然後顯示,谷歌上搜了一下,最後的代碼如下,並且簡單做下講解。 socket.onmessage = function(msg) { var bytes

原创 dig命令

剛剛想起來之前用到了一個新的命令,dig,但是沒有及時記錄下來,想補上一篇博文。發現網上已經有一篇很不錯的文章了,直接轉載了。原文鏈接

原创 alternatives

這是文檔 在我的阿里雲服務器上配置Tomcat時,查看Java的安裝路徑,結果發現了新東西。 [root@izbp19l5uj7pk9xo2t37dgz ~]# which java /usr/bin/java [root@izbp1

原创 SQL語句中的執行順序

這也是一篇不完全的翻譯,有興趣的讀者可以查看原文。 下面的SQL語句的執行順序只是邏輯上的順序,在實際中優化器會選擇最省時省力的順序: FROM:這個只需要說一點的是JOIN這一步包含在FROM裏面,總之就是先確定表,加載所有表的所

原创 SQL中的幾種JOIN

洋洋灑灑寫幾百個字,不如上傳一張示意圖。現在都講可視化嘛,圖片最直觀了。

原创 MySQL中的JOIN

MySQL的官方文檔上面是這麼寫的“MySQL executes joins between tables using a nested-loop algorithm or variations on it.”但是似乎又有其他算法,這

原创 MySQL中的窗口函數

從version 8.0開始,MySQL支持在查詢中使用窗口函數。這篇文章是對一篇英文資料的不完全翻譯,加上自己的一些理解。如果有興趣可以去看看原文章。文中的示例用到的建表語句和插值語句如下: CREATE TABLE sales(

原创 Java中的final關鍵字

Java中的final關鍵字修飾的項不可更改。具體來說就是 final class不能被繼承 final 變量的值不能更改 final方法不能被覆寫。 final修飾的變量值得多說兩句,對於引用類型的變量,final的意思是聲明變

原创 Java中的訪問控制修飾符

在Java中,訪問控制修飾符決定了一個類是否可以使用其它類中的某個域或者調用其它類中的某個方法,訪問控制修飾符有兩種層級: top level,修飾類,有public和package-private(也就是沒顯式指定修飾符時的類型)

原创 Linux啓動程序systemd和環境變量

昨天看到一篇文章,講的是Linux的開機啓動,個人感覺寫得非常好。我是在學習環境變量時看到的,所以只翻譯其中的一小部分,再結合環境變量講一講。建議大家好好讀一下原文。 systemd Linux系統的開機流程(boot process

原创 .bash_profile和.bashrc

我們在CentOS上面配置程序時,看到有些地方寫着在.bash_profile中寫入xxx,有些地方寫着在.bashrc中寫入xxx。到底這兩個文件有什麼區別呢? 根據bash man page,.bash_profile會在登錄sh