1.做题时候遇到的知识
1.受检查异常和运行时异常
运行时异常要程序员判断是否捕获或者处理!
受检查异常则要不被Try/Catch,要么自己Throw出来!跟照着路径找东西(Found)有关系的大体是!
2.synchronized
修饰非静态方法 锁的是this 对象
修饰静态方法 锁的是class对象
3.SPU和SKU
SPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。
SKU = Stock keeping Unit 或者SKU 是对每一个产品和服务的唯一标示符,该系统的使用SKU的植根于数据管理,使公司能够跟踪系统,如仓库和零售商店或产品的库存情况。
4.volatile的功能
volatile的作用就是当一个线程更新某个volatile声明的变量时,会通知其他的cpu使缓存失效,从而其他cpu想要做更新操作时,需要从内存重新读取数据。具体的通知方式,一种是通过某种协议,比如MESI;再就是对总线加锁,控制变量的读取。具体硬件上怎么个流程,我就搞不清楚了
引出
原子性
即要么全做,要么全不做。比如从a银行转钱到b银行。
在编程中,除了long或者double外的变量更新就是原子操作。long和double除外,是因为它们在32位的操作系统上,会被分成两部分进行更新,此时就不是原子的。
再比如最常见的i++也不是原子的,它相当于先读取i,进行+1操作,更新三个步骤进行。
可见性
多个线程访问同一个变量时,这个变量被修改后,能被其他的线程看到。
有序性
synchronized与volatile
synchronized保证三大性,原子性,有序性,可见性,volatile保证有序性,可见性,不能保证原子性
2.编程时遇到的知识
1. 拿到前端的代码怎么办?
找到config中的后端环境配置dev.env.js
配置端口(BASE API)–>web-service的端口号
之后找到***index.js***文件去配置其中的***host(127.0.0.1)与***post
最后cmd中使用 cd 项目名
在项目下使用命令npm run dev
2.Dubbo框架的运行原理!
监控中心:监控注册资源(zookeeper)
消费端(dubbo)服务端(dubbo):调用服务,提供服务
注册中心(zookeeper):同步消费端与服务端请求
这个框架是用JDK写的所以,他的的远程调用是用RPC实现的。