• 关于

    java序列化方式

    的搜索结果

问题

【百问百答】Java开发手册灵魂15问之为什么禁止开发人员使用isSuccess作为变量名

1. 为什么使用消息队列?(MQ) 2. 怎么保证 MQ 的高可用? 3. 简述一下在java语言中消息队列的的顺序问题 4. 简述一下在java语言中消息队列的的顺序问题是如何...
huc_逆天 2021-01-15 10:47:31 10 浏览量 回答数 0

回答

对象序列化机制(object serialization)是Java语言内建的一种对象持久化方式,通过对象序列化,可以把对象的状态保存为字节数组,并且可以在有需要的时候将这个字节数组通过反序列化的方式再转换成对象。对象序列化可以很容易的在JVM中的活动对象和字节数组(流)之间进行转换。 在Java中,对象的序列化与反序列化被广泛应用到RMI(远程方法调用)及网络传输中。
huc_逆天 2021-01-11 11:46:34 0 浏览量 回答数 0

回答

这个问题其实还是要看 java ObjectOutputStream 源代码。我们都知道 序列化类需要 被序列化的类实现 java.io.Serializable 类然后使用 ObjectOutputStream 类的 writeObject 方法来将对象转换成流。从ObjectOutputStream源码的描述大概得知其序列化的方式。默认序列化机制:序列化的是对象的类,类签名,和所有非瞬态和非静态字段的值同时包括对其他对象的引用(瞬态和静态字段除外)也会导致写入序列。单个对象的多个引用被使用引用共享机制编码。英文大意,翻译的不准,最好自己读原文按理论来说 java 的所有类型的实例都是对象,原始数据类型外(Primitive data types)writeObject 方法并不是 真正的发生写入的方法。/** * Underlying writeObject/writeUnshared implementation. */ private void writeObject0(Object obj, boolean unshared)writeObject0 方法才是真正实现。从实现中可以看出,该方法 是通过 writeString 方法实现写入序列。字符串作为char数组类型的封装实现在序列化的时候被特殊对待了。再来看看 writeString 的源码可以看到 string 被当做一种原始数据,采用类似 DataOutputStream 的处理方式写入到了序列。 String 被当成数据写出,而不是结构化对象。
蛮大人123 2019-12-02 01:54:29 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

建个炫酷的简历网页,制作一个浪漫的表白网页,打造个人专属网盘,多种动手场景应用免费学!!!

回答

1、+用两种方式实现java对象序列化反序列化 //1使用jdk自带的序列化方式 public class MyObject implements Serializable{} //然后使用ObjectOutputStream.write实现序列化,ObjectInputStream.readObject方法进行反序列化 ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream("a.txt")); stream.writeObject(stream); ObjectInputStream stream2 = new ObjectInputStream(new FileInputStream("a.txt")); stream2.readObject(stream2); //2 使用json 工具实现Java对象的序列化 比如fastjson工具 JSON.ParseObject("{\"key\":\"value\"}") JSON.toJavaObject(jsonString,MyObject.class);
詹伟 2019-12-02 01:02:45 0 浏览量 回答数 0

问题

jfinal 里 redis 取用 gson 序列化的数据时报错?报错

@JFinal  一直报错, 后来才忽然想起来序列化方式不一样. 有什么好办法解决么?  在不更改原来的序列化存储方式的前提下.    Caused by: java.io.IOException: java.lang.Null...
爱吃鱼的程序员 2020-06-08 16:46:09 0 浏览量 回答数 1

回答

先从定义上说:Serializable是标识接口,标识实现该接口的对象可以被序列化(通过Java自身的ObjectInput, ObjectOutput)。而Externalizable继承自Serializable接口,其具体定义如下:public interface Externalizable extends java.io.Serializable { void writeExternal(ObjectOutput out) throws IOException; void readExternal(ObjectInput in) throws IOException, ClassNotFoundException; } 从功能上说:Serializable只是定义了序列化的标识,至于如何进行部分字段的序列化,可以用三种方式:Transient关键字添加writeObject和readObject方法使用ExternalizableExternalizable接口存在的意义就在于此,可以进行字段序列化的定制。
home3k 2019-12-02 01:49:12 0 浏览量 回答数 0

