自己寫的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),是(字節的)