- 博客(13)
- 收藏
- 关注
原创 Alibaba Canal调研报告
前述:Canal是纯Java语言开发,解析数据库增量日志,为目标端提供消费&订阅。源端仅仅支持MySQL , 目标端支持 Kafka,RocketMq,RabbitMq,MySQL,ES等。原理:基于MySQL的主从复制,Canal 将自己伪装成MySQL slave,向MySQL master发送dump协议。Master收到后,会向slave (也就是Canal) 推送binary log。Canal解析binary log对象。提供消费和订阅架构:...
2021-12-01 13:46:01
2231
原创 MySQL的 SQL 常见用法!
ALTER TABLE 表名 ADD 列名/索引/主键/外键等; ALTER TABLE 表名 DROP 列名/索引/主键/外键等; ALTER TABLE 表名 ALTER 仅用来改变某列的默认值; ALTER TABLE 表名 RENAME 列名/索引名 TO 新的列名/新索引名; ALTER TABLE 表名 RENAME TO/AS 新表名; ALTER TABLE 表名 MODIFY 列的定义但不改变列名; ALTER TABLE 表名 CHANGE 列名和定义都可以改变。...
2021-08-04 14:25:16
152
原创 Java的Synchronized锁
1.synchronized锁是什么?锁的对象是什么?可以让synchronized修饰的方法,代码块,每次只能有一个线程在执行,以此来实现数据的安全。给普通方法加锁,锁的是当前对象this给静态方法加锁,锁的是当前Class类synchronized(obj) 这样子加锁,锁的是obj对象实现原理:monitor监视器synchronized修饰同步代码块,javac在编译时,在synchronized同步块的进入的指令前和退出的指令后,会分别生成对应的monitorenter和
2021-08-04 10:13:30
262
原创 Java线程池参数详解
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQ.
2021-08-02 15:02:12
290
原创 Java中为什么不建议使用Executors的四种线程池呢?
主要是newFixedThreadPool和newSingleThreadExecutor的等待队列是LinkedBlockingQueue,长度是Integer.MAX_VALUE,,可以认为是无限大的,如果创建的任务特别多,可能会造成内存溢出。newCachedThreadPool和newScheduledThreadPool的最大线程数是Integer.MAX_VALUE,如果创建的任务过多,可能会导致创建的线程过多,从而导致内存溢出。SynchronousQueu..
2021-07-31 16:54:45
1109
原创 Java的内存泄漏
1. 内存泄漏引起的原因内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。内存泄露有时不严重且不易察觉,这样开发者就不知道存在内存泄露,但有时也会很严重,会提示你Out of memory。Java内存泄漏的根本原因是什么呢?长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏,尽管短生命周期对象已经不再需要,但是因为长生命周期持有它的引用而导致不能被回收,这就是Java中内存泄漏的发生场景。具体主要有如下几大类:
2021-07-26 19:22:49
98
原创 2021.07.22 百度提前批测开一面
1.算法题1. 按照升序排列的数组在预先未知的某个点上进行了旋转(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2]),请找出其中最小的元素, 二分法2. 如果给你一个乱序数组 【 7,1,3,5,4】,找出从小到大排列的第K个数 快速选择排序2.数据库数据库中两张表tab1、tab2,tab1中有字段:id、name,tab2中有字段:id、score、class,两张表以id字段作为外键关联,用一个sql语句找到名...
2021-07-25 22:29:12
389
原创 你不知道的Spring
1. Spring IOC是什么?IOC就是invention of control,就是控制反转,将对象获取外界依赖资源的方式反转了。假设一个对象A依赖于对象B,在没有IOC以前,就是在对象A需要使用对象B时,去用代码显式地创建一个对象B。有了IOC以后,可以由Spring IOC容器来负责对象B的创建和销毁,创建后放在容器中,在对象A需要的时候再来取。 DI(Dependency Injection,依赖注入)其实就是IOC的另外一种说法,就是IOC是通过依赖注入技术实现的。2. Spr
2021-07-16 11:04:34
80
原创 openfeign调用之list参数
当openfeign调用,选择用List集合作为参数时,提供方和调用方必须一致这里的一致指的是:返回值一致,参数名一致,@RequestParam()一致
2021-07-15 18:45:39
2301
原创 你不知道的Redis
1.Redis过期key是怎么样清理的?1. 惰性清理在访问key时,如果发现key已经过期,那么会将key删除2. 定时清理Redis配置项hz定义了serverCron任务的执行周期,默认每次清理时间为25ms,每次清理会依次遍历所有DB,从db的expires字典(里面保存了设置了过期时间的键值对,key就是指向键对象,value是过期时间)中随机取出20个key,如果过期就删除,如果其中有5个key过期,说明过期率超过了25%,那么就继续对这个db进行清理,否则开始清理下一个db。
2021-07-15 15:12:34
293
原创 Parameter Maps collection does not contain value for java.lang.S
java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for java.lang.Integermybatis写mapper文件中, parameterType写成parameterMap 会报错,所以写mapper时,不要一直写,不测试。应该写完一个操作,( 可能这个操作需要好几个sql ),就进行单元测试。写完全部再进行测试,如果出错,不好排查。...
2021-07-13 13:53:25
242
原创 Docker之旅
1、使用Docker的好处1. Docker可以将应用程序以及使用的软件环境打包在一起。无论在哪个机器上都保证了环境一致2. 对程序进行封装隔离,容器与容器之间互不影响,更高效的利用系统资源3. 通过镜像复制N个环境一致容器2、docker 与 虚拟机的对比3、docker的安装1. docker 在windows系统安装 地址:https://www.docker.com/get-started2. docker在linux系统安装...
2021-07-03 19:26:38
188
原创 MongoDB的CRUD
应用场景:1、简介:MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库I它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。MongoDB中的记录是一个文档,它是一个由字段和值对((field;value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字..
2021-06-17 23:23:57
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人