场景:几万行的数据从后端传输到前端,后端先序列化成字符串,传输到前端再反序列化,在序列化和反序列化时报内存溢出异常
原因:序列化使用的类库不支持过长的字符串,对长字符串的很多常规操作都会导致内存溢出
解决方案:在后端将大列表拆分成多个小列表,分别序列化,再将这些小字符串拼接成大字符串,传输到前端后,前端先根据后端约定的分隔符将大字符串拆分成多个小字符串,分别反序列化,再加到一个列表中
注意事项:拆分、组装字符串时,由于是操作大字符串,很多常规的方法不能使用,例如split、java端的stringbuilder.tostring和字符串相加等等,需要自己写一些底层方法来支持