原创 第1條:考慮用靜態工廠方法代替構造器

通常我們創建對象的方法有兩種: 使用類公有的構造器 使用類的靜態方法返回一個實例對象 靜態方法的優點: 1.靜態工廠方法與構造器不同的第一大優勢在於,它們有名稱 靜態工廠方法的名字由自己命名,而構造方法必須與類名相同。 //使用構造器

原创 C++ String 類的簡單實現

String類裏面主要包含構造,拷貝構造,析構,賦值,比較,字符串相加,獲取長度及子串等方法。 #include <iostream> #include <cstring> using namespace std; class Stri

原创 第5條:避免創建不必要的對象

最好能重用對象而不是在每次需要的時候就創建一個相同功能的新對象。 如果對象是不可變(immutable),它就始終可以被重用 String s = new String("stringette"); 每次執行上面的語句都會創建一個新的St

原创 STL中vector,Map,Set的實現原理

vector vector的數據安排以及操作方式,與array非常類似,兩者唯一的區別是空間運用的靈活性,array是靜態空間,一旦配置了就不能改變,如果你想要大一點的空間,就必須首先配置一塊新空間,然後將原來的元素一一複製進來,再把原來

原创 IntelliJ IDEA 使用 TOMCAT 中文亂碼的各種問題

工程亂碼 打開File-Setting, 找到File Encodings這個選項,把encoding設置成你工程的編碼即可,一般是UTF-8,如下圖(紅框的地方),然後重新rebuild一下,基本就行了 執行main函數時,控制檯亂碼

原创 谷歌瀏覽器插件surfingkeys快捷鍵記錄

輸入 gi——跳到第一個輸入框 i——選擇輸入框 打開鏈接 f——在當前頁面打開某個鏈接 af——在新標籤頁打開某個鏈接 C——在新標籤頁後臺打開某個鏈接,此時頁面仍處於之前的連接上 滾動 gg——滾動到頂部 G——滾動至底部 e——向上

原创 MySQL 8.0報錯:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded

報錯信息: error 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_

原创 常用函數strcpy strcat strcmp strlen memcpy memset

strcpy strcpy是拷貝字符串,以’\0’爲標誌結束 strcpy的原型爲 //這裏不考慮源字符串長度比目標字符串長度長的情況 char* strcpy(char * dst, const char * src) { a

原创 必須使用【初始化列表】初始化數據成員的情況

類對象的構造順序是這樣的: 1.分配內存,調用構造函數時,隱式/顯示的初始化各數據成員; 2.進入構造函數後在構造函數中執行一般賦值與計算。 使用初始化列表有兩個原因: 原因1.必須這樣做: 《C++ Primer》中提到在以下三種