原创 避免反射和序列化攻擊的單例設計模式

package com.yf.test.demo; /** * 餓漢式,不支持懶加載 */ public class MyClass1 { private MyClass1(){} private static

原创 Zookeeper分佈式鎖

package com.yf.test.demo; import org.apache.zookeeper.*; import org.apache.zookeeper.data.Stat; import java.util.Arr

原创 通過ThreadPoolExecutor創建線程池

線程池不使用 Executors 去創建,而是通過 ThreadPoolExecutor 的方式,這樣 的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。 說明: Executors 返回的線程池對象的弊端如下: Fixe

原创 python開始爬網頁第一課

爬取網頁的編碼: from urllib import request import chardet response=request.urlopen("http://www.baidu.com") html=response.re

原创 python 基礎練習第一課

from pip._vendor.distlib.compat import raw_input i=int(raw_input("lirun:")); arr = [1000000,600000,400000,200000,1000

原创 python 乘法口訣

for i in range(1,10): print() for j in range(1,i+1): print("%d*%d=%d" % (i,j,i*j),end='')  

原创 python 斐波那契數列練習

def fan(n): if(n==1): return [1] if(n==2): return [1,1] fibs=[1,1] for i in range(2,n)

原创 python練習之json

def getJsonKey(keys): json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = demjson.decode(json) for key,value

原创 springboot集成mongodb

spring.data.mongodb.uri=mongodb://localhost:27017/test <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/

原创 java中的BigDecimal

public static void main(String[] args) { double d1=1.01; double d2=2.01; System.out.println(d1

原创 註冊加密用戶密碼

String salt = RandomStringUtils.randomAlphanumeric(20); user.setPassword(new Sha256Hash(user.getPassword(), salt).toHe

原创 線程的中斷interrupt,判斷是否中斷isInterrupt和interrupted的區別

api 含義 public void interrupt() 中斷線程,中斷並不是真正的中斷線程,而只設置標誌位(中斷位)來通知用戶 public boolean isInterrupt() 判斷Thread 對象是否中斷 public

原创 條件隊列

wait()、notify()和notifyAll()一般是跟synchronized配合一起使用,這些方法都是Object類提供的。 當線程重wait()狀態下被喚醒,wait()在被喚醒後還需要重新去獲取鎖,此時它重新請求鎖時並沒有

原创 java項目小技巧

static{ Timer timer=new Timer(); timer.schedule(new TimerTask() { public void run() { task(); } },0, 6

原创 redis存取對象集合

public static void redisCoinsSet() { List<Coins> ALL_COINS = new CoinsDao().findAll(); String ss = JSON.toJSON