![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
后端知识栏
文章平均质量分 85
持续更新的后端知识点
balabala丶
这个作者很懒,什么都没留下…
展开
-
知识总结(4):redis
(3)JSON格式的value:如果value是Java对象,一般以JSON格式存储(仍然是String类型)(2) value类型:字符串、整型、浮点型(数字类型可自增、自减,三种格式底层都是字节数组形式存储)(1)常用五种数据结构:String、List链表、Set集合、Hash、Zset有序集合。(1)应用场景:缓存对象、常规计数、分布式锁、共享session信息。(3)特征:无序、不重复、支持并集、差集、交集等、查找快。原创 2024-01-14 23:27:14 · 359 阅读 · 0 评论 -
知识总结(3):并发编程
AQS:java实现的悲观锁,需要手动开启、关闭ReentrantLock 阻塞式锁实现原理:利用CAS+AQS,支持公平锁、非公平锁(通过构造函数boolean参数决定,不填、false为非公平锁),支持可重入特点:可重入、可中断、可设置公平锁、支持多个条件变量Semaphore 信号量acquire():请求信号量,-1操作,当为负数时会进行阻塞,等待其他线程释放。release():释放信号量,+1操作理解案例:停车场有5个车位,故可以设置信号量为5表示有5个资源。原创 2024-01-13 23:17:41 · 877 阅读 · 0 评论 -
知识总结(2):集合
线程1和线程2都读取hashMap,且此时hashMap需要扩容,线程1先读取,对其进行扩容,在扩容后的元素迁移过程中,可能被其他线程参与(如线程2),导致元素重复,形成环形链表,造成死循环。将每个HashEntry作为元素放在Segment数组中,当要修改HashEntry时,需要获取到Segment[n]的锁(可重入锁)JDK8中,使用synchronized锁当前链表/红黑树的头节点,放在一个数组中,只要hash不冲突就不会产生并发。删除、中间插入需要进行一次元素复制,消耗性能。默认初始容量(16)原创 2024-01-12 21:50:34 · 369 阅读 · 0 评论 -
知识总结(1):基础概念
编程是人和计算机交流的方式。我们通过编程告诉计算机某个问题的解决思路、方法、手段,让计算机根据编程指令去完成,解决问题。hashCode():用于获取hash码(int整数),定义在JDK的object类中,java任何的类都有hashCode()函数。当将对象放入hashSet中时,会根据对象的hashCode作为标识进行位置查重等操作,若是发现有相同的,则会调用equals()方法检查对象是否也相同,如若都相同,则将其作为同一对象处理。原创 2024-01-12 00:11:47 · 482 阅读 · 0 评论