编程思想

一、不同的编程类型

https://www.jianshu.com/p/848abe46da99
1、过程式编程 这四步的名词都是菜,但动词却不一样

 洗(菜)、切(菜)、炒(菜)、吃(菜)

2、声明式编程:

所要做的实际上都是不断的改变菜的状态。它突出的是把对象通过动作不断的变换,而这里的动词其实就是函数。所以这种类型的编程叫函数式编程。

吃(炒(切(洗(菜))))
  • 1数据库查询语言(SQL,XQuery)
  • 2正则表达式
  • 3逻辑编程
  • 4函数式编程

3面向对象编程

菜.洗()、菜.切()、菜.炒()、菜.吃()

二、空间时间

1、GC算法
复制算法速度快无碎片,是用双倍空间换来的
标记整理牺牲时间来少用空间

2、ThreadLocal

3、懒加载思想,是用到时才加入内存,减少空间占用

三、分治思想

1、G1回收器内存划分成多个独立的子区域(Region);
2、cpu时间片,不同的任务获取时间片,看起来程序都在保持运行;
3、ConCurrentHashMap
1)jdk7维护了一个 segment 数组,每个 segment 对应一把锁
2)jsk8在扩容时其它竞争线程也不是无事可做,它们会帮助把其它 bin(链表) 进行扩容

四、复用代码

五、物理和逻辑概念

1、G1回收器内存划分成多个独立的子区域(Region),新生代老年代只是逻辑上的概念,没有对应专门的物理区域(和之前切香肠的模式不同);
2、mycat等分表中间件,使用统一的逻辑表,配置映射底层不同的物理表;
3、JMM本身是一种抽象的概念 并不真实存在,它描述的是一组规则或规范通过规范定制了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式.

六、规则与逆规则

1、双亲委派和SPI
2、数据库范式和逆范式
3、锁优化。一方面希望同步代码块少,但是如果多次循环加锁,还不如在锁内循环(锁粗化)

七、约定大于配置

1、SPI约定实现类文件存放路径 META-INF/services
2、SpringBoot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值