问题

dubbo 支持的通信协议?有哪些序列化协议?说下 Hessian 的数据结构?【Java问答】48

面试题 dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的? 面试官心理分析 上一个问...
剑曼红尘 2020-07-01 15:18:43 7 浏览量 回答数 1

回答

远程协议涉及到对象序列化的问题,不管是thrift、protobuf,SOAP,都必须找到一个合适的方式将内存中的对象转为二进制或者字符串在网络上传输,这个序列化方式如果是跨语言的(同时支持Python、Java、C#、C++、Ruby),往往会因为兼容,丢失一些Java对象特有的信息,这就导致一些复杂的嵌套对象(MAP嵌套List)很难还原正确。即使能传输,效率也很差(SOAP都是XML嵌套的字符串)。 所以在远程协议中,特别不建议使用嵌套超过两层的对象传输,建议单独设计简单的对象进行远程交互,Java中有种叫做“DTO”(数据传输对象)的设计方式,就是为了解决这种问题而折中的办法。 如果仅是支持Java语言,RMI也许更合适你的场景。
蛮大人123 2019-12-02 01:53:58 0 浏览量 回答数 0

回答

在java中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入诸如文件等IO流中,并可以从中再读取出来,并且对它进行反序列化恢复。通过这种方式,可以实现数据的远程传输、存储等
阳阳羊 2019-12-02 01:03:51 0 浏览量 回答数 0

问题

【百问百答】Java开发手册灵魂15问之为什么不建议在for循环中使用“+”进行字符串拼接

1. 什么是String,它是什么数据类型? 2. 创建String对象的不同方式有哪些? 3. 写一个方法来判断一个String是否是回文? 4. 如何让一个字符串变成小写或大...
huc_逆天 2021-01-15 10:47:35 7 浏览量 回答数 0

回答

对象序列化主要是指将内存之中保存的对象以二进制数据流的方式进行传输,要实现序列化的对象所在类必须实现 java.io.Seriliazable接口。
游客pklijor6gytpx 2019-12-02 03:19:10 0 浏览量 回答数 0

回答

在Java5之前的版本,使用双重检查锁定创建单例Singleton时,如果多个线程试图同时创建Singleton实例,则可能有多个Singleton实例被创建。从Java5开始,使用Enum创建线程安全的Singleton很容易。但如果面试官坚持双重检查锁定,那么你必须为他们编写代码。记得使用volatile变量。 为什么枚举单例在Java中更好 枚举单例是使用一个实例在Java中实现单例模式的新方法。虽然Java中的单例模式存在很长时间,但枚举单例是相对较新的概念,在引入Enum作为关键字和功能之后,从Java5开始在实践中。本文与之前关于Singleton的内容有些相关,其中讨论了有关Singleton模式的面试中的常见问题,以及10个Java枚举示例,其中我们看到了如何通用枚举可以。这篇文章是关于为什么我们应该使用Eeame作为Java中的单例,它比传统的单例方法相比有什么好处等等。 Java枚举和单例模式 Java中的枚举单例模式是使用枚举在Java中实现单例模式。单例模式在Java中早有应用,但使用枚举类型创建单例模式时间却不长.如果感兴趣,你可以了解下构建者设计模式和装饰器设计模式。 1)枚举单例易于书写 这是迄今为止最大的优势,如果你在Java5之前一直在编写单例,你知道,即使双检查锁定,你仍可以有多个实例。虽然这个问题通过Java内存模型的改进已经解决了,从Java5开始的volatile类型变量提供了保证,但是对于许多初学者来说,编写起来仍然很棘手。与同步双检查锁定相比,枚举单例实在是太简单了。如果你不相信,那就比较一下下面的传统双检查锁定单例和枚举单例的代码: 在Java中使用枚举的单例 这是我们通常声明枚举的单例的方式,它可能包含实例变量和实例方法,但为了简单起见,我没有使用任何实例方法,只是要注意,如果你使用的实例方法且该方法能改变对象的状态的话,则需要确保该方法的线程安全。默认情况下,创建枚举实例是线程安全的,但Enum上的任何其他方法是否线程安全都是程序员的责任。 你可以通过EasySingleton.INSTANCE来处理它,这比在单例上调用getInstance()方法容易得多。 具有双检查锁定的单例示例 下面的代码是单例模式中双重检查锁定的示例,此处的getInstance()方法检查两次,以查看INSTANCE是否为空,这就是为什么它被称为双检查锁定模式,请记住,双检查锁定是代理之前Java5,但Java5内存模型中易失变量的干扰,它应该工作完美。 你可以调用DoubleCheckedLockingSingleton.getInstance()来获取此单例类的访问权限。 现在,只需查看创建延迟加载的线程安全的Singleton所需的代码量。使用枚举单例模式,你可以在一行中具有该模式,因为创建枚举实例是线程安全的,并且由JVM进行。 人们可能会争辩说,有更好的方法来编写Singleton而不是双检查锁定方法,但每种方法都有自己的优点和缺点,就像我最喜欢在类加载时创建的静态字段Singleton,如下面所示,但请记住,这不是一个延迟加载单例: 单例模式用静态工厂方法 这是我最喜欢的在Java中影响Singleton模式的方法之一,因为Singleton实例是静态的,并且最后一个变量在类首次加载到内存时初始化,因此实例的创建本质上是线程安全的。 你可以调用Singleton.getSingleton()来获取此类的访问权限。 2)枚举单例自行处理序列化 传统单例的另一个问题是,一旦实现可序列化接口,它们就不再是Singleton,因为readObject()方法总是返回一个新实例,就像Java中的构造函数一样。通过使用readResolve()方法,通过在以下示例中替换Singeton来避免这种情况: 如果Singleton类保持内部状态,这将变得更加复杂,因为你需要标记为transient(不被序列化),但使用枚举单例,序列化由JVM进行。 3)创建枚举实例是线程安全的 如第1点所述,因为Enum实例的创建在默认情况下是线程安全的,你无需担心是否要做双重检查锁定。 总之,在保证序列化和线程安全的情况下,使用两行代码枚举单例模式是在Java5以后的世界中创建Singleton的最佳方式。你仍然可以使用其他流行的方法,如你觉得更好,欢迎讨论。
珍宝珠 2020-02-07 16:58:59 0 浏览量 回答数 0

