摘要:
面向对象特征和原则 四大特征:封装、抽象、继承、多态 封装 把数据和对数据的操作隐藏到一个方法体内,对外只暴露这个方法体的接口,让调用者无需考虑内部实现细节只管调用完成对应的功能即可。优点是解耦,方法有明确的功能,内部可以随意修改而不需要考虑外部逻辑,提高了安全性和复用性。 继承 被继承的叫父类,继 阅读全文
posted @ 2021-04-23 23:12
i%2
阅读(51)
评论(0)
推荐(0)
摘要:
Java中的checked异常和unchecked异常 Java语言规范对这两个定义十分简单,将派生于Error或者RuntimeException的异常称为unchecked异常,所有其他的异常成为checked异常。 unchecked异常:表示错误,程序的逻辑错误。不需要在代码中显式地捕获 阅读全文
posted @ 2021-04-23 23:10
i%2
阅读(59)
评论(0)
推荐(0)
摘要:
float和double为什么能表示的范围大?为什么会失真? float能表示有效位数为6-7位,double有效位数为15-16位(负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 阅读全文
posted @ 2021-04-23 23:08
i%2
阅读(105)
评论(0)
推荐(0)
摘要:
动态代理 jdk动态代理:根据业务方法名,调用业生成的代理对象实例的同名方法。 cglib动态代理:通过继承业务类,并重写业务类的方法,生成的是业务类的子类。因为接口也能被继承,所以接口也可以被代理。 jdk低版本(jdk8以前)cglib创建代理对象性能高,但耗时久,故单例对象适合用cglib创建 阅读全文
posted @ 2021-04-23 23:07
i%2
阅读(47)
评论(0)
推荐(0)
摘要:
RPC架构(怎么设计RPC) 服务层,Service,其中主要部分就是动态代理,主要用于将服务提供者的接口封装成远程服务调用。 过滤器层,服务调用职责链,提供多种调用切面供框架自身和使用者扩展,例如负载均衡,性能统计,服务调用完成通知,失败重试等。 RPC 层,这里就是 RPC 框架的核心部分,包括 阅读全文
posted @ 2021-04-23 23:00
i%2
阅读(44)
评论(0)
推荐(0)
摘要:
Reactor模型 Reactor分为单线程版和多线程版,主从Reactor多线程模型(Nginx、Memcached和Netty都是采用这种实现)如下: 从主线程池中随机选择一个Reactor线程作为acceptor线程,用于绑定监听端口,接收客户端连接 acceptor线程接收客户端连接请求之后 阅读全文
posted @ 2021-04-23 22:58
i%2
阅读(67)
评论(0)
推荐(0)