工作總結(first month)

  1. 抓包時,可以用 fiddler 工具;或者網頁上選擇“開發者工具”來查看;

  2. @Autowired 、@Resource、@Reference
    @Autowired 、@Resource 用來自動注入 Spring容器裏的對象
    @Reference 是 Dubbo的註解,用來注入分佈式遠程服務對象

  3. assert 斷言

assert格式
(1)assert [boolean 表達式]
如果[boolean表達式]爲true,則程序繼續執行。
如果爲false,則程序拋出AssertionError,並終止執行。
(2)assert[boolean 表達式 : 錯誤表達式 (日誌)]
如果[boolean表達式]爲true,則程序繼續執行。
如果爲false,則程序拋出java.lang.AssertionError,輸出[錯誤信息]

        assert false;
        System.out.println("測試assert");

會報以下錯誤:
在這裏插入圖片描述
4. Gradle
查看gradle下載的本地jar包地址:

在這裏插入圖片描述
找到對應的目錄地址: E:\gradle_download\caches\modules-2\files-2.1

  1. 生成UML類圖
    在這裏插入圖片描述

  2. Chrome 瀏覽器 FeHelper 插件,可以查看json格式

  3. 防止網頁報錯後,跳轉到別的頁面(比如登錄失效後,跳轉到登錄頁面)
    在這裏插入圖片描述

  4. rdpclip 是讓rdp協議(遠程桌面協議)可以通過遠程複製文件的
    遠程不能複製時,把 rdbclip.exe 進程殺掉,然後在 啓動 rdbclip.exe
    在“搜索程序和文件”裏進行啓動

  5. 用 PL/SQL 工具寫增、刪、改語句後,在sql語句後添加 commit; 或者點“提交事務”

  6. jpa的使用
    @Modifying(clearAutomatically=true)
    @Transactional
    @Query(“update User set name=:name, age=:age where id=:id”)
    void updateUserInfo(@Param(“name”) String name, @Param(“age”) Integer age, @Param(“id”) Integer id);
    注意:在使用@Modifying註解時,如果忘了加 @Transactional註解可能會報錯。

  7. PL/SQL 查詢出數據後,可以直接修改:
    select * from t_d_share_data for update;

  8. docker logs 命令
    51ishare-platform_mall-biz_1 ===》對應文件名
    查詢實時日誌:
    docker logs -f 51ishare-platform_mall-biz_1
    查看最後500行日誌:
    docker logs --tail 500 51ishare-platform_mall-biz_1
    查看最新日誌而不讀取全部:
    docker logs --tail 0 -f 51ishare-platform_mall-biz_1
    查看指定時間log:
    docker logs --since=“2015-08-31” 51ishare-platform_mall-biz_1
    最後500行轉存到/data/logs07.log:
    docker logs --tail 500 51ishare-platform_mall-biz_1 > /data/logs07.log

  9. Map.computeIfAbsent

Map map = new HashMap();
// java8之前。從map中根據key獲取value操作可能會有下面的操作
Object key = map.get("key");
if (key == null) {
    key = new Object();
    map.put("key", key);
}
// java8之後。上面的操作可以簡化爲一行,若key對應的value爲空,會將第二個參數的返回值存入並返回
Object key2 = map.computeIfAbsent("key", k -> new Object());
  1. rm -rf *.swp
    linux裏vi打開一個非正常關閉或者被佔用文件時總是提示被佔用,刪除產生的.swp文件就不會再提示了。

  2. @EnableEurekaClient 和 @EnableDiscoveryClient
    @EnableDiscoveryClient和@EnableEurekaClient共同點就是:都是能夠讓註冊中心能夠發現,掃描到改服務。
    不同點:@EnableEurekaClient只適用於Eureka作爲註冊中心,@EnableDiscoveryClient 可以是其他註冊中心。

  3. Oracle 的LOB
    LOB ==> large object 大數據
    BLOB ==> 存放二進制數據(Binary Large Object),適用於存貯非文本的字節流數據(如程序、圖象、影音等)。
    CLOB ==> 字符型大型對象(Character Large Object),則與字符集相關,適於存貯文本型的數據(如歷史檔案、大部頭著作等)。

  4. MVEL是一個基於Java應用程序的表達式語言

Student student1 = new Student("male", "garfield");
Object isEqual = MVEL.eval("name == 'garfield'", student1);
System.out.println(isEqual);

Object name = MVEL.eval("name", student1);
System.out.println(name);

Map<String,Integer> map = new HashMap<>();
map.put("X",8);
map.put("Y",8);
Object eval = MVEL.eval("X*Y", map);
System.out.println(eval);

Serializable exp = MVEL.compileExpression("x>=13");
Map<String, Object> param = Maps.newHashMap();
param.put(ConstantUtils.PAPER_EXPRESSION_X, 12);
boolean flag = MVEL.executeExpression(exp, param, Boolean.class);

  1. Collections
        List<Object> list = Collections.emptyList();
        Set<Object> set = Collections.emptySet();
        Map<Object, Object> map = Collections.emptyMap();
        System.out.println(list);
        //沒有add(),delete()方法

emptyList()方法的使用
通過java.util.Collections.emptyList()方法的相關源碼可以得知它實際上就是返回了一個空的List,但是這個List和我們平時常用的那個List是不一樣的。這個方法返回的List是Collections類的一個靜態內部類,它繼承AbstractList後並沒有實現add()、remove()等方法,因此這個返回值List並不能增加刪除元素。
既然這個List不能進行增刪操作,那麼它有何意義呢?
這個方法主要目的就是返回一個不可變的列表,使用這個方法作爲返回值就不需要再創建一個新對象,可以減少內存開銷。並且返回一個size爲0的List,調用者不需要校驗返回值是否爲null,所以建議使用這個方法返回可能爲空的List。
emptySet()、emptyMap()方法同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章