4 zycxnanwang

尚未进行身份认证

我要认证

I just want to work hard !And learning knowledge is my favorite hobby!

等级
TA的排名 4k+

简单分析Spring AOP源码

简单分析Spring AOP源码Spring AOP和IOC是Spring源码的核心,也是面试高频点。本文首先讲述AOP的概念,之后从源码角度分析Spring AOP的原理AOP概念AOP, Aspect Oriented Programming,面向切面编程。面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使

2020-05-20 18:44:33

不一样的二分查找

不一样的二分查找大家肯定一定非常熟悉二分查找法,如果面试官让你写个二分查找法,估计你会在被子里偷笑,但是如果让人查找目标值的最小索引,即如果有多个相同值,直接返回最小的索引。可以直接查出来任意一个目标值,然后向左遍历,但是还有一种优雅的方式,只要改动一两行代码普通二分查找法//最普通的二分查找法public static boolean binarySearch(int start, int end, int[]arr, int target) { if(start > end)

2020-05-18 23:26:04

Java NIO真得就这么简单

Java NIO真得就这么简单大多数人肯定了解Java IO, 但是对于NIO一般是陌生的,但是Java NIO是一个高频知识点,又不得不学,所以本文通过图文+代码的方式,保姆级别的讲述Java NIO的各个知识点。觉得写得好的,希望点个赞,给个收藏。Java IO 与 Java NIO的区别Java IO 与 Java NIO读取文件的差别普通Java IOpublic static void ioReadFile(String fileName) throws Exception {

2020-05-18 22:39:29

Java内存区域划分和内存分配策略

Java内存区域划分和内存分配策略如果不知道,类的静态变量存储在那? 方法的局部变量存储在那? 赶快收藏Java内存区域主要可以分为共享内存,堆、方法区和线程私有内存,虚拟机栈、本地方法栈和程序计数器。如下图所示,本文将详细讲述各个区域,同时也会讲述创建对象过程,内存分配策略, 和对象访问定位原理。觉得写得好的,可以点个收藏,绝对不亏。Java内存区域程序计数器程序计数器,可以看作程序当前线程所执行的字节码行号指示器。字节码解释器工作时就是通过改变计数器的值来选取下一条需要执行的字节码指令,

2020-05-15 12:32:46

代码详解适配器模式

文章目录适配器模式适配器的定义适配器的类图代码实例总结适配器模式适配器的定义将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间适配器的类图代码实例鸭子的接口(interface Target)interface Duck{ void scream();}绿帽鸭(ConcreteTarget)class GreenDuck implements Duck{ public void scream() { System.o

2020-05-14 17:51:39

令人头大的慢查询分析

文章目录令人头大的慢查询分析前言explain命名使用方法索引失效情况慢查询分析参考文章令人头大的慢查询分析前言建表语句create table student( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `age` INT(11) NOT NULL, `height` INT(11) NOT NULL, PRIMARY KEY (`id`), KEY `name_i

2020-05-14 11:02:56

代码详解工厂方法模式和抽象工厂模式

代码详解工厂方法模式和抽象工厂模式工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类类图具体代码以生产鼠标为例, 有一个抽象的鼠标工厂,工厂有两个实现,一个是戴尔鼠标工厂,一个是联想鼠标工厂,具体的抽象工厂子类,负责决定生产那种鼠标,将类的实例化延迟到了子类抽象的鼠标工厂类abstract class MouseFactory{ //抽象方法 abstract Mouse createMouse();}抽象工厂的具体实

2020-05-12 11:49:28

MySQL存储引擎,Innodb与MyISAM谁更叼?

MySQL存储引擎,Innodb与MyISAM谁更叼?固定套路,问mysql数据库知识的时候,一定会带着问存储引擎,innodb,MyISAM,他们最主要的区别是索引的实现方式,然后是加锁粒度等等的区别,最后还会来到送命题你觉得选择Innodb好,还是MyISAM好,为什么?。本文将主要讲述两个存储引擎的实现方式,顺带介绍一下他们的一些特性区别,和适用场景。非聚集索引与聚集索引MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyI

2020-05-10 12:37:26

详解Java垃圾回收器

详解Java垃圾回收器上文讲述了垃圾回收算法,本文介绍垃圾回收器,也就是垃圾回收算法的具体实现。垃圾回收系统一般是基于分代收集策略,所以一个完整的垃圾回收系统一般是新生代垃圾收集器和老年代垃圾收集器搭配使用。唯一特别的是G1垃圾收集器,不仅可以对新生代垃圾进行回收,也可以对老年代垃圾进行回收。下图是各个新生代收集器和老年代收集器搭配使用的情况,下文将详细讲述各个新生代垃圾收集器和老年代垃圾收集器。新生代垃圾回收器SerialSerial收集器是最古老,最稳定以及效率高的收集器,只使用一个线程

2020-05-10 11:34:09

垃圾回收机制

垃圾回收机制判断对象是否存活的方法引用计数法每个对象上都有一个引用计数,对象每被引用一次,引用计数器就+1,对象引用被释放,引用计数器-1,直到对象的引用计数为0,对象就标识可以回收。但是这个算法有明显的缺陷,对于循环引用的情况下,循环引用的对象就不会被回收。实例:public class ReferenceCountingGC{ public Object instance = null; private static final int _1MB = 1024 * 1024

2020-05-10 00:38:36

腾讯面试:我倒在了网络基础知识

文章目录腾讯面试:我倒在了网络基础知识TCP与UDP的区别TCP的三次握手和四次挥手[TCP三次握手 四次挥手](https://o-fawkes.blog.csdn.net/article/details/77413870)TCP流量控制TCP拥塞控制慢开始:乘法增加拥塞避免:加法增大快重传快恢复参考文章腾讯面试:我倒在了网络基础知识腾讯面试十分注重网络基础知识,问的几乎都是一些细节知识,...

2020-05-04 00:53:02

你知道这linux几个核心命令吗?

你知道这linux几个核心命令吗?找工作的时候,熟悉linux操作系统是一项不可或缺的技能。熟记几个关键的linux命令,可以以不变应万变top命令Linux top命令用于实时显示进程的动态命令参数d : 改变显示的更新速度n : 更新的次数,完成后将会退出 topp : 指定查看的进程号实例#显示进程信息top#设置信息更新次数,表示更新两次后终止更新显示t...

2020-05-01 21:26:16

单调栈、单调队列:刷题必备系列

文章目录单调栈、单调队列:刷题必备系列单调栈强调两点大显身手每日温度下一个更大元素下一个更大元素II接雨水单调队列牛刀小试滑动窗口最大值单调栈、单调队列:刷题必备系列个人认为,仅仅以刷题数量作为算法掌握程度的标准是不准确的,甚至是偏激的。衡量刷题效果的其实是两点,一是真正掌握的算法技巧数量,二是语言的熟练应用的实战能力(搞个输入输出搞半天,肯定是不行的)。掌握了一种解题技巧,其实对一系列的题...

2020-04-28 16:09:19

Java线程:你想了解的,我都有

Java线程:你想了解的,我都有Java线程的三种创建方式继承Thread对象class ThreadImpOne extends Thread{ @Override public void run(){ System.out.println("ThreadImpOne"); } }实现Runnalbe接口...

2020-04-27 01:14:43

Mybatis高频面试题(二)

Mybatis高频面试题(二)接口绑定Mybatis的接口绑定有两种方式:一种是通过注解绑定,在接口方法上加@Select、@Updata等注解,注解后面跟上对应的Sql语句sql语句比较简单的时候,可以是使用注解绑定一种是通过xml里面写SQL来绑定,需要指定xml文件的namespace为接口的全限定名,id为对应的接口方法sql语句比较复杂的时候,推荐使用xml方式进行绑...

2020-04-24 23:43:35

MySQL事务四大特性实现:面试官的终究拷问

文章目录MySQL事务四大特性实现:面试官的终究拷问前言知识数据库事务的四大特性事务的四种隔离级别原子性的实现持久性的实现日志文件的刷新策略隔离性的实现已提交读(允许可重复读)可重复读(允许幻读)终究难题参考文章MySQL事务四大特性实现:面试官的终究拷问估计大家对事务的四大特性ACID、事务的四种隔离机制的概念了熟于心,有些面试官问完这些就不追问了,但是有些面试官会来个终究拷问,你了解My...

2020-04-24 23:24:31

Mybatis高频面试题(一)

文章目录Mybatis高频面试题#{}、${}区别延迟加载原理解析实例实验二级缓存参考文章Mybatis高频面试题上篇文章讲述了Spring如何配置Mybatis环境。SpringBoot配置Mybatis:详细易懂本篇文章主要介绍Mybatis的一些高频面试知识点。持续更新。希望点个收藏#{}、${}区别网上标准答案:#{}是预编译处理,${ } 是字符串替换。Mybatis...

2020-04-22 16:19:44

信号量Semaphore了解过吗?

难堪的一次面试: 信号量Semaphore了解过吗?没有????线程同步器CycliBarrier你都不会吗,打击到了我。。源码详解CountDownLatchCycliBarrier、CountDownLatch都是减计数器,而Semaphore都是加计数器下面我们从源码角度来探究Semaphore的内心世界简单的一个例子实现一个简单的线程同步例子,semaphore.release(...

2020-04-21 18:22:36

线程同步器CycliBarrier你都不会吗?

文章目录线程同步器CycliBarrier你都不会吗,打击到了我。两个例子CycliBarrier类图源码分析初始化await方法dowait方法参考文章线程同步器CycliBarrier你都不会吗,打击到了我。上文介绍了CountDownLatch,CountDownLatch虽然可以实现多个线程同步,但是只能使用一次。而本文所要介绍的CycliBarrier,比CountDownLatc...

2020-04-21 17:12:01

Java内部类:你真得了解方法内部类吗?

文章目录Java内部类:你真得了解方法内部类吗?普通内部类方法内部类匿名内部类静态内部类参考Thinking in JavaJava内部类:你真得了解方法内部类吗?java内部类,相信很多人都使用过内部类,新建线程使用的匿名内部类,但是有很多人对内部类的一些概念处于模糊阶段,比如为什么方法内部类引用方法参数,方法参数必须设置为final,所以本文系统得整理了一下内部类知识,如果有用得话,记得...

2020-04-21 12:31:58

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)