java Object轉(zhuǎn)byte與byte轉(zhuǎn)Object方式
Object轉(zhuǎn)byte與byte轉(zhuǎn)Object
今天實(shí)現(xiàn)一下如何從Object去轉(zhuǎn)為byte和如何從byte轉(zhuǎn)為Object。
首先,定義一個(gè)類student:
package com.byteToObject;?
import java.io.Serializable;?
public class student implements Serializable{
?
?? ?private int sid;
?? ?private String name;
?? ?public int getSid() {
?? ??? ?return sid;
?? ?}
?? ?public void setSid(int sid) {
?? ??? ?this.sid = sid;
?? ?}
?? ?public String getName() {
?? ??? ?return name;
?? ?}
?? ?public void setName(String name) {
?? ??? ?this.name = name;
?? ?}?
}然后定義轉(zhuǎn)換的主要方法,主要利用流進(jìn)行轉(zhuǎn)換:
package com.byteToObject;?
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
?
public class Main {?
?? ?public static void main(String[] args) throws IOException, ClassNotFoundException {
?? ??? ?student stu = new student();
?? ??? ?stu.setSid(123);
?? ??? ?stu.setName("wanger");
?? ??? ?
?? ??? ?ByteArrayOutputStream byam = new ByteArrayOutputStream();
?? ??? ?ObjectOutputStream oos = new ObjectOutputStream(byam);
?? ??? ?oos.writeObject(stu);
?? ??? ?byte[] bytes = byam.toByteArray();
?? ??? ?System.out.println(bytes.toString());
?? ??? ?
?? ??? ?ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
?? ??? ?ObjectInputStream ois = new ObjectInputStream(bais);
?? ??? ?
?? ??? ?student s = (student)ois.readObject();
?? ??? ?System.out.println(s.getName());?? ??? ?
?? ?}
}轉(zhuǎn)換結(jié)束。
java中Object...的用法是什么意思?
@SuppressWarnings("unchecked") ?
? ? public List<T> findByConditions(String hql,Object... conditions) throws Exception{ ?
? ? ? ? Session session = getSessionFactory().getCurrentSession(); ?
? ? ? ? Query query = session.createQuery(hql); ?
? ? ? ? for (int i = 0; i < conditions.length; i++) { ?
? ? ? ? ? ? query.setParameter(i, conditions[i]); ?
? ? ? ? } ?
? ? ? ? return query.list(); ?
? ? } ?Object是所有類的基類,這個(gè)你可以查詢jdk文檔了解,所有類都繼承自O(shè)bject。
Object ...objects(稱為可變個(gè)數(shù)的形參)這種參數(shù)定義是在不確定方法參數(shù)的情況下的一種多態(tài)表現(xiàn)形式。即這個(gè)方法可以傳遞多個(gè)參數(shù),這個(gè)參數(shù)的個(gè)數(shù)是不確定的。這樣你在方法體中需要相應(yīng)的做些處理。因?yàn)镺bject是基類,所以使用Object ...objects這樣的參數(shù)形式,允許一切繼承自O(shè)bject的對(duì)象作為參數(shù)。這種方法在實(shí)際中應(yīng)該還是比較少用的。
Object[] obj這樣的形式,就是一個(gè)Object數(shù)組構(gòu)成的參數(shù)形式。說(shuō)明這個(gè)方法的參數(shù)是固定的,是一個(gè)Object數(shù)組,至于這個(gè)數(shù)組中存儲(chǔ)的元素,可以是繼承自O(shè)bject的所有類的對(duì)象。
這些基礎(chǔ)東西應(yīng)該多看幾遍"Think in java"。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成MyBatisPlus+MySQL的實(shí)現(xiàn)
MybatisPlus是國(guó)產(chǎn)的第三方插件, 它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復(fù)勞動(dòng),本文主要介紹了SpringBoot集成MyBatisPlus+MySQL的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10
SpringBoot Redis配置Fastjson進(jìn)行序列化和反序列化實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot Redis配置Fastjson進(jìn)行序列化和反序列化實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
MyBatis分頁(yè)插件PageHelper的使用與原理
提到插件相信大家都知道,插件的存在主要是用來(lái)改變或者增強(qiáng)原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁(yè)插件的使用與原理,需要的朋友可以參考下2023-02-02
教你在Spring Boot微服務(wù)中集成gRPC通訊的方法
這篇文章主要介紹了教你在Spring Boot微服務(wù)中集成gRPC通訊的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
SpringMVC @ResponseBody 415錯(cuò)誤處理方式
這篇文章主要介紹了SpringMVC @ResponseBody 415錯(cuò)誤處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java中復(fù)雜的Synchronized關(guān)鍵字使用方法詳解
Synchronized關(guān)鍵字是一個(gè)種鎖,其有很多名字,例如重量級(jí)鎖、悲觀鎖、可重入鎖、、非公平、對(duì)象鎖等等,這篇文章主要給大家介紹了關(guān)于Java中復(fù)雜的Synchronized關(guān)鍵字使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01
解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別
這篇文章主要介紹了java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05

