Time of Update: 2017-01-19
在實戰中學習Spring,本系列的最終目的是完成一個實現使用者註冊登入功能的項目。預想的基本流程如下:1、使用者網站註冊,填寫使用者名稱、密碼、email、手機號資訊,後台存入資料庫後返回ok。(學習IOC,mybatis,SpringMVC的基礎知識,表單資料驗證,檔案上傳等)2、伺服器非同步發送郵件給註冊使用者。(學習訊息佇列)3、使用者登入。(學習緩衝、Spring Security)4、其他。邊學習邊總結,不定時更新。項目環境為Intellij +
Time of Update: 2017-01-19
基於有了OO的基礎後,開始認真學習設計模式!設計模式是java設計中必不可少的!Apple.javapackage strategy;/** * * @author Andy * */ public class Apple implements Discountable { //重量 private double weight; //單價 實際開發中 設計金錢等精確計算都是BigDecimal; private double price; //按購買量打折 //
Time of Update: 2017-01-19
在java
Time of Update: 2017-01-19
原理解析在開發當中,“斷點續傳”這種功能很實用和常見,聽上去也是比較有“逼格”的感覺。所以通常我們都有興趣去研究研究這種功能是如何?的? 以Java來說,網路上也能找到不少關於實作類別似功能的資料。但是呢,大多數都是舉個Demo然後貼出源碼,真正對其實現原理有詳細的說明很少。 於是我們在最初接觸的時候,很可能就是直接Crtl + C/V代碼,然後搗鼓搗鼓,然而最終也能把效果弄出來。但初學時這樣做其實很顯然是有好有壞的。
Time of Update: 2017-01-19
思路如下:建立JPanel面板對象;使用JPanel類的setLayout(0,4)方法設定網格布局管理器,即列數為4,行數自動調節;建立一個字串型一維數組作為控制項文本數組;建立一個JCheckBox型一維數組作為控制項數組;使用for迴圈遍曆控制項數組,初始化數組中的複選框組件,使用JPanel類的add()方法把數組元素(即每個複選框)添加到面板中。代碼如下:複製代碼 代碼如下:package cn.edu.xidian.crytoll;import
Time of Update: 2017-01-19
編寫程式,實現接受使用者在文字框中輸入的單行資料。這些資料都是整數數字,以空格進行分隔,空格數量不限。並將這些資料分割成一維數組,再從數組中提取最小值顯示在介面中。思路是先對使用者的輸入進行驗證,即先用trim()函數過濾使用者輸入字串的左右空格,若結果為空白字串則用JOptionPane類的showMessageDialog方法提示使用者"請輸入數字內容"。若使用者輸入非空則使用charAt函數對使用者輸入字串中的每一個字元進行判斷,若其既非數字也非空格則提示"輸入包含非數字內容",然後使用s
Time of Update: 2017-01-19
思路分析:首先使用Class獲得一個代表String類的類對象,然後使用Class類的getDeclaredFields()方法獲得所有成員變數,並賦值給一個Field型數組,即得到String類的所有域。使用foreach()迴圈遍曆所有域,使用Field類的getName()方法獲得該成員變數的名稱,如果域的名字是hash,嘗試使用Field類的getInt(Object
Time of Update: 2017-01-19
思路分析:要逆序遍曆某個列表,首先要獲得一個ListIterator對象,利用for()迴圈,以ListIterator類的hasNext()方法作為判斷條件,通過迴圈執行ListIterator類的next()方法將遊標定位到列表結尾,然後在另一個for迴圈中,以ListIterator類的hasPrevious()方法作為判斷條件,通過ListIterator類的previous()方法逆序輸出資料行表中的元素。代碼如下:複製代碼 代碼如下:import
Time of Update: 2017-01-19
思路分析:因為是表單應用,首先看視圖層。需要一個按鈕控制項JButton用來選擇檔案夾;需要一個標籤控制項JLabel用來顯示選擇的路徑;需要一個標籤控制項JLabel提示使用者輸入什麼;需要一個文字框控制項JTextField供使用者輸入檔案類型;需要一個表格控制項JTable顯示選中目錄下指定類型的檔案。對於按鈕控制項,為其綁定事件處理方法,在該方法中首先建立JFileChooser檔案選取器對象,為該對象設定選取器的過濾器,即通過JFileChoose類的setFileSelectionM
Time of Update: 2017-01-19
思路:先看視圖層,要有一個JButton控制項用來選擇檔案,一個JTextField控制項顯示選中檔案的絕對路徑,一個JLabel控制項提示使用者輸入搜尋文本,一個JLabel控制項提示使用者輸入替換後的文本,一個JTextField標籤供使用者輸入要搜尋的文本,一個JTextField標籤供使用者輸入替換後的文本,一個JButton控制項執行替換,一個JButton控制項用來開啟修改後的檔案。對於選擇檔案按鈕,使用JButton類的addActionListener()方法為其綁定事件,在該事
Time of Update: 2017-01-19
歸併排序就是採用分治法進行排序:(1)將一個數組分成小的2個數組分別進行排序;(2)之後將分出來的已經拍好序的數組進行合并;複製代碼 代碼如下:import java.util.Scanner;public class MergeSort { int[] a=null; int[] b=null; int n; Scanner
Time of Update: 2017-01-19
Java API對Arrays類的說明是:此類包含用來運算元組(比如排序和搜尋)的各種方法。1.對基礎資料型別 (Elementary Data Type)的數組的排序說明:(1)Arrays類中的sort()使用的是“經過調優的快速排序法”;(2)比如int[],double[],char[]等基資料類型的數組,Arrays類之只是提供了預設的升序排列,沒有提供相應的降序排列方法。(3)要對基礎類型的數組進行降序排序,需要將這些數組轉化為對應的封裝類數組,如Integer[],Double[]
Time of Update: 2017-01-19
1.使用matlab作閉合多邊形圖沒有找到直接畫多邊形的函數,只能是將各個點的座標儲存在數組中,將一個點與其相鄰的點相連,並將最後一個點與第一個點串連。下面是一個樣本的.m檔案:複製代碼 代碼如下:clear;clc;a=[0 2 4 6 8 10 12 14;0 2 1 4 6 6 5 7]; %要串連的點座標 x;y[n,m]=size(a);for i=1:m-1; line([a(1,i),a(1,i+1)],[a(2,i),a(2,i+1
Time of Update: 2017-01-19
複製代碼 代碼如下:package dao;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;/** * @author minxuenetcn */public class HibernateSessionFactory { private final
Time of Update: 2017-01-19
要想理解反射的原理,首先要瞭解什麼是類型資訊。Java讓我們在運行時識別對象和類的資訊,主要有2種方式:一種是傳統的RTTI,它假定我們在編譯時間已經知道了所有的類型資訊;另一種是反射機制,它允許我們在運行時發現和使用類的資訊。1、Class對象 理解RTTI在Java中的工作原理,首先需要知道類型資訊在運行時是如何表示的,這是由Class對象來完成的,它包含了與類有關的資訊。Class對象就是用來建立所有“常規”對象的,Java使用Class對象來執行RTTI,即使你正在執行的是類似類型轉換
Time of Update: 2017-01-19
理解Java泛型最簡單的方法是把它看成一種便捷文法,能節省你某些Java類型轉換(casting)上的操作: List<Apple> box = ...; Apple apple = box.get(0);上面的代碼自身已表達的很清楚:box是一個裝有Apple對象的List。get方法返回一個Apple對象執行個體,這個過程不需要進行類型轉換。沒有泛型,上面的代碼需要寫成這樣: List box = ...; Apple apple = (Apple) box.
Time of Update: 2017-01-19
對於物件導向編程來說,抽象是它的一大特徵之一。在Java中,可以通過兩種形式來體現OOP的抽象:介面和抽象類別。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以為它們可以隨意互換使用,但是實際則不然。今天我們就一起來學習一下Java中的介面和抽象類別。下面是本文的目錄大綱: 一.抽象類別 二.介面 三.抽象類別和介面的區別一.抽象類別在瞭解抽象類別之前,先來瞭解一下抽象方法。抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現。抽象方法的聲明格式為: &nb
Time of Update: 2017-01-19
工欲善其事,必先利其器很多程式員可能都忘了記錄應用程式的行為是一件多麼重要的事,當遇到多線程環境下高壓力導致的並發bug時,你就能體會到記錄log的重要性。有的人很高興的就在代碼裡加上了這麼句:log.info("Happy and carefree logging");他可能都沒有意識到應用程式的日誌在維護,調優和故障識別中的重要性。我認為slf4j是最好的日誌API,最主要是因為它支援一個很棒的模式注入的方式:log.debug("Found {} records matching
Time of Update: 2017-01-19
首先我們應該清楚的是JDK1.6和JDK1.7中String類的intern方法還是有差別的: JDK1.6中的intern: 調用intern方法的時候首先會去常量池中查看是否存在與當前String值相同的值,如果存在的話,則直接返回常量池中這個String值的引用;如果不存在的話,則會將原先堆中的該字串拷貝一份到常量池中。 JDK1.7中的intern: 調用intern方法的時候
Time of Update: 2017-01-19
本文執行個體講述了java實現的AES密碼編譯演算法。分享給大家供大家參考,具體如下:import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import android.util.Base64;/** * @author vipin.cb , vipin.cb@experionglobal.com <br> *