原创 XMPP通信中的離線消息
ConnectionConfiguration config = new ConnectionConfiguration("192.168.1.100", 5222); config.setSecurityMode(SecurityM
原创 新型生產者消費者解決方案
問題描述 實現生產者消費者算法,多個線程同時生產數據,多個線程同時消費數據,要求容量空間有上限,消費者和生產者需要相互等待。 解題思路 傳統思路: 利用java的wait和notify實現,如果使用數組,則每次放和取都加鎖,並判斷
原创 利用openfire和smark的即時通信
服務器:openfire 客戶端程序:smark編寫 首先安裝openfire,下載客戶端後直接安裝即可,數據庫可以用openfire自身的,也可以用自己的數據庫,只要按提示設置好參數即可 之後,就可以用smark寫一個客戶端測試與ope
原创 兩個線程,順序打印從1-100的數字,一個線程打印奇數,一個線程打印偶數
需求描述 這裏考察對線程鎖的使用,多線程情況下如何控制各自的執行時間段。 解題思路 我想到的有兩種接替思路,一種是使用標誌位,一種是使用線程鎖。 使用標誌位的思路如下: 兩個線程一個打印偶數,一個打印奇數,兩個線程要交叉執行,所以
原创 八皇后算法解析
算法描述 摘自百度: 八皇后問題是一個以國際象棋爲背景的問題:如何能夠在 8×8 的國際象棋棋盤上放置八個皇后,使得任何一個皇后都無法直接吃掉其他的皇后?爲了達到此目的,任兩個皇后都不能處於同一條橫行、縱行或斜線上。 解題思路
原创 java全局異常捕獲
Thread.setDefaultUncaughtException() 捕獲所有程序爲直接處理的,由虛擬機拋出的異常。 Thread t = new Thread(); t.setUncaughtException() 捕獲該線程中
原创 spring設置多個ViewResolver
ViewResolver用來解析視圖文件,如常用的jsp類型的文件。 <bean id ="jspViewResolver" class= "org.springframework.web.servlet.view.InternalRes
原创 JavaScript回調方法中使用外部變量出現的問題
測試用例 function cprint(str) { console.log(str); } function temp() { for(var i=0; i<3; i++) { $("#bt"+i).
原创 java字符分割
public String[] split(String regex) { return split(regex, 0); } 可以接受普通字符,也可以是正則表達式。 public String[] split(Strin
原创 disruptor的使用和分析
disruptor:3.3.4 jdk:1.8 介紹: disruptor是典型的生產者和消費者模式,disruptor使用RingBuffer存放數據,sequence管理生產和消費的位置(long類型,遞增),生產者要生產數據的時候
原创 java版的生產者消費者模型
package com.qing.java8; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.
原创 android中引入第三方包,編譯通過,但運行的時候報 java.lang.NoClassDefFoundError
原因是,引入的第三方jar包沒有被編譯到dex文件中,在對應的工程目錄下bin\dexedLibs,可以看見被編譯到dex下的所有類包。 解決辦法之一:在libs下新建文件夾,複製第三方包到該文件夾下---->builde path---
原创 jad eclipse插件的安裝問題
在plugin中放入插件後,在eclipse中的設置 在java---jadClipse中設置jad.exe所在路徑以及源碼保存路徑 在General---Editors-----File-Associations中設置 *.class
原创 HttpClient設置請求頭
httpclient:4.5.1 httpcore:4.4.3 public static String USER_AGENT[] = { "Mozilla/5.0 (Windows NT 10.0; WOW64; rv
原创 js中map中元素排序
方法如下: function sort() { var map = {"1":3, "2":5, "3":6, "4":1}; var keys = ["1", "2", "3", "4"]; var result