
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程数据处理是大多数Java程序员需要熟练掌握的一个编程基础知识,下面我们就通过案例分析来简单了解一下,Java编程数据处理方法分析。
1、序列化和反序列化
序列化是将对象的信息转换为可传输或可存储形式的过程。反序列化就是反过来让这些可传输的、可存储的信息变回对象。
传输的序列化除了安全性的考虑,因为涉及到和三方通信,所以还有重要的一点是可读性和不变性。而存储的链路短,可控,所以更讲究效率。
传输常用的序列化手段是JSON这样人眼可读的。而存储会使用protostuff这种将key值映射成编码来传输的。因为1,2,3比one、two、four更省空间更高效。但是传输中都用编码,解析时就很难判断它的意义。双方还要进行额外的约定。本来3代表four,中间加了一个three,3代表three的话,对方没有及时被通知,那么解析传输过来的消息就是错的。
2、反射
Java反射是在运行时,对于任何一个类,都可以知道这个类有哪些方法和属性。对于任何一个对象,都能对它的方法和属性进行调用。
常用数据转换工具,比如Spring的RequestParam、RequestBody、ResponseBody内部就用了反射机制。还有Jackson等工具类。甚至在业务代码中直接使用反射也是很常见的。
3、动态代理
代理模式是为了提供增强的或不同的操作,而插入来替代实际对象的对象。这些操作涉及到与实际对象的通信,所以称为代理。
Spring主要的两大思想IoC和AOP。对于IoC,利用的是反射机制。而AOP使用了动态代理,当然底层也是反射。
JDK动态代理只能给有接口的类代理。本质是通过反射获取要执行的方法,并在执行前或者后加入一些代理处理操作。cglib本质上用继承的方法实现的,是通过动态生成一个子类去覆盖所要代理的类。用final修饰的不能被覆盖的就不代理了。spring动态代理是优先使用JDK动态代理,如果目标没有实现任何接口,则创建一个cglib代理。如果几个类实现了都实现了一个通用接口,比如Runnable,并且加了Component请spring来负责其生命周期。这时候会抛出一个Proxy代理异常。说期望加载一个Bean,实际上实现却不只一个。这时候可以在这个类上加下面标签强制使用cglib代理来解决。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。