⁶⁶   ⁶⁶⁶⁶⁶⁶   ⁶⁶66⁶⁶⁶⁶    ₆₆₆₆ 可以啊.这波  ₆₆₆₆⁶⁶⁶⁶⁶        ⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶66⁶⁶⁶⁶     卧槽⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶    666₆₆₆₆₆₆₆ 666        666 ⁶⁶⁶⁶⁶⁶₆₆₆₆₆₆ ₆⁶⁶⁶⁶⁶⁶⁶⁶⁶ ⁶⁶⁶⁶⁶⁶ ⁶⁶⁶⁶⁶⁶⁶⁶

老污的猫

6
获赞数
2
粉丝数
成都
青岛科技大学 | 信息工程
多点数字科技有限公司 | Java工程师
2020-06-24 加入
浏览 1.6k

此博客为自身多年工作心得,学习累积,部分内容摘自网络、书籍、前辈文章,并结合自身理解加以修饰,如有纰漏仅供参考

个人动态
  • 发布了文章4 月 21 日
    MYSQL 联合唯一索引失效
    MYSQL的联合索引,任意一列的值为NULL时,即使其他的字段相同,也不会引起唯一索引冲突
  • 发布了文章3 月 31 日
    MySql update 逗号 & and的区别
    而 ('value1' and column2 = 'value2') 是一个逻辑表达式,由于 column2 = 'value2'并不成立,故 (column2 = 'value2') 的结果为0,此时表达式等效为 (1 and 0),故实际的结果被更新为 0
  • 发布了文章3 月 27 日
    Mybatis 批量插入并获取id
    项目中遇到数据迁移需求,需要将多表数据迁移并保留依赖关系 (如 b.pid = a.id),因此需要先批量写入a表,然后获取新数据id,再将新的依赖关系写入b表
  • 发布了文章3 月 12 日
    大体量数据迁移思路
    背景当前系统数据量级别千万级或亿级,单表无法支撑业务量,需要考虑拆表或分表,且迁移同时不能影响线上业务概况千万或亿级数据量不能影响线上业务,系统24小时运行,不可停机需要拆表迁移数据方案考虑到上述情况,在不影响线上业务的情况下,需要将业务数据同步至...
  • 发布了文章2 月 1 日
    CompleteFuture 小结
    CompleteFuture 默认使用ForkJoinPool,也可指定其使用的线程池CompletableFuture 使用示例CompleteFuture实际在调用runAsync时已经开始运行,后续join实际只是在串行等待调用完成
  • 发布了文章1 月 29 日
    Truncate
    truncate直译为截断,作用是清空表,且只能作用于表;语法为: truncate table tbl_name 或 truncate tbl_name
  • 发布了文章1 月 18 日
    Java 只有值传递
    在main中定义对象a,其值为123;调用test修改a的值为"";在main中输出a的值,可见a的值并未被test改变,因此test方法中的a只是main中a的值;
  • 发布了文章2020-09-03
    Druid 获取连接过慢分析
    由数据库配置可知,最小连接数为4,最大12,当前连接总数为171,52个实例平均每个实例3.28个连接,我们预测某些高频服务连接大于最小连接数,未达到最大限制,因此后续请求会尝试创建、获取数据库连接,此时产生的并发将降低连接获取的效率,导致获取连接过慢。故将...
  • 发布了文章2020-08-27
    ZooKeeper 数据结构
    ZooKeeper中数据平时都在内存中通过一个叫ZkDataBase的类来管理维护的,同时ZooKeeper提供了Snapshot(快照)的方式可以将ZkDataBase持久化到磁盘,防止数据丢失。
  • 发布了文章2020-07-22
    线程池的状态
    线程池的5种状态:Running ShutDown Stop Tidying TerminatedRUNNING线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建,就处于RUNNING状态,并且线程池中的任务数为0SHUTDOWN线程池...
  • 发布了文章2020-07-18
    Redis RDB & AOF
    Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。
  • 发布了文章2020-07-08
    await & signal & signalAll
    调用Condition.await() 方法使线程等待,其他线程调用Condition.signal() 或 Condition.signalAll() 方法唤醒等待的线程。
  • 发布了文章2020-07-07
    Java 集合时间复杂度
    get() 直接读取下标,复杂度 O(1) add(E) 直接在队尾添加,复杂度 O(1) add(index, E) 在第n个元素后插入,n后面的元素需要向后移动,复杂度 O(n) remove() 删除元素后面的元素需要逐个前移,复杂度 O(n)
  • 发布了文章2020-07-07
    iterator & for
    迭代器是一种模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部
  • 发布了文章2020-07-03
    动态年龄准则
    虚拟机并不是永远地要求对象的年龄必须达到了MaxTenuringThreshold才能晋升老年代,如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。
  • 发布了文章2020-07-03
    Concurrent Mode Failure
    The CMS collector uses one or more garbage collector threads that run simultaneously with the application threads with the goal of completing the collection of the tenured generation before it becomes full. As described previously, in normal opera...
  • 发布了文章2020-07-01
    wait & notify & notifyAll
    Java的锁是对象级的而不是线程级,每个对象和类在逻辑上都是和一个监视器相关联的,线程为了进入临界区也就是同步块内,需要获得锁并等待锁可用,它们并不知道也不需要知道哪些线程持有锁,它们只需要知道当前资源是否被占用,是否可以获得锁,所以锁的持有状态应该...
  • 发布了文章2020-07-01
    共享锁 & 排他锁 & 读写锁
    并发编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。共享对象对应一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
  • 发布了文章2020-06-30
    设计模式
    对扩展开放,对修改封闭在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果,使程序的扩展性好,易于维护和升级。
  • 发布了文章2020-06-30
    自旋锁 & 适应性自旋锁
    自旋锁本身是有缺点的,它不能代替阻塞。自旋等待虽然避免了线程切换的开销,但它要占有处理器的时间,如果锁被占有的时间很短,自旋等待的效果就会非常好。反之,如果锁被占用的时间很长,那么自旋的线程只会白浪费处理器资源。所以,自旋等待的时间必须要有一定的...