回答

"当Java程序首次通过下面6种方式来使用某个类或接口时,系统就会初始化该类或接口。 创建类的实例。为某个类创建实例的方式包括:使用new操作符来创建实例,通过反射来创建实例,通过反序列化的方式来创建实例。 调用某个类的静态方法。 访问某个类或接口的静态Field,或为该静态Field赋值。 使用反射方式来强制创建某个类或接口对应的 java.lang.Class 对象。例如代码:Class.forName(""Person""),如果系统还未初始化 Person 类,则这行代码将会导致该Person 类被初始化,并返回 Person 类对应的 java.lang.Class 对象。关于 Class 的forName方法请参考13.3节。 初始化某个类的子类。当初始化某个类的子类时,该子类的所有父类都会被初始化。 直接使用java.exe命令来运行某个主类。当运行某个主类时,程序会先初始化该主类。"
星尘linger 2020-04-12 19:30:14 0 浏览量 回答数 0

回答

集群######回复 @无极限 : 看你的描述目测也没多少事务性的东西######回复 @无极限 : 我是说如果可以,做一个Java集群多机并行处理不就行了嘛######数据一开始是存储在集群中的,然后抽取部分缓存在redis中,程序周期性会从redis中拉取,并实例化为具体的对象,######你的实体类是啥?类信息?还是数据?######“实体类”比如用户信息类Person。10w个Person,要暂时缓存在redis中,而且会周期性实例化到内存中######哦,在于你得序列化方式是啥?######有好几种序列化的三方件,性能差异还挺大的###### @乌龟壳   @爱吃窝窝头   比如把“张三-28-硕士-工作地址” 实例化为Person(“张三”,28,“硕士”,“工作地址”)。字符串与实体类直接的高效互转,有没有推荐的方案######protocolbuffer 可以跨语言,性能还可以,如果是纯java 应该有更好的,你可以找找,我记得有篇帖子性能比较的,你可以搜搜######protocolbuffer###### 实体类转换为字符串是什么方式?json?如果是json,改用fastjson试试? 如果字符串与实体类互转实在是耗时太长,建议实体类与实体类进行二进制互转,kryo、protostuff序列化库都不错,而且存储空间占用比字符串更少###### https://www.oschina.net/question/12_91812几种 Java 序列化方案的性能比较###### 现在序列化和反序列化较快的就是  fastjson 该处理的异常都给你处理了,写出来的代码也很简洁######选择一个性能好的序列化框架###### 缓存对象id,后期根据id集合处理后续业务
kun坤 2020-06-06 16:30:47 0 浏览量 回答数 0

