zoukankan      html  css  js  c++  java
  • 反射

    57.什么是反射?

    通俗的讲就是反射可以在运行时根据指定的类名获得类的信息

    58.什么是 java 序列化?什么情况下需要序列化?

    序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

        当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。

     只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包

    1.概念

      序列化:把Java对象转换为字节序列的过程。
      反序列化:把字节序列恢复为Java对象的过程。

    2.用途

      对象的序列化主要有两种用途:
      1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
      2) 在网络上传送对象的字节序列。

    59.动态代理是什么?有哪些应用?

    动态代理是一种在运行时动态地创建代理对象,动态地处理代理方法调用的机制。

    实际上它是一种代理机制。代理可以看做是对调用目标的一个封装,直接通过代理来实现对目标代码的调用

    应用一: Spring AOP的动态代理实现
    Spring AOP的动态代理实现主要有两种方式,JDK动态代理和CGLIB字节码生成。

    默认情况下,如果Spring AOP发现目标对象后实现了相应的interface,则采用JDK动态代理机制为其生成代理对象。如果没有发现接口,则采用CGLIB的方式为目标对象生成动态的代理对象实例

    应用二: RPC框架中的应用
    RPC即远程过程调用,它的实现中使用到了动态代理,关于RPC的具体原理参照 你应该知道的RPC原理 等文章

    60.怎么实现动态代理?

    Spring的两种动态代理:Jdk和Cglib 的区别和实现

  • 相关阅读:
    SQL TO XML
    C#中ArrayList 与 string、string[]数组 的转换
    C# 文件下载四方法
    Ilist<>与List<>的区别
    lamda表达式
    遍历实例对象的所有属性
    Readonly 与Const
    使用eclipse上传项目到开源中国代码托管Git@osc教程
    junit4中Assert断言的使用以及Mockito框架mock模拟对象的简单使用
    【每天一题ACM】 斐波那契数列(Fibonacci sequence)的实现
  • 原文地址:https://www.cnblogs.com/zousong/p/10513324.html
Copyright © 2011-2022 走看看