发布了文章2021-10-31
大家都知道我的风格,喜欢用故事带入技术学习。但是... 我讲源码怎么用故事带入呢?用我的万能故事模板,小明探宝旅程。这天小明来到的Mybatis王国,他问门口老者,这城门上写的是iBatis,怎么改成Mybatis了呢。老者回答:哦,原本呀这是iBatis,这如今啊改名Mybatis了...
发布了文章2021-10-31
前言事情开始于2019年12月8日,官方通报首例不明原因肺炎患者病历。到现在时间已经过去了 将近2年,我们经历了封城、隔离、居家办公,我们有过恐慌,有过感动,我们曾被无私的医生、护士、军人、志愿者等等而感动,他们的“病情不退誓不回”一次次让我们落泪。我们经历...
发布了文章2021-10-23
学习的时候我们可以过度设计,只是为了使用一下设计模式,但是我们在工作中千万不要过度设计,什么东西都不能过度。工厂系列有2种类设计模式:工厂方法、抽象工厂但是平时也会有人提到什么简单工厂、静态工厂你强行说这是设计模式也行,模式嘛都是人定义的,但是一般...
发布了文章2021-10-17
一、 入门肯定是要学线程的创建方式1.1 继承Thread {代码...} 1.2 实现Runnable {代码...} 1.3 实现Callable {代码...} 1.4 其他匿名内部类、Timer、线程池、框架自带功能 {代码...} 二、线程池2.1 故事先行挠挠头,想一个故事带入一下.某年某月某天,程序员小路觉得...
发布了文章2021-10-16
面试官问你设计模式 你还在回答单例 和 工厂 ? 代理模式了解一下走过路过不要错过,上一篇讲了反射,可以看我上一篇文章或微信上搜索:木子的昼夜编程 。这一篇准备写一下动态代理模式。1. 理由先给你一个理由,为什么学动态代理第一他是一种设计模式,在你工作中如...
发布了文章2021-10-12
本来打算写一篇Mybatis的Mapper代理源码简单阅读,发现其中有用到动态代理,想着要不先写一篇动态代理吧,结果发现Jdk的动态代理涉及到反射的知识,所以最后决定写一篇反射相关的文章。
发布了文章2021-10-12
fdfdfdfdfdf
发布了文章2021-04-04
问题: 合并两个有序链表链表L1: 1->2->4->9 链表L2: 3->5>6->10->13合并后:1->2->3->4->5->6->9->10->131. 准备数据结构 及测试数据Node节点 {代码...} 准备测试数据 {代码...} 2.解决方案01定义一个伪头节点Head 然...
发布了文章2021-04-04
一个单调递增的数组 被人随机拿出一个数 你怎么找到这个数就以 1,2,3,4,5,6,7,8,9... 100为例吧 小强把88这个数拿了出来 我怎么能很快找到?1. 循环遍历 实现以为的思维,我是想到了循环遍历,比较后一个数字是不是比前一个数字大1 不是的话 那就是少了当前比较值的...
发布了文章2021-04-04
给一个String str="123"; 转成int类型数据面试的时候问这个问题,可能考察的不仅仅是parseInt()、valueOf()、intValue等方法 这个面试官想要的答案我也没不明白 这里写几种转换方式(转换时不考虑字符串非数字)一、parseInt {代码...} 二、valueOf intValue {代码.....
发布了文章2021-04-04
提示:看了 ReadWriteLock 第一篇 才能看这一篇 ,关于ReadWriteLock 知识点明白上一篇讲的内容应付一般面试没什么问题了。
发布了文章2021-04-04
读写锁:读读不互斥,读写互斥,写写互斥;也就是说:A读的时候B可以读,A读的时候B不可以写,A写的时候B不可以写这里举个例子:不同线程对变量x 读 写 {代码...} 1. A 读 B可读 读读共享 {代码...} 2. A 读 C 不可写 读写互斥 {代码...} 3. B 写 A 不可读 读写互斥 ...
发布了文章2021-04-04
LockSupport要从wait/notify/notifyAll 、condition.await/signal/signalAll 说起
发布了文章2021-04-04
之前文章有写wait/notify/notifyAll Condition作用类似,可能会多一些功能 比如:支持不响应中断、可指定时间点结束等待、可多条件(new 多个Condition)Condition的await 与wait类似 必须在获取锁的时候才能await一、 使用 {代码...} 二、 不响应中断看一下say01 sa...
发布了文章2021-04-04
面试的时候设计模式:模板方法 在AQS里体现的淋漓尽致 ,你要是从设计模式扯到这里,然后你正好又看过AQS在ReentrantLock中的实现,那你就可以让面试官眼前一亮
发布了文章2021-04-04
一、 使用1.1 简单使用 {代码...} 1.2 tryLockLock比synchronized还是多一些功能的,比如可以设置规定时间内获取不到锁就返回,不一直阻塞。一个不合时宜的例子就是:synchronize就是一个舔狗,一直舔 直到天荒地老lock 的 tryLock 就像是一个渣男,轻轻尝试一下,不...
发布了文章2021-04-04
一、 线程切换线程的切换受操作系统的调度控制简单流程是这样的:操作系统让cpu执行线程1线程1执行到指令003的时候 操作系统让cpu执行线程2cpu会将线程1的执行半成品放到缓存中cpu接着执行线程2cpu执行线程2的004指令的时候 操作系统又让cpu执行线程1cpu从缓存拿出线...
发布了文章2021-04-04
用户线程&守护线程&线程组&线程优先级如果把公司比喻成进程,那么你和我就是用户线程,后勤部门就是守护线程(负责给你订水,打扫办公环境等),每个项目组就是一个线程组,程序员等级就是优先级(高级程序员 总比初级程序员容易获取资源 概率大 但不是...
发布了文章2021-04-04
线程创建&启动&停止线程啊是个好东西,但是平时工作很少自己创建线程,所以一些基础的操作可能就不容易记起来,这篇文章常看看有益身心健康1. 创建 {代码...} 2. 启动 {代码...} 线程启动之后就会执行run方法3. 停止线程/中断3.1. 线程执行完 自己结束执行完...
发布了文章2021-04-04
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数...