Time of Update: 2018-07-26
一、懶漢式單例模式,解決反射和還原序列化漏洞 package com.iter.devbox.singleton;import java.io.ObjectStreamException;import java.io.Serializable;/** * 懶漢式(如何防止反射和還原序列化漏洞) * @author Shearer * */public class SingletonDemo6 implements Serializable{// 類初始化時,不初始化這個對象(
Time of Update: 2018-07-26
眼見為實,直接上效果圖: 首先匯出吧,我在項目中是這樣用的: 第一步,建立一個webbook,對應一個Excel檔案 第二步,在webbook中添加一個sheet,對應Excel檔案中的sheet 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制short 第四步,設定樣式 第五步,設定匯出資料 第六步,彈出下載框
Time of Update: 2018-07-26
我們大家都知道,要登入linux作業系統,我們必須要有一個使用者名稱和密碼。每一個使用者都由一個惟一的身份來標識,這個標識叫做使用者ID.系統中的每一個使用者也至少需要屬於一個"使用者分組".同樣,使用者分組也是由一個惟一的身份來標識的,該標識叫做使用者分組ID(GID).每位使用者的許可權可以被定義為普遍使用者或者根使用者,普通使用者只能訪問其擁有的或者有許可權執行的檔案.根使用者能夠訪問系統全部的檔案和程式,根使用者通常也被稱為"超級使用者"其許可權是
Time of Update: 2018-07-26
開源地址 https://github.com/a466350665/smart https://git.oschina.net/a466350665/smart QQ交流群:454343484(群內含各種工具和文檔下載) 簡述 Smart定位用當下最流行的SSM(SpringMVC + Spring +
Time of Update: 2018-07-26
資料庫對某些條件的過濾支援不是很好,比如LIKE,造成查詢效率不高,實踐中我們設計了一個工具類,用於Java應用程式層過濾。 我們基於JFinal的Db+Record實現。 首先設計一個記錄過濾器RecordFilter,用於判斷某個Record是否滿足要求。 import com.jfinal.plugin.activerecord.Record;import java.util.Iterator;import
Time of Update: 2018-07-26
最開始的時候,程式中需要操作資料庫了,我們會把串連資料庫的JDBC代碼寫到我們的商務邏輯代碼裡面,這樣,每串連一次,就要寫一遍JDBC串連-關閉的代碼,這樣的寫法顯然是很糟糕的,一旦資料庫有所變更,那麼你將要修改你的程式中所有使用JDBC的程式塊,一個一個的改固然讓人抓狂,批量替換也不是什麼好辦法。
Time of Update: 2018-07-26
1. 高並發最佳化分析 關於並發 並發性上不去是因為當多個線程同時訪問一行資料時,產生了事務,因此產生寫鎖,每當一個擷取了事務的線程把鎖釋放,另一個排隊線程才能拿到寫鎖,QPS(Query Per Second每秒查詢率)和事務執行的時間有密切關係,事務執行時間越短,並發性越高,這也是要將費時的I/O操作移出事務的原因。 在本項目中高並發發生在哪。 在上圖中,紅色的部分就表示會發生高並發的地方,綠色部分表示對於高並發沒有影響。
Time of Update: 2018-07-26
很多時候,我們都需要在插入一條資料後回過頭來擷取到這條資料在資料表中的自增主鍵,便於後續操作。針對這個問題,有兩種解決方案: (1)先插入,後查詢。我們可以先插入一條資料,然後根據插入的資料的各個欄位值,再次訪問資料庫,從資料庫中將剛剛插入的資料查詢出來。當然,這種方法是很笨的,不提倡使用。
Time of Update: 2018-07-26
《Java線程池》:Executor生命週期 我們知道線程是有多種執行狀態的,同樣管理線程的線程池也有多種狀態。JVM會在所有線程(非後台daemon線程)全部終止後才退出,為了節省資源和有效釋放資源關閉一個線程池就顯得很重要。有時候無法正確的關閉線程池,將會阻止JVM的結束。 線程池Executor是非同步執行任務,因此任何時刻不能夠直接擷取提交的任務的狀態。這些任務有可能已經完成,也有可能正在執行或者還在排隊等待執行。因此關閉線程池可能出現一下幾種情況:
Time of Update: 2018-07-26
一:繼承Thread類建立線程類 class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . }
Time of Update: 2018-07-26
多線程和並發問題是Java技術面試中面試官比較喜歡問的問題之一。在這裡,從面試的角度列出了大部分重要的問題,但是你仍然應該牢固的掌握Java多線程基礎知識來對應日後碰到的問題。(校對註:非常贊同這個觀點) Java多線程面試問題 1. 進程和線程之間有什麼不同。 一個進程是一個獨立(self
Time of Update: 2018-07-26
最近看到有這麼一個題, 有一堆桃子 總數未知,有5個猴子。早晨有一個猴子來到桃子前平均分成5份但多出一個,就把多的一個吃瞭然後拿走了其中一份還剩四份。第二個猴子來了也將剩下的桃子分成5份同樣多了一個把多的一個吃瞭然後拿走了其中一份還剩四份。第三個。。。。。。每個猴子都做同樣的。問這堆桃子最少是多少個。 自己動手寫了下 僅供參考 ,如有問題和改進望留下改進方法 public static void
Time of Update: 2018-07-26
Java 使用Thread類代表線程,所有的線程對象都必須是Thread類或其子類的執行個體。每個線程的作用是完成一定的任務,實際上就是執行一段程式流(一段順序執行的代碼)。Java使用線程執行體來代表這段程式流。 public class FirstThread extends Thread {private int i;@Override//重寫run方法,run方法的方法體就是線程執行體public void run(
Time of Update: 2018-07-26
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/項目包名-2/base.apk", zip file "/data/app/項目包名-2/split_lib_dependencies_apk.apk", zip file
Time of Update: 2018-07-26
解決這個問題要注意:找到遞迴方法體,遞迴出口。 package com.cc; /** * * 有一對兔子,從出生後第三個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月兔子總數是多少。 * @author liukeqing * */ public class Hello { public static
Time of Update: 2018-07-26
單例類,也是將要序列化的類 package test;import java.io.Serializable;import java.util.Date;/** * 定義一個可序列化的單例類,單例實現方法是靜態內部類實現 同時為了在序列化後,再次還原序列化獲得對象還是單例模式。用readResolve方法 * 對於這個不是很懂。 * * @author cindy * */public class MyObject implements Serializable { /**
Time of Update: 2018-07-26
package com.java.basic.reflect;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * @描述 TODO * @項目名稱 Javas * @包名 com.java.basic.reflect * @類名 SimpleDemo * @author chenlin * @date
Time of Update: 2018-07-26
最近在學python,其中有這樣一道題 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少。 沒有做出來,先用筆在紙上算的時候也是稀裡糊塗的。後來想辦法建模運算,畢竟Java語言號稱類比自然界,向來是有辦法解決的,過程中遇到了很多問題,也有一些思考,現在把我認知到的內容分享給大家,希望對大家有協助 第一,分解問題,大問題轉換為小問題,小問題用編程方式解決出來。
Time of Update: 2018-07-26
2013年年初認識的Java,因為之前學習過C++,也考過NCRE 二級C++,知曉C++是一種十分讓人頭疼的OO進階程式設計語言,感覺高不可攀的樣子,後來才知道C++大多用來寫底層代碼的,心裡才覺得釋然:以當時自己的水平根本配不上人家。
Time of Update: 2018-07-26
刷微博時偶然看到 Lambda 的 HelloWorld 教程,覺得很酷炫。分享一下。 效果樣本 總體看起來效果就是代碼簡潔,如下 //之前的寫法btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("hello lambda"); ...