08 2020 档案
摘要:之前说了volatile加在全局变量上, 可以保证变量的可见性. 那么volatile到底是怎么保证变量的可见性的呢? 首先, 我们来说一下, java代码是怎么执行的. 一、java代码从jvm虚拟机到底层cpu等硬件是如何交互运行的? 先来看看程序代码在jvm虚拟机层面是如何工作的 packag
阅读全文
摘要:一. 指令重排 令重排序:java语言规范规定JVM线程内部维持顺序化语义。即只要程序的最终结果 与它顺序化情况的结果相等,那么指令的执行顺序可以与代码顺序不一致,此过程叫指令的 重排序。 指令重排序的意义是什么? JVM能根据处理器特性(CPU多级缓存系统、多核处 理器等)适当的对机器指令进行重排
阅读全文
摘要:最近在研究 jvm ,需要查看字节码. 整理使用intellij idea 查看Java字节码 使用方式如下: 内容参考: Program: /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/javap Argu
阅读全文
摘要:一. 什么是JMM模型? JMM描述的是一组规范, 它类似于cpu和内存的架构. 这套模型是为了适配不同的操作系统, 不同的硬件结构, 屏蔽掉底层的微小的差异. jvm为什么可以跨平台呢? 有一方面就是JMM内存模型的设计. 尤其是多线程, 再调底层操作系统的时候, 为了屏蔽底层细节的差异, jav
阅读全文
摘要:一. 计算机的五大组成部分 1. 控制器(Control): 是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设 的访问等。 2. 运算器(Datapath): 运算器的功能是对数据进行各种算术运算和逻辑运算,即对
阅读全文
摘要:一. feign做了哪些事? 上面是一段feign的代码, 系统是如何通过feign, 将reduceStock方法转换成stock服务的接口调用的呢? 他做了两件事 1. 讲reduceStock方法中的入参拼接到请求地址 2. 讲请求的域名解析对应到指定的服务ip+端口号port 这一步使用到了
阅读全文
摘要:一. ribbon的使用 通过前面对微服务ribbon的学习, 知道了ribbon的基本使用方式。 比如:我的order服务,想要调用stock减库存的操作。 应该怎么实现呢? 第一步:引入ribbon @LoadBalanced @Bean public RestTemplate getRestT
阅读全文