⑴ java持久化類為什麼要實現序列化
序列化可以將一個復雜的對象轉化為一維的數據,而這為持久化提供了很大的方便,因為文件就是一維的,將一維的東西寫入文件自然比較方便。
不過持久化是個很寬泛的概念,可以是寫入文件,也可以是存入資料庫,寫入注冊表等多種方式。其本意是延長對象或數據的生命周期,讓其可以超越程序的生命周期,程序關閉了,甚至伺服器關機了,下次運行程序時又可以讓對象或數據恢復到原來的狀態。
而序列化也不一定是用來持久化的,可以是用來傳遞使用,如從計算機A傳遞到計算機B;也可以用來進行深拷貝;總之序列化主要解決從復雜的數據結構轉化為一維結構,或者從一維結構從新構建復雜的數據結構。
⑵ Java Web中的mapper,service,controller,model究竟分別是什麼作用
java web中mapper是對象持久化映射層,一般會繼承ibatis或者mybatis servive是一些業務邏輯的處理層,controller是控制層,相當於mvc的c層,model是數據模型層相當於mvc的m層。
⑶ java消息隊列是怎麼實現數據持久化的
java中的消息隊列消息隊列是線程間通訊的手段:import java.util.*public class MsgQueue{ private Vector queue = null; public MsgQueue(){ queue = new Vector(); } public synchronized void send(Object o) { queue.addElement(o); } public synchronized Object recv(){ if(queue.size()==0) return null; Object o = queue.firstElement(); queue.removeElementAt(0);//or queue[0] = null can also work return o;}}因為java中是locked by object的所以添加synchronized 就可以用於線程同步鎖定對象可以作為多線程處理多任務的存放task的隊列。他的client包括封裝好的task類以及thread類Java的多線程-線程間的通信2009-08-25 21:581. 線程的幾種狀態線程有四種狀態,任何一個線程肯定處於這四種狀態中的一種:1) 產生(New):線程對象已經產生,但尚未被啟動,所以無法執行。如通過new產生了一個線程對象後沒對它調用start()函數之前。2) 可執行(Runnable):每個支持多線程的系統都有一個排程器,排程器會從線程池中選擇一個線程並啟動它。當一個線程處於可執行狀態時,表示它可能正處於線程池中等待排排程器啟動它;也可能它已正在執行。如執行了一個線程對象的start()方法後,線程就處於可執行狀態,但顯而易見的是此時線程不一定正在執行中。3) 死亡(Dead):當一個線程正常結束,它便處於死亡狀態。如一個線程的run()函數執行完畢後線程就進入死亡狀態。4) 停滯(Blocked):當一個線程處於停滯狀態時,系統排程器就會忽略它,不對它進行排程。當處於停滯狀態的線程重新回到可執行狀態時,它有可能重新執行。如通過對一個線程調用wait()函數後,線程就進入停滯狀態,只有當兩次對該線程調用notify或notifyAll後它才能兩次回到可執行狀態。2. classThread下的常用函數函數2.1 suspend()、resume()1) 通過suspend()函數,可使線程進入停滯狀態。通過suspend()使線程進入停滯狀態後,除非收到resume()消息,否則該線程不會變回可執行狀態。2) 當調用suspend()函數後,線程不會釋放它的「鎖標志」。例11:class TestThreadMethod extends Thread{public static int shareVar = 0;public TestThreadMethod(String name){super(name);}public synchronized void run(){if(shareVar==0){for(int i=0; i<5; i ){shareVar ;if(shareVar==5){this.suspend();//(1)}}}else{System.out.print(Thread.currentThread()