2020-10_开发经验集

97 阅读2分钟

1. java 1.7 新规范, 可以在数值内加下划线,以增强可读性。

  • 不能在数值的前和后加下划线
  • 不能在小数点前后加下划线
  • 不能在多个连续非数值数字间加下划线

2. 什么是 CAS 机制?

CAS(Compare and Swap)比较并替换,CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。
更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。
CAS的缺点:

  • CPU开销过大
    在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很到的压力。
  • 不能保证代码块的原子性
    CAS机制所保证的只是一个变量的原子性操作,而不能保证整个代码块的原子性。比如需要保证3个变量共同进行原子性的更新,就不得不使用synchronized了。
  • ABA问题

3. Maven 如何配置 HTTP 代理

在企业开发,有很多公司考虑到网络安全都会使用内网,一些刚到公司的小伙伴装完环境后会发现,因为连不上外网导致Maven库下不下来,这个时候就需要在Maven中配置代理。
具体操作步骤如下:
1.打开下载的Maven文件进去 conf 文件夹,找到 settings.xml 文件
2.打开 settings.xml 文件,找到 标签,将下面的代码粘进去

<proxy>
        <!--id 代理的名称(随便设)-->
        <id>optional</id>
        <!--true 表示生效-->
        <active>true</active>
        <!--协议-->
        <protocol>http</protocol>
        <!--本机上网用户名及密码,如果没有,请注释或者是删除-->
        <username>*******.ex</username>
        <password>a*169646</password>
        <!--公司上网使用ip及端口,即代理,这里替换成相对应的ip和端口-->
        <host>127.0.0.1</host>
        <port>11171</port>
        <!--填写不用代理的地址,以竖线|分割多个地址,一般填写本地Maven仓库地址-->
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

4. 注解 @JsonUnwrapped 将对象扁平

参考文章:https://blog.csdn.net/tangyaya8/article/details/101513670

5. Spring 中 propagation 的 7 种事务配置

声明式的事务处理中,要配置一个切面, 其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默认是REQUIRED。

  • REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
  • SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。

6. spring 的 RestTemplate 使用指南

参考文章:https://www.cnblogs.com/wyq178/p/9058030.html

7. 插件和工具

  • 浏览器背景插件:DarkReader
  • Vertica 数据库(TODO)
  • Kafka 中间件(TODO)
  • Kubectl使用总结(TODO)

8. 单词

  • stain 色斑
  • acne 痤疮
  • mask 口罩
  • scar 疤痕
  • dimple 酒窝
  • wrinkle 皱纹
  • pouch 袋子
  • retrieval 数据检索