原创 mybaits只使用select語句查詢時,使用#{}報錯

一般在使用mybatis會使用#{}去填充查詢條件,避免sql注入。 但是在使用select不使用from,where時,在select中使用#{}填充查詢條件會報錯,這個時候只能使用${}去拼接字符串了 點贊 收藏

原创 Executor(四):ScheduledThreadPoolExecutor jdk1.8

JDK對ScheduledThreadPoolExecutor 的描述 一個ThreadPoolExecutor可以添加調度命令在一個指定的延時時間或週期性的時間執行。相比Timer類它支持多線程。延時任務到了能執行的時間馬上執行但是沒

原创 PostgerSQL排序問題

排序規則爲字母數字混合排序,字母排在數字前面。比如:a,1,b,2 排序後的結果爲:a,b,1,2。 如果直接使用order by去排序對應的字段得出的結果會是1,2,a,b。因爲字符‘1’的ascii值小於‘a’的,所以‘1’會在前面。

原创 32位jdk volatile修飾long和double類型

32位jdk中long和double有什麼問題? long和double是64位的,在32位的jdk中完成write操作是需要兩次操作的(每次執行32位)。也就是long和double的write操作是非原子性的。非原子的操作在多線程環境

原创 關於HttpClient中連接池是如何在HttpCloseableHttpResponse的close()執行後沒有銷燬HttpClient的

根據Apache HttpClient 4.5.6講解。 HttpClient使用如下方式創建HttpClient時,在build()中會默認給HttpClient設置一個連接池PoolingHttpClientConnectionMan

原创 HashMap 源碼淺析(jdk8)

成員變量: /** * The default initial capacity - MUST be a power of two. * 默認的初始值大小,1*2的四次方也就是16. */ sta

原创 高可用spring cloud初探

1.使用使用兩個Eureka服務註冊中心,相互註冊。 相互註冊之後可以在Eureka信息面板中看到其他eureka-server。 2.在服務提供者註冊到所有的服務註冊中心 eureka.client.service-url.defa

原创 CLH鎖的原理和實現

public class CLHLockV2 { /** * * 隱式節點類 * 作用:維持一個節點狀態的字段。一個線程會對應一個節點 */ private static cla

原创 ArrayList源碼解讀(翻譯)

/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL.

原创 java死鎖的一個例子

public static void main(String[] args){ RenderPageTask renderPageTask = new RenderPageTask(); renderP

原创 ArrayList的copy()方法

public class Info { public static void main(String[] args) { ArrayList<A> list = new ArrayList<>();

原创 使用迭代器刪除集合的元素拋出異常

迭代器進行迭代使用的是集合的一個拷貝,他是在另外的線程中進行的,每次進行迭代的時候都會與主線程的集合進行對比,檢查是否一致。如果不一致會在調用next()方法的時候拋出異常。如果使用的是集合本身的remove方法進行刪除元素的話就會造成兩

原创 java複習(二)

原创 java複習(一)

1.關於try catch finally中return的問題 在try中return後如果沒有finally就會直接返回了。但是這樣要注意在try體外要有return不然編譯器會報錯。 如果有finally體則,try中return後還

原创 基於連通域的漢字切割

這段代碼是隻使用了基於連通域的漢字切割。效果不是很好,還是有很多切的有問題的地方。對圖像效果差的效果也不是很好,只是供大家參考 #include<io.h> #include<math.h> #include<vector> #inclu