朝花夕拾

迭代器刪除 容器相關 源碼

while(true) 死循環裏面捕捉異常,而後break;

前端

elementUI

表單回車提交。vue中是@keyup.enter監聽回車事件 可是elementUI封裝了input標籤 須要用@keyup.enter.native前端

數據庫相關

MySQL

  • 建表的時候默認值不能用函數,好比default uuid()它不認識
  • char是固定長度的,varchar會根據具體的長度來適用存儲空間,所以它須要額外的1-2個字節來存儲字符串的長度,長度小於255用一個字節,大於255用2個字節。
  • varchar存非Unicode,nvarchar存Unicode
  • nvarchar適用於存中文
  • 設置主鍵自增的話類型應該是int

算法

二進制

這些坑踩一遍之後就這一遍了。vue

  • 人爲何用十進制,不知道,可能跟手指頭有關
  • 10進制和2進製表數的共通點 基數 (radix)基數排序?
  • 8進制一般前面有個0 047 16進制開頭有個0x
  • 十進制轉二進制看圖
  • 210=1024全記住!
  • 通常寫8位 就是一個字節

原碼反碼補碼

  • 十進制直接轉換成的二進制 就是原碼
  • 反碼是原碼1變成0 0變成1
  • 補碼是反碼+1
  • 二進制負數是正數的補碼
  • 二進制負數轉十進制符號位不變其他位取反+1
  • 8位數第一位是表明正負java中
  • 8位數因爲有符號位 那麼表示範圍就是-27~27 這就是爲何java裏 int表明的是-128~127
  • 爲何計算機負數用補碼錶示
  • 0的表述實現統一。
  • 可以把減法當成加法來運算 例如5+(-3)。CPU裏沒有減法器這個概念

二進制的邏輯運算重災區

  • 與& 遇0則0
  • 或| 遇1則1
  • 反~ 1-0 0-1
  • 異或^ 相同爲1 不相同爲0(不進位加法)
  • >>右移位 (補符號位)
  • <<左移位 (補0)
  • >>>無符號右移 (補0)
  • 怎麼算23 2<<2效率最高
  • 互換兩個正整數的值 a = 3 b = 4
int a = a ^ b
int b = a ^ b
int a = a ^ b
複製代碼

長整數和短整數轉換

  • 這裏短整數有8位 長整數有16位
// 短整數變長整數是不會發生變化的
0000 0101 -> 0000 0000 0000 0101 補0
1000 0101 -> 1111 1111 1000 0101 補1
複製代碼
  • 長整數->短整數 直接砍位數 會發生精度的丟失

bit Byte

計算機中最小存一個東西 都按字節 byte來 不足一個字節 補0 補成一個字節java

16進制其實是2進制短的表示方式 一個數表示4位2進制

要事爲先,二進制小數就先不思考了

VMware裝Linux 虛擬環境

虛擬環境說白了就是假的,不是真實存在的,經過一系列技術手段模擬出來的。redis

  • what 什麼是虛擬環境
  • why 爲何要裝虛擬環境 由於學習大數據要弄多個節點,因此整。主要仍是爲了學習用
  • how
    • 整一個虛擬機出來 -> 攢了一臺機器
      • 不要選典型,不少配置會走默認。
      • 稍後安裝操做系統
      • 選擇centos
      • 網絡使用NAT 網絡這挺重要的
      • 虛擬機的內存若是設置小於768MB那麼安裝過程沒有圖形界面。我也沒有試過。
      • sda是一塊磁盤,/dev/sda。用不一樣的字母來區分磁盤。被孫玄問過
      • 分三個區 第一個boot開機引導系統用的,第二個swap內存不夠用的時候,緩存到這個區裏(通常是使用內存的兩倍)。第三個區用戶區所安裝的軟件都放裏面。

配置虛擬機的網絡 【重要】

  • 找到網卡/etc/sysconfig/network-scripts/ifcfg-eth0
  • if->interface cfg->config eth->Ethernet 頭一回知道是這麼回事
  • 用vi編輯 等號先後沒有空格

  • HDADDR把這個幹掉,網卡硬件的地址 uuid也幹掉。由於要克隆虛擬機
  • onboot=yes啓用網卡
  • 配置協議
  • 虛擬機的網關地址也能當作是dns地址?看下圖 是能夠的

快照

  • 打快照能回到過去
  • 克隆以後 因爲網卡地址是克隆來的 這裏留個坑 去百度一下。/etc/udev/rules.d/70-persistent-net.rules

windows命令的本質

命令都是可執行文件算法

D:\Program Files>where notepad C:\Windows\System32\notepad.exe C:\Windows\notepad.exe 複製代碼

cd是自帶的命令spring

D:\Program Files>where cd 信息: 用提供的模式沒法找到文件。 複製代碼
  • 找一個命令默認先從當前目錄裏找,沒有就去環境變量裏找。
  • echo %path%可以顯示環境變量,使用;隔開的

環境變量:用戶變量和系統變量

  • 系統環境變量是全部用戶都能用的

cmd不區分大小寫

使用序列化技術實現深拷貝

public static void main(String[] args) throws IOException, ClassNotFoundException {
        List<Map<String, String>> list1 = new ArrayList<>();
        List<Map<String, String>> list2 = new ArrayList<>();

        Map<String, String> map = new HashMap<>(16);
        map.put("k1", "v1");

        list1.add(map);

        // 將對象寫進輸出到流中
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
        objectOutputStream.writeObject(map);
        // 從流中拿出來
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
        ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
        map = (Map<String, String>) objectInputStream.readObject();
        list2.add(map);

// list2.add(list1.get(0));

        System.out.println(list1);
        System.out.println(list2);

        System.out.println("==============");
        list2.get(0).put("k2", "v2");
        System.out.println(list1);
        System.out.println(list2);
    }
複製代碼

兩個list中的map指向的市堆裏的同一個map對象,用流作深拷貝數據庫

springboot 配置文件問題

這裏扯到配置文件讀取的優先級問題,咱們在jar包同級目錄裏放了config/application.yml在crontab中執行任務 配置文件沒有讀到同級目錄中的config/application.yml,須要指定絕對路徑java -jar -Dspring.config.location=/path/to/application.yml myjar.jarwindows

Redis哨兵模式

  • 哨兵負責切換Redis的主從,springboot應用應該鏈接哨兵,不用鏈接具體是哪一個Redis,程序還有bug,須要抽空研究。
  • redis-cli經驗證能夠單獨放在其餘機器上執行,kafka的console-consumer有可能同理。
相關文章
相關標籤/搜索