回答

有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式。 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 3.调用对象的clone()方法。 4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。
醉书 2019-12-02 01:02:47 0 浏览量 回答数 0

问题

redis 存储自定义java对象有几种方式?

如果要把一个自定义的java对象存储到redis中,除了一般使用json和序列化之外,还有一种,可以配置redis的配置文件,操作hash类型,直接使用HGETALL (或者其他操作hash的命令),取出来就会是一个java对象??...
蛮大人123 2019-12-01 19:47:46 2328 浏览量 回答数 1

回答

Java原生序列化 只要让类实现 Serializable 接口就行,序列化具体的实现是由ObjectOutputStream和ObjectInputStream来实现的 缺点: 1:序列化码流太大 2:序列化效率低 3:无法跨语言 优点: 1:简单 JSON序列化 JSON 可能是我们最熟悉的一种序列化格式了,JSON 是典型的 Key-Value 方式,没有数据类型,是一种文本型序列化框架,JSON 的具体格式和特性,网上相关的资料非常多,这里就不再介绍了。他在应用上还是很广泛的,无论是前台 Web 用 Ajax 调用、用磁盘存储文本类型的数据,还是基于 HTTP 协议的 RPC 框架通信,都会选择 JSON 格式。 缺点: 1:JSON进行序列化的额外空间开销比较大,对于大数据量服务就意味着需要巨大的内存和磁盘开销 2:JSON没有类型,但像Java这种强类型语言,需要通过反射统一解决,所以性能不会太好 优点: 1:简洁明了 Hessian Hessian 是动态类型、二进制、紧凑的,并且可跨语言移植的一种序列化框架。Hessian 协议要比 JDK、JSON 更加紧凑,性能上要比 JDK、JSON 序列化高效很多,而且生成的字节数也更小 Student student = new Student(); student.setNo(101); student.setName("HESSIAN"); //把student对象转化为byte数组 ByteArrayOutputStream bos = new ByteArrayOutputStream(); Hessian2Output output = new Hessian2Output(bos); output.writeObject(student); output.flushBuffer(); byte[] data = bos.toByteArray(); bos.close(); //把刚才序列化出来的byte数组转化为student对象 ByteArrayInputStream bis = new ByteArrayInputStream(data); Hessian2Input input = new Hessian2Input(bis); Student deStudent = (Student) input.readObject(); input.close(); System.out.println(deStudent);复制代码 缺点: 1:官方版本对Java里面一些常见对象的类型不支持, 比如LinkedHashMap、LinkedHashSet 等,但是可以通过扩展CollectionDeserializer 类修复, Locale 类,可以通过扩展 ContextSerializerFactory 类修复; Byte/Short 反序列化的时候变成 Integer 优点: 1:相对于JDk,JSON,更加高效,生成的字节数更小 2:有非常好的兼容性和稳定性 Protobuf Protobuf 是 Google 公司内部的混合语言数据标准,是一种轻便、高效的结构化数据存储格式,可以用于结构化数据序列化,支持 Java、Python、C++、Go 等语言。Protobuf使用的时候需要定义 IDL(Interface description language),然后使用不同语言的 IDL编译器,生成序列化工具类 缺点: 1:为了提高性能,protobuf采用了二进制格式进行编码。这直接导致了可读性差 2:对于具有反射和动态语言来讲,用起来比较费劲 优点: 1:高效 2:支持多种语言 3:支持向前,向后兼容 Thrift Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式,用户通过Thrift的IDL(接口定义语言)来描述接口函数及数据类型,然后通过Thrift的编译环境生成各种语言类型的接口文件,用户可以根据自己的需要采用不同的语言开发客户端代码和服务器端代码。 缺点: 1:没有官方文档 2:Thrift序列化二进制不可读,调试困难 3:buf fix 和更新不积极,维护成本过高 4:RPC 在 0.6.1 升级到 0.7.0 是不兼容的 优点: 1:特性丰富 2:性能不错 3:有很多开源项目的周边支持 都是 thrift
__梦 2021-03-18 00:35:04 0 浏览量 回答数 0

