随笔分类 -  22-Q2

摘要:why: 在单体应用程序中,我们想要保证一个变量的可见性及原子性,我们可以用volatile(对任意单个volatile变量的读/写具有原子性,但类似于volatile++这种复合操作不具有原子性)、synchronized、乐观锁、悲观锁等等来控制。并发情况下使用上面说的机制来保证变量的可见性及原 阅读全文
posted @ 2022-07-18 13:08 修心而结网 阅读(299) 评论(0) 推荐(0)
摘要:what: Kafka可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个具体分区中。 如果分区规则设置的合理,那么所有的消息将会被均匀的分布到不同的分区中,这样就实现了负载均衡 和水平扩展。 多个订阅者可以从一个或者多个主题中同时消费数据,以支撑海量数据处理能力。 C 阅读全文
posted @ 2022-07-12 20:23 修心而结网 阅读(2401) 评论(0) 推荐(0)
摘要:对操作的影响: 对于select: 适当的索引的确能够提升查询速度 对于insert: 并不会用到索引,还会增加维护索引的时间 对于update: 如果更新索引列,不会提高,少量更新非索引列,会有适当的提高,并且更新索引列,索引还需要重新维护 对于delete: 如果删除的条件上用到了索引,会提高, 阅读全文
posted @ 2022-07-07 18:03 修心而结网 阅读(449) 评论(0) 推荐(0)
摘要:从最终的结果来看,虽然使用TRUNCATE操作和使用DELETE操作都可以删除表中的全部记录,但是是不同的: (1)DELETE为数据操作语言DML;TRUNCATE为数据定义语言DDL。 (2) DELETE操作是将表中所有记录一条一条删除直到删除完;TRUNCATE操作则是保留了表的结构,重新创 阅读全文
posted @ 2022-07-07 16:53 修心而结网 阅读(302) 评论(0) 推荐(0)
摘要:why: 对于取模运算,大家最熟悉的是:N=M%L。但是在java的jdk库中经常见到:N=M&L。这二者有什么异同,使用有什么场景要求,以及&为何能代替%?在java的hashmap中具体是怎么使用的? what: 当L=2的n次幂时,M%L == M&L。长度L为2的n次幂时,模运算 % 可以变 阅读全文
posted @ 2022-06-14 14:37 修心而结网 阅读(468) 评论(0) 推荐(0)
摘要:what: flink的整体架构,如下: Flink运行时涉及到的进程主要有以下两个:jobManager和taskManager。 jobManager: 职责:主要负责task协调,和checkPoint的错误恢复等。 具体方式:当客户端将打包好的任务提交到JobManager之后,JobMan 阅读全文
posted @ 2022-06-07 11:52 修心而结网 阅读(179) 评论(0) 推荐(0)
摘要:what: reentrantlock参考文件:https://www.cnblogs.com/sfzlstudy/p/16337830.html where: 现在一般使用,建议:synchronize(隐式锁,自动释放锁); 如果是对并发要求特别高的情况下,建议:reentrantlock(显式 阅读全文
posted @ 2022-06-02 16:03 修心而结网 阅读(142) 评论(0) 推荐(0)
摘要:what: 线程的多种状态,如下: 第一种:初始(NEW)指新建一个线程对象如Thread thread = new Thread(()->{});还没有调用其start() 方法。 第二种:运行状态(RUNNABLE)java线程中将就绪状态(ready,满足条件但未获取时间片)和运行中(runn 阅读全文
posted @ 2022-06-02 15:11 修心而结网 阅读(807) 评论(0) 推荐(0)
摘要:what: AQS的全称是AbstractQueuedSynchronizer,即抽象队列同步器,其底层是volatile与CAS。而其上层则是基于该抽象类构建的许多并发组件,如ReentrantLock、Semaphore等。 AQS最核心的数据结构是一个volatile int state 和 阅读全文
posted @ 2022-06-01 18:09 修心而结网 阅读(53) 评论(0) 推荐(0)
摘要:what: CAS的全称是Compare and Swap,即比较并交换。比较的是当前内存中存储的值与预期原值,交换的是新值与内存中的值。这个操作是硬件层面的指令,因此能够保证原子性。Java通过JNI(本地方法调用)来使用这个原子操作,也是乐观锁最常用的机制。 CAS操作包含三个操作数——内存位置 阅读全文
posted @ 2022-06-01 18:08 修心而结网 阅读(447) 评论(0) 推荐(0)
摘要:what: hashmap扩容 1、重新建立一个新的数组,长度为原数组的两倍(实际长度为2的n次幂); 2、遍历旧数组的每个数据,重新计算每个元素在新数组中的存储位置(一次性完成);使用节点的hash值与旧数组长度进行位与运算,如果运算结果为0,表示元素在新数组中的位置不变;否则,则在新数组中的位置 阅读全文
posted @ 2022-06-01 16:22 修心而结网 阅读(656) 评论(0) 推荐(0)
摘要:why: 在 JDK7 及之前的版本,HashMap 的数据结构可以看成“数组+链表”; 在 JDK8 及之后的版本,数据结构可以看成"数组+链表+红黑树"; how: JDK8中,桶的链表长到一定长度后,会尝试变树。具体代码如下: static final int TREEIFY_THRESHOL 阅读全文
posted @ 2022-06-01 15:51 修心而结网 阅读(120) 评论(0) 推荐(0)
摘要:what: java中map的大体的结构如下: hashmap: a、HashMap 是基于 Map 接口的非同步实现,线程不安全,是为了快速存取而设计的;它采用 key-value 键值对的形式存放元素(并封装成 Node 对象),允许使用 null 键和 null 值,但只允许存在一个键为 nu 阅读全文
posted @ 2022-06-01 15:31 修心而结网 阅读(236) 评论(0) 推荐(0)
摘要:what: fail-fast:在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 fail-safe:在迭代器遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合 阅读全文
posted @ 2022-06-01 10:44 修心而结网 阅读(75) 评论(0) 推荐(0)
摘要:what: Google提供的一个开发工具包,里面有很多好用的Java开工具,比如我们本文讲的Cache缓存能力。 引用方式如下: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <ver 阅读全文
posted @ 2022-05-30 20:15 修心而结网 阅读(1286) 评论(0) 推荐(0)
摘要:what: 常见类型: 1、@GuardedBy( "this" ) 受 对象内部锁保护 2、@GuardedBy( "fieldName" ) 受 与fieldName引用相关联的锁 保护。 3、@GuardedBy( "ClassName.fieldName" ) 受 一个类的静态field的锁 阅读全文
posted @ 2022-05-29 16:58 修心而结网 阅读(2820) 评论(0) 推荐(1)
摘要:why: how: 6、右链接和左链接类似; 阅读全文
posted @ 2022-05-19 23:40 修心而结网 阅读(34) 评论(0) 推荐(0)
摘要:what:(现象) 在做select的where条件时,发现in的条件集中使用“子select”运行不符合预期,如下图: 正常结果: 异常: how: 通过查询后发现有个函数FIND_IN_SET(str,strlist)。 具体的描述: 参数:str 要查询的字符串 strlist 以”,”分隔的 阅读全文
posted @ 2022-05-19 23:33 修心而结网 阅读(121) 评论(0) 推荐(0)
摘要:why: 如果说互联网产品从0-1是开疆拓土,那么从1-N就应该是守土创富。 产品从0-1不难,只要前期多花点时间把业务需求梳理清楚,做出来v1.0还是比较容易的。难的是v1.0上线后持续不断的打磨和优化迭代(好的产品都是迭代和打磨出来的)。 how: 产品优化迭代的三个方面: 核心业务流程: 顾名 阅读全文
posted @ 2022-05-10 17:40 修心而结网 阅读(640) 评论(0) 推荐(0)
摘要:java的基础类型:https://www.cnblogs.com/sfzlstudy/p/16249938.html 主要diff:char,long 基础知识: 1 byte = 8 bit 一个bit是一个0或1; 一个byte是8个bit叫一个字节,一个byte可区分256个数字; 字节By 阅读全文
posted @ 2022-05-09 17:24 修心而结网 阅读(558) 评论(0) 推荐(0)