2,代理模式有什么好处?
?????? 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
3、动态代理的作用:
?????? Proxy类的代码量被固定下来,不会因为业务的逐渐庞大而庞大;
?????? 可以实现AOP编程,实际上静态代理也可以实现,总的来说,AOP可以算作是代理模式的一个典型应用;
?????? 解耦,通过参数就可以判断真实类,不需要事先实例化,更加灵活多变。
JVM、JRE、JDK、JIT的区别:
?????? JVM:Java虚拟机,是整个Java实现跨平台的核心部分,所有Java程序会首先被编译为.class类文件,这种文件可以在JVM上执行。
?????????????? 也就是说class不直接与OS对应,而是通过JVM和OS交互,由JVM将程序解释给本地系统执行。
?????????????? 只有JVM还不能让class执行,解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
?????????????? JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
?????? JRE:Java运行环境,运行基于Java语言编写的程序必不可少的运行环境。加热包括JVM、运行时类库和Java应用启动器。与JDK不同,JRE是Java运行环境,不是开发环境,没有如编译器、调试器这样的开发工具。
?????? JDK:Java开发工具包。包含jre目录,jre目录包含bin和lib,bin可以被认为是JVM,lib是JVM工作所需类库,JVM+lib合起来被称为JRE。
???????????????? 包含JRE、Java工具、Java基础类库(比如rt.jar).
?????? JIT:即使编译器 当开启JIT时,JVM会分析Java应用程序函数调用并且编译字节码为本地更高效的机器码。JIT通常会为总繁忙的函数调用提供更高的优先级。
JVM执行Java应用程序流程:
?????? 1、Java源码通过编译器转为平台无关的字节码(bytecode)或Java class文件。
?????? 2、在启动Java应用程序后,JVM会在运行时加载编译后的类并通过Java解释器执行适当的 语义计算。
?????? 3、当开启JIT时,JVM会分析Java应用程序的函数调用并且(达到内部一些阀值后)编译字节码为本地更高效的机器码。JIT流程通常为最繁忙的函数调用提供更高的优先级。
?????? 4、一旦函数调用被转为机器码,JVM会直接执行而不是“解释执行”。
?????? 5、上述过程会在程序运行过程中不断提高性能。
RMI和RPC的区别:
?????? RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。
?????? RMI:远程方法调用(Remote Method Invocation)。能够让在客户端Java虚拟机上的对象像调用本地对象一样调用服务端java 虚拟机中的对象上的方法。
?? 1:方法调用方式不同:
?? RMI中是通过在客户端的Stub对象作为远程接口进行远程方法的调用。每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口(stub)上,那么这个新方法就不能被RMI客户方所调用。
?? RPC中是通过网络服务协议向远程主机发送请求,请求包含了一个参数集和一个文本值,通常形成“classname.methodname(参数集)”的形式。RPC远程主机就去搜索与之相匹配的类和方法,找到后就执行方法并把结果编码,通过网络协议发回。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-87102-6.html
打
美颜盛世韬宝唱的赞赞