ZibuのHippocampus

人生天地间,忽如远行客

反射(Reflecting)是Java的特征之一,它允许Java程序在运行期间,操作类或对象的内部属性。

Oracle官方对反射的解释是:

Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on their underlying counterparts, within security restrictions.
The API accommodates applications that need access to either the public members of a target object (based on its runtime class) or the members declared by a given class. It also allows programs to suppress default reflective access control.

反射使Java代码具有在安全限制下发现装载类字段,方法和构造器并且使用反射字段,方法和构造来操作类的的底层对象。

API容纳需要访问目标对象的公共成员(基于其运行时类)或给定类声明的成员的应用程序。它还允许程序抑制默认的反射访问控制。

阅读全文 »

正在施工 敬请期待

分布式事务存在多种实现模式,详情可查看分布式事务解决方案一文。

本文讲述TCC分布式事务的原理及其实现。

阅读全文 »

在Java程序运行期间,JVM运行时间长于对象存活时间,使用Java序列化机制可以将对象序列化成二进制字节码存储在文件之中,待下次启动时重新读取。序列化对象时保存的是对象的状态,即为他的成员变量,不会关注类中的静态变量。

Java程序RPC调用时或通过网络传输对象,都需要将对象序列化进行传输,接收方再对对象反序列化。(数据在网络中只能以二进制传输)

阅读全文 »

当程序需要某个类时,如果该类尚未加载至内存,则JVM会使用加载、链接、初始化三个步骤加载Java Class文件,并为其创建java.lang.Class对象。

类加载器由 JVM提供,也可以继承 ClassLoader类来实现自定义的加载器。

常见的是ClassNotFoundException和NoClassDefFoundError等异常。

阅读全文 »

尚在🚧 尽请期待

在微服务应用场景中,不同模块相互调用,不再是传统项目中的函数调用,而是跨服务器的Http请求。倘若每次请求都需要编写Http请求头,未免太过于冗杂。Feign的作用就是为了解决这个问题,自动封装了HTTP请求,做到了以声明式调用的方式,调用其他模块。

阅读全文 »

Eureka, SpringCloud组件成员之一,负责服务注册与发现,支持服务动态扩容,缩容,失效剔除等体型。

阅读全文 »
0%