回答

我没用过java,但是对于这种高级语言序列化成json以后,反序列化如果想还原成原来的数据类型,比如原来是浮点类型float、double、decimal,到js里面实际只有一种浮点类型,还有比如一些属性是你的自定义类型是enum,序列化的时候想直接转换成string。在反序列化的时候,很可能会出现精度丢失或者干脆就是转换失败,比较合适的方案就是,采用类似c#attribute的方式,在反序列化的时候提供不同的converter来反序列化某些属性。c#里面有款开源的json框架可以帮到你http://json.codeplex.com/   json反序列回Model,需要先使用TableMapping.me().getTable(modelClass)得到model各属性的类型,针对类型进行精确转换,写个工具类搞定,jfinal未来考虑添加此功能,楼主要是提前实现了,可以先分享出来。我正打算这么做!现在开发进度卡住了,我必须得先写个工具类搞定。弄好了分享。
爱吃鱼的程序员 2020-06-14 19:02:06 0 浏览量 回答数 0

问题

Flink使用java的基础类型如int和string.和使用原生的IntValue #Flink

Flink使用java的基础类型如int和string.和使用原生的IntValue和StringValue序列化方式一样吗?效率相比如何? #Flink...
黄一刀 2020-05-26 20:33:33 9 浏览量 回答数 1

回答

首先把错误的日志发上来。 出现错误的原因是,partitions之间进行shuffle,数据要进行序列化以及反序列化,所以gc容易占用很久时间。 建议 1.使用kryo     conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") 很省空间,效率比默认的java 序列化要好。 2.使用mappartitions而不是map,mappartitions是针对一个partitions进行处理。 为啥一定要返回数组呢?是不是可以先在map中生成<k,v>的形式,而在reduce中把结果给聚合成数组的形式? ###### 引用来自“blue1110”的评论 首先把错误的日志发上来。 出现错误的原因是,partitions之间进行shuffle,数据要进行序列化以及反序列化,所以gc容易占用很久时间。 建议 1.使用kryo     conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") 很省空间,效率比默认的java 序列化要好。 2.使用mappartitions而不是map,mappartitions是针对一个partitions进行处理。 为啥一定要返回数组呢?是不是可以先在map中生成<k,v>的形式,而在reduce中把结果给聚合成数组的形式? 非常感谢回答。当时之所以想要返回数组,是因为当时对于某一个键值有一个数组与之对应(程序是照着单机的“翻译”过来的,所以总是带着单机运行的一些残留思想)。现在想想,使用flatMap的<k,v>形式或许是更好的做法。 最后解决的方法是抛弃了那个数组,把需要返回的一些数据拼成了字符串传出完事。 至于不同的序列化方式我没有尝试过,需要的时候或许可以试一下。
爱吃鱼的程序员 2020-06-04 16:48:31 0 浏览量 回答数 0

回答

1、Java NIO(新IO)是Java的替代IO API(Java 1.4版本),2、意味着替代标准Java IO和Java Networking API。 3、Java NIO提供了与标准IO API不同的使用IO的方式。4、使用1.4以后的版本就会支持NIO接口,使用新版本的JDK,包括Stream或者Socket编程可以获得最新的NIO的支持5、Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架。6、Netty源码可以在这里下载,https://github.com/netty/netty/,建议先从基础的例子入手,写个netty聊天通信的例子,然后在看Server和Client源码,以及序列化机制。
徐雷frank 2019-12-02 01:47:18 0 浏览量 回答数 0

回答

1、Java NIO(新IO)是Java的替代IO API(Java 1.4版本),2、意味着替代标准Java IO和Java Networking API。 3、Java NIO提供了与标准IO API不同的使用IO的方式。4、使用1.4以后的版本就会支持NIO接口,使用新版本的JDK,包括Stream或者Socket编程可以获得最新的NIO的支持5、Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架。6、Netty源码可以在这里下载,https://github.com/netty/netty/,建议先从基础的例子入手,写个netty聊天通信的例子,然后在看Server和Client源码,以及序列化机制。
徐雷frank 2019-12-02 01:46:42 0 浏览量 回答数 0

问题

【百问百答】《〈Java开发手册(泰山版)〉灵魂13问》

什么是三目运算符什么是自动装箱和自动拆箱三目运算符为什么会出现 NullPointerExceptionHashMap 容量初始化流程是什么HashMap 为什么推荐设置初始化容量HashMap 初始化容量设置多少合适HashMap 扩容机...
一人吃饱,全家不饿 2021-01-05 14:20:12 1 浏览量 回答数 0

问题

通过装饰器进行对象XML映射的Python框架?

在对Java 中的XML序列化框架Simple XML 的易用性印象深刻之后,我尝试寻找一种Python副本,该副本将有助于以类似的方式实现类及其XML序列化。到目前为止,尽管有很多有趣的候选人&#...
祖安文状元 2020-02-21 15:56:27 0 浏览量 回答数 1

回答

最基本的数据库创建,增删改查总会吧?如果这个都不会,我感觉那就不是简单的不会做接口了。。。。。然后java写接口其实说白了不就是把一些参数post或者get到服务器,然后你做一些处理,然后把数据以json或者xml形式返回吗?java也是有实体类的吧,最简单的方式就是,把要返回的一些数据,例如“文章列表”数据,装入一个实体类,例如List ,然后用一些开源包,直接序列化这个 List,json都不用自己拼。到了android这边,模拟请求,例如用 httpClient类的第三方包 请求回json,然后用第三方开源解析的工具,例如 gson,直接把json反序列化,这样就能在这边直接还原到 List 这个实体类了,然后你懂的 汗。List 后面的一些字符被吃掉了。
我是花 2019-12-02 01:30:00 0 浏览量 回答数 0

问题

【漏洞公告】CVE-2017-1000353:Jenkins Java反序列化远程代码执行漏洞

近日,Jenkins 官方发布安全公告,公告介绍Jenkins版本中存在Java反序列化高危漏洞,可以导致远程代码执行。 具体详情如下:                              ...
正禾 2019-12-01 21:57:18 3331 浏览量 回答数 0

问题

[@徐雷frank][¥20]求教JAVA中序列化那种方式最高效

...
冯.布莱恩 2019-12-01 20:26:35 558 浏览量 回答数 1

回答

可以这样理解:arg0和arg1对应的对象在这个方法外部被创建出来,然后它们两个被当作方法的参数传递到这个方法中。然后在这个方法里,定义imageView ,将arg0赋值给它;定义了bitmap,将arg1赋值给它。(真实是,imageView指向arg0对应对象的堆内存,bitmap指向arg1对应对象的堆内存。imageView和arg0对应同一个对象,bitmap和arg1对应同一个对象。)你所想要问的,有几种创建对象的方式:Java中创建对象的四种方法 收藏Java中创建对象的四种方式1.用new语句创建对象,这是最常见的创建对象的方法。2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。第一种最常见
蛮大人123 2019-12-02 02:16:45 0 浏览量 回答数 0

回答

序列化方式不同,Java和tairclient(C++)实际上处理后Key是不一样的。
浅墨 2019-12-02 02:44:18 0 浏览量 回答数 0

回答

建议是问题驱动的方式去学习源码。因为每个框架的源码太多,带着问题去学习,比如只研究连接池,或者序列化问题,然后针对性看源代码。Java开源的项目太多了
徐雷frank 2019-12-02 01:44:10 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT