1. 程式人生 > >自己寫的java工具類(包含序列化,引數校驗,判空,HashMap,分頁計算)

自己寫的java工具類(包含序列化,引數校驗,判空,HashMap,分頁計算)

package org.xx.xx

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;

public class Utils {
	private static Utils myUtil = null;
	public static final Integer EMAIL = 1;
	public static final Integer USERNAME = 2;
	public static final Integer PASSWORD = 3;
	public static final Integer TEL = 4;

	private Utils() {
	}

	/**
	 * 單例模式,返回該類物件
	 * 
	 * @dagewang 2017年11月1日
	 */
	public static Utils getUtil() {
		if (myUtil == null) {
			synchronized (Utils.class) {
				if (myUtil == null) {
					myUtil = new Utils();
				}
			}
		}
		return myUtil;
	}

	/**
	 * 引數的校驗,type在本類中有常量表示
	 * 
	 * @dagewang 2017年11月1日
	 */
	public boolean check(Integer type, String data) {
		boolean result = false;
		if (type == EMAIL) {
			result = data.matches("[\\w]
[email protected]
[\\w]+\\.{1}[\\w]{2,3}"); } else if (type == USERNAME) { result = data.matches("[a-zA-Z]{1}+[\\w]{7,19}"); } else if (type == PASSWORD) { result = data.matches("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{8,22}$"); } else if (type == TEL) { result = data.matches("[0-9]{11}"); } return result; } /** * 引數判空,可變長度 * * @dagewang 2017年10月24日 */ public boolean isNull(Object... obj) { for (int i = 0; i < obj.length; i++) { if (obj[i] == null || obj[i].equals("")) { return true; } } return false; } /** * 通過總數和每頁需要多少條,計算有多少頁 * * @dagewang 2017年7月31日 */ public Integer getPage(Integer count, Integer pageNum) { double size = (double) count; size = size / pageNum; return size < 1 ? 1 :(int)Math.ceil(size); } /** * 序列化 * * @dagewang 2017年11月1日 */ public byte[] serialize(Object object) throws Exception { ObjectOutputStream oos = null; ByteArrayOutputStream baos = null; baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(object); return baos.toByteArray(); } /** * 反序列化 * * @throws Exception * * @dagewang 2017年11月1日 */ public static Object unserialize(byte[] bytes) throws Exception { ByteArrayInputStream bais = null; bais = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bais); return ois.readObject(); } /** * 構造HashMap * * @dagewang 2017年11月1日 */ public HashMap newHashMap() { return new HashMap(); } }

相關推薦

自己java工具(包含序列,引數,,HashMap,計算)

package org.xx.xx import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutput

Java工具】----正則表示式工具

/** * @Title: RegexValidateUtil.java * @Package org.csun.nc.util * @Description: TODO * @author chisj [email protected] * @da

list 工具序列、反序列

  public static byte[] serializeObject(Object object) {          ByteArrayOutputStream saos = new ByteArrayOutputStream();          Ob

java序列

             1)序列化時,只對物件的狀態進行儲存,而不管物件的方法;             2)當一個父類實現序列化,子類自動實現序列化,不需要顯式實現Serializable介面;             3)當一個物件的例項變數引用其他物件,序列化該物件時也把引用物件進行序列化;   

判斷 自己一個工具

/** * 如果引數為null,返回true * * @author hechenglong * @param patterns * @return */ public static boolean isNull(Object... patterns){

rest_framework序列元件

在views中 from django.shortcuts import render # Create your views here. from rest_framework.viewsets import&

Django REST Framework 序列 知識點

any 組件 imp 圖片 png 添加 obj ons self. DRF序列化   Django ORM對象 --> JSON格式的數據  序列化   JSON格式的數據 --> Django ORM數據  反序列化   需要兩個工具: f

Java序列和反序列超強工具(包含tif圖片與其他格式互轉)

import java.awt.image.RenderedImage; import java.awt.image.renderable.ParameterBlock; import java.io.BufferedInputStream; import java.io.

Json序列java工具

java對象 writev ctype imp date eval 取消 cti empty json序列化通用工具類(java)>為了支持此工具類的正常使用,先導入以下jar包 1.lombok包是一個簡化java冗余代碼的jar包,實際開發中很方便在maven的p

序列工具

str ktr trace print ati serialize new post trac import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.O

Serializable 指示一個可以序列;ICloneable支持克隆,即用與現有實例相同的值創建的新實例(接口);ISerializable允許對象控制其自己序列和反序列過程(接口)

att 文本 所有 可能 成員 強制 void inter 適用於 Serializable : 序列化是指將對象實例的狀態存儲到存儲媒體的過程。在此過程中,先將對象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉換為字節流,然後再把字節流寫入數據流。在隨後對對象進

java實現序列的方法

bject 反序 都在 ava 我們 pri 密碼 輸入 tro Java中實現序列化的兩種方式 Serializable 接口和 Externalizable接口 對象的序列化就是將對象寫入輸出流中。 反序列化就是從輸入流中將對象讀取出來。 用來實現序列化的類都在jav

自己動手Java String

實現string ins cas 沒有 min 操作方法 str2 override 英文 很早想造個輪子了,聽說不想造輪子的程序員不是好程序員,用慣了Apache的眾多開源項目,卻沒看過開源一句代碼。最近看了幾篇賣焦慮的文章之後,突然變得慌張起來,於是在百忙之中難得一點閑

(java)IO流物件(六)集合Properties序列流、反序列流、列印流

【Properties特點】 /* * 集合物件Properties類特點: * 1. 繼承Hashtable,實現Map介面 * 2. 該集合無泛型,鍵值都是字串 * 3. 鍵值可以儲存到集合中,也可以儲存到持久化的裝置如硬碟、U盤、光碟上

Java RMI遠端反序列任意及遠端程式碼執行解析(CVE-2017-3241 )

本打算慢慢寫出來的,但前幾天發現國外有研究員發了一篇關於這個CVE的文章,他和我找到的地方很相似。然而不知道是不是Oracle認為是同一個漏洞然後合併了CVE,還是說我找錯了CVE。 總之,先簡單描述一下漏洞:對於任何一個以物件為引數的RMI介面,你都可以發一個自己構建的物件,迫使伺服器端將這個物件按任

java物件序列到檔案裡

在java中能夠被序列化的類必須先實現Serialzable介面,該介面沒有任何抽象方法只是起到一個標記作用。 //物件輸出流 ObjectOutputStream oos = new Objec

JAVA實現一種排序,JAVA實現序列的方法(二種)? 如在COLLECTION框架中,實現比較要實現什麼樣的接

} 輸出結果: The ArrayList Sort Before: al[0]=79 al[1]=81 al[2]=14 al[3]=100 al[4]=92 al[5]=76 al[6]=5 al[7]=55 al[8]=39 al[9]=36 [79, 81, 14, 100, 92, 76, 5, 5

java工具,在Windows,Linux系統獲取電腦的MAC地址、本地IP、電腦名

copy iter 去掉m [] equals linu stat cli catch package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException;

File序列

als 名稱 測試 bject nal ner buffer 文件和目錄 長度 一、File類方法 1.與文件、目錄名相關方法 String getName() 返回由此抽象路徑名表示的文件或目錄的名稱。 String getPath() 將此抽象路徑名轉換為一個路徑名字符

java對象的序列和反序列

底層 修飾 我們 puts nbsp tostring read one asics 一,對象的序列化,反序列化1.對象的序列化,就是將Object轉換成byte序列,反之叫對象的反序列化2.做序列化需要有流類,序列化流(ObjectOutputStream),是(字節的)