`
文章列表
遞歸轉非遞歸總結: 遞歸的時候,計算機透明的幫我們做了入棧,出棧等等操作,而且在入棧的時候,還記錄了上下文信息,很重要的是記錄了當此節點出棧后,應該繼續從什么位置進行執行。 若我們自己進行遞歸轉非遞歸,那么我們就得自己記錄上面的信息了。入棧及記錄出棧后從什么位置開始執行。 列子: 遞歸 public class Recursion { public static int count = 0; public static int childrenCount = 5; public static void builderTree(int[] tree,int index) { if(tre ...
假如一條記錄可以用id,idcard,name分別唯一的查詢到, 且提供了三個接口(支持上面的查詢) 存儲映射 key:id????? idcard????? name value:id???????? id??????? id 存儲真實值 key:id?? value:value 需要查詢兩次(用idcard 與name來查詢) 想的是比方用idcard來查詢,查詢緩存,有值,那么在通過這個值去取真實數據。??? 第一次取?? 查詢緩存? 不存在記錄,那么取值,在將idcard與記錄標識存起來??? 在看看記錄標識在緩存中是否存在? 不存在? 則緩存起來 避免多個值被存儲,節約空間 緩存一致性 ...
import java.io.Serializable; import java.util.List; /** * Created by Administrator on 2017/4/19. * 這是基于是單線程來執行同步?? 千萬不允許多線程執行??? 多線程執行太難寫了? 放棄吧!!!!! * 這里我們考慮有時間因素、以及mysql mvcc非鎖定讀的因素。 * 時間因素我們這樣解決:1、以主服務器的時間為準。而非本地時間。本地時間快與慢不會影響同步功能 *?????????????????????? 2、主服務器可以調整它的時間,可以向前(改小時間)或向后(改大時間)調整,程序 ...
Rabbitmq高可用設計思路 設計保證: 1、消息不丟失(將消息存儲到磁盤)。Rabbitmq服務器分為內存服務器和磁盤服務器,若你需要你的消息服務器保證消息不丟失,則將消息保存到磁盤,是磁盤消息。 如何將消息設置為磁盤消息? ...
rabbitmq實現rpc調用基本思路: 客戶端(client):客戶端發起rpc調用,這當成一個消息,發送到rabbitmq服務器。這個消息會攜帶兩個特殊(額外)的信息,一個是調用序號,一個是回調隊列名稱。調用序號需要服務端原樣返回,而回調隊列名稱是用于服務端將結果放入這個隊列中,以便客戶端取回結果。 服務端(service):服務端接收到了一個rpc調用后,執行調用代碼,將結果返回到指定的回調隊列中去。 這里我們可以約定一個數據模型,見代碼: public class RpcInvokeModel implements Serializable { ????????? //真實傳輸的數據 ...
package com.cc.sec; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.web.filter.au ...
//<!--蒙板--> var showLoad = '<div id="bigloadGifShow" style="filter: Alpha(opacity=30); -moz-opacity: 0.3; -khtml-opacity: 0.3;position: absolute; left: 0; top: 0; display: back; overflow: hidden;background-color: #000;"></div>'; //<!--彈出層----> showLoad+ ...
通過修改web.xml讓服務器重啟的問題? 通過修改web.xml讓服務器重啟時,項目中開啟的線程都不會自動的被關閉,只有你自己去傳達web容器關閉事件,通知運行中的線程,讓其自動關閉。這里我經常使用的是觀察者模式, 代碼如下: 監聽web容器關閉事件,并自啟動一個關閉線程來進行關閉操作,因為web容器的關閉時間是有限的。 public class WebContentClose implements ServletContextListener,Runnable { @Override public void contextDestroyed(ServletContextEvent arg ...
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date; import com.pdy.test.User; //這就是一個實現了深拷貝的反射 public class UseReflectColne2 { public static Object clone(Object obj) throws SecurityException, NoSuchMethodExc ...
package com.hengyunsoft.cryptography.sign.desimpl; import java.util.Arrays; import java.util.Random; import com.hengyunsoft.cryptography.sign.SignReversible; public class SimpleDesSign implements SignReversible { //下面這個是秘鑰 private byte[] secretKeys = new byte[] {5,62,54,110,26,57,96,41,96,45,12,74, ...
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; public class ApiInvokeLimit { private volatile long nextTime = 0; private final long invetime = 5; private final int maxCount = 2000; private ConcurrentHashMap<String,AtomicInteger> appKey2Invok ...
package com.hengyunsoft.test; import java.util.Comparator; import java.util.Random; import edu.emory.mathcs.backport.java.util.Arrays; public class PriorityArray<E> { /** * 當前已用大小 */ private int size; private Object[] e; private Comparator<E> comparator; public PriorityArray(int ...
import java.util.LinkedList; import java.util.Random; public class ThreadDispatch extends Thread{ //需要暫用幾個時間片 private int count; //是否分配到了處理器標志 private volatile boolean holdCpu; //暫用的處理器名稱 private volatile String cpuName; public ThreadDispatch(int count,String name) { super(name); this.coun ...
package com.huawei.test; import java.util.HashMap; import java.util.Map; public class SpinReadWriteLock { private volatile Thread writeThread = null; private volatile int writeCount = 0; //標記已經獲取讀lock的線程想要獲取寫lock?? 但被阻止了(因各種原因) private volatile Thread readRequestWriteLockingThread = null; privat ...
定時任務: 1小時一次: 1、商定取值時間:時間 = min(主服務器時間 - 1小時5分,上次商定的時間 + 1小時) 這里的5分鐘我考慮的是最大事物的用時。就是假定所有事物的時間長度不可以超過5分鐘。 因為我們在程序中經常是先設置更新時間,然后插入數據庫,然后再做些別的(浪費了一些時間), 最后提交了事物。那么根據mvcc模式,非鎖定讀,是讀快照。導致更新時間本應該在本次同步中被同步的,而并沒有同步到 (不可見),而下一次的同步時間又大于了這個更新時間。導致會丟失更新。所以每次同步,都多同步5分鐘的數據。 就怕丟下這種間隙中的數據。 2、用商定的取值時間進行同步數據。 主服務器數據不可以被刪 ...
Global site tag (gtag.js) - Google Analytics 开心农场种蔬菜赚钱 刮刮乐中奖 德甲为什么只有18队 股票分析师为什么不自己炒股还乐于助人 喜乐福彩 资产配置基金管理人 通化大嘴棋牌游戏官 藏宝阁2肖2码默认论坛 配股资格 教育网络平台怎么赚 股票大盘指数号码 天才麻将少女全国篇 意甲水平 微乐捉鸡麻将二丁拐技巧 游戏捕鱼大亨2 定投理财投资产品好么 全网app赚钱软件