摘要:
implements Serializable 1. 序列化和反序列化 序列化: 把对象转换为字节序列的过程称为对象的序列化. 反序列化: 把字节序列恢复为对象的过程称为对象的反序列化. 在Java和其他语言进行通信的时候, 需要将对象转化成一种通用的格式例如Json( 转换成大家都认识的对象 ), 阅读全文
摘要:
Http和HTTPS Tags: 面试 1. 为什么需要Https 1.1 Http协议的缺点 通信使用明文传输,内容可能会被窃听。 不验证通信方的身份,有可能遭遇跨站请求伪造。 无法证明报文的完整性,有可能发生报文被修改的状况。 1.2 Https如何解决上述问题。 Https是在Http的基础之 阅读全文
摘要:
三次握手和四次挥手 序号: seq序号, 占32位, 用来标识从TCP源端向目地端发送的字节流, 发起方发送数据的时候对此进行标记。 确认序号: ack序号占32位,只有ACK标志位为1的时候, 确认序号字段才有效,ack=seq+1. 标志位: 共6个,即URG, ACK, PSH, RST, S 阅读全文
摘要:
RPC调用和HTTP调用的区别 标签(空格分隔): 分布式 1. OSI七层网络模型 在说RPC和HTTP的区别之前,需要了解一下计网基础的OSI七层网络结构模型。 1. 应用层:定义了用户在网络中进行通信和传输数据的接口,一般情况下应用都是直接和应用层进行交互的。 2. 表示层:定义不同系统中数据 阅读全文
摘要:
[toc] Spring 标签(空格分隔): Spring Spring通过配置文件去描述 和`Bean Java Bean Bean Spring IoC Bean`的 实例缓存 , 生命周期管理 , Bean代理实例 , 事件发布 , 资源装载 等高级服务. 实例缓存: 对于 单例模式的 , 在 阅读全文
摘要:
类加载过程本质上就是类加载器根据类的全限定名(包名+类名)去找到对应的class字节码文件内容,然后将字节码文件加载到虚拟机方法区的过程: 按照虚拟机规范,从class文件加载到内存中的类、到类的卸载出内存为止,他的生命周期包含以下七个阶段。 **加载:**根据全限定名称去寻找这个class的字节码 阅读全文
摘要:
CAS / ABA 标签(空格分隔): 操作系统 1. CAS 解决 Volatile 不保证原子性的问题 [Volatile不保证原子性的解决方案][1], 在其中我们可以看到我们通过 , 获取值并且将其+1, 重点在于 通过 乐观锁 的方法, 相当于实现了原子性的操作. 2. CAS 导致的 A 阅读全文
摘要:
IOC/AOP 标签(空格分隔): Spring 什么是IoC 借助"第三方" 实现具有依赖关系的对象之间的解耦. 将各个对象类封装之后, 通过IoC容器来关联这些对象类, 这样对象和对象之间就通过IoC容器进行联系, 但对象和对象之间并没有什么直接联系. 这样就做到了具有依赖关系的对象之间的解耦. 阅读全文
摘要:
Volatile 标签(空格分隔): 进程/线程 操作系统 Java虚拟机提供的轻量级的同步机制 1. 保证可见性 不同的线程进入共享内存中读取数据之后, 在各自的工作空间对数据一通操作, 然后写入共享内存中, 这个时候因为共享内存的数据改变, 这个时候会通知其他读取该共享变量的线程, 通知该数据已 阅读全文
摘要:
观察者模式 标签(空格分隔): 设计模式 观察者模式: 当对象之间存在一对多的关系的时候, 则使用观察者模式. 比如当一个对象呗修改的时候, 则会自动通知他的依赖对象, 观察者模式属于行为模式 优点 观察者模式实现了动态联动 观察者模式实现了广播通信 缺点 如一个主题被大量观察者观察, 则通知所有的 阅读全文