自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 面试高频题:进程之间的通信方式
原力计划

文章目录面试高频题:进程之间的通信方式进程之间的通信方式管道匿名管道命名管道信号信号量消息队列共享内存本地套接字参考文章面试高频题:进程之间的通信方式进程之间的通信方式,是面试的高频试题,我就被腾讯的面试官Cue到了,简单得列举出各种方式,大部分同学都能回答上,但是你知道通信方式之间的区别与效率,不太清楚的,可以收藏本文,先收藏,后读。进程之间的通信方式进程之间的通信方式,主要有一下几种管道,包括匿名管道、命名管道信号信号量消息队列共享内存本地套接字管道管道是一种半双工的通信

2020-06-27 00:21:13 199

原创 Java内存区域划分和内存分配策略
原力计划

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

2020-05-15 12:32:46 2351 36

原创 腾讯面试:我倒在了网络基础知识
原力计划

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

2020-05-04 00:53:02 32434 85

原创 Java线程:你想了解的,我都有
原力计划

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

2020-04-27 01:14:43 4218 23

原创 Java线程池,你五分钟讲完,而我和面试官聊了半小时
原力计划

Java线程池,你五分钟讲完,而我和面试官聊了半小时找Java工作的时候,线程池是一个必问的知识点,面试时,有的人只能讲五分钟,而有些人可以讲半个小时,差别在哪?在于知识的深度。下面几个面试高频题,你会吗?不会,赶紧收藏此博文。线程池各个参数的作用,简单阐述一下线程池工作流程。常见的线程池有哪些,分别适用于什么场景?使用无界队列的线程会导致内存飙升吗?Java线程池概念顾名思义...

2020-04-16 17:45:14 11170 49

原创 面试官,别挂电话,Synchronized,我还能说上半小时。
原力计划

面试官,别挂电话,Synchronized,我还能说上半小时。Synchronized关键字,经常被用于线程同步。执行Synchronized修饰的同步代码块的线程,首先会获得“对象的锁”,如果有其他线程尝试执行同步代码块,会阻塞,直到该线程执行完同步代码,释放“对象锁”。上面的概念,肯定不陌生,但是对象锁具体是什么,或许你不太清楚,本文从其底层原理出发,详细解读Synchronized关键字...

2020-04-16 01:45:46 5231 18

原创 阿里面试题:ConcurrentHashMap为什么是线程安全的?
原力计划

阿里面试题:ConcurrentHashMap为什么是线程安全的?ConcurrentHashMap,其实是线程安全的HashMap,所以阅读ConcurrentHashMap,建议先阅读一下两篇介绍HashMap的文章你真的懂大厂面试题:HashMap吗?jdk1.7 HashMap中的致命错误:循环链表jdk1.7 ConcurrentHashMapjdk1.7 Concu...

2020-04-10 01:00:33 6544 20

原创 网络知识

网络知识OSI 七层模型 & TCP/IP五层模型TCP与UDP的区别TCP面向连接的, 传输数据时,需先进行三次握手,建立连接,UDP是无连接的,发送数据之前不需要建立连接TCP通过确认和重传机制,提供可靠的服务。即通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,而UDP不保证可靠传输,只是尽可能得交付TCP面向字节流,即将数据看成一连串无结构的字节流。UDP是面向报文的。UDP没有拥塞控制机制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电

2020-08-04 00:17:05 6

原创 SQL面试题

文章目录SQL面试题selectlimitdistinctgroup byorder byhavinginsertupdatedeleteindexjoininner join,内连接right join,右连接full outer join,全连接full outer join,全连接SQL面试题sql知识点,其实很重要,如果面试的时候,面试官问你一些简单的sql语句,如果你没有回答上来,印象会大打折扣,所以何不花点时间,跟我一起复习一下sql语法select基本用法SELECT colu

2020-08-03 08:39:12 27

原创 详解操作系统内存管理

内存管理分页式存储管理分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,相应地,也把内存空间分成与页面,相同大小的若干个存储块,称为(物理)块或页框(frame)。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片” 。在分页系统中,允许将进程的各个页离散地存储在内存不同的物理块中,但系统应能保证进程的正确运行,即能在内存中找到每个页面所对应的物理块。为此,系统

2020-07-25 11:15:16 34

原创 事务消息源码学习

事务消息源码学习TransactionMQProducer发送事务消息事务消息发送时,需要打上相应的标记,与普通消息进行区分MessageAccessor.putProperty(msg, MessageConst.PROPERTY_TRANSACTION_PREPARED, "true");MessageAccessor.putProperty(msg, MessageConst.PROPERTY_PRODUCER_GROUP, this.defaultMQProducer.getProducer

2020-07-18 17:09:49 41

原创 ArrayList与LinkedList区别

文章目录ArrayList与LinkedList区别ArrayListget方法add方法LinkedListget方法add方法总结ArrayList与LinkedList区别ArrayList从构造函数中,可以看出,ArrayList底层结构是一个对象数组public ArrayList(int initialCapacity) { if (initialCapacity > 0) { //对象数组 this.elementData = new Ob

2020-07-17 16:08:19 54

原创 简单分析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 544 2

原创 不一样的二分查找

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

2020-05-18 23:26:04 339

原创 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 1384 24

原创 代码详解适配器模式

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

2020-05-14 17:51:39 632

原创 令人头大的慢查询分析
原力计划

文章目录令人头大的慢查询分析前言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 2726 30

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

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

2020-05-12 11:49:28 616 1

原创 MySQL存储引擎,Innodb与MyISAM谁更叼?
原力计划

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

2020-05-10 12:37:26 2011 25

原创 详解Java垃圾回收器
原力计划

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

2020-05-10 11:34:09 1033 4

原创 垃圾回收机制
原力计划

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

2020-05-10 00:38:36 1496 29

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

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

2020-05-01 21:26:16 2987 21

原创 单调栈、单调队列:刷题必备系列
原力计划

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

2020-04-28 16:09:19 1934 27

原创 Mybatis高频面试题(二)
原力计划

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

2020-04-24 23:43:35 1706 21

原创 MySQL事务四大特性实现:面试官的终究拷问
原力计划

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

2020-04-24 23:24:31 3508 18

原创 Mybatis高频面试题(一)
原力计划

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

2020-04-22 16:19:44 1603 17

原创 信号量Semaphore了解过吗?
原力计划

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

2020-04-21 18:22:36 814 11

原创 线程同步器CycliBarrier你都不会吗?
原力计划

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

2020-04-21 17:12:01 731 17

原创 Java内部类:你真得了解方法内部类吗?
原力计划

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

2020-04-21 12:31:58 1151 12

原创 SpringBoot配置Mybatis:详细易懂
原力计划

文章目录SpringBoot配置Mybatis:详细易懂前期准备工作Mybatis相应配置编写相应代码文件结构和结果增删查改Mybatis 动态SQL参考文章SpringBoot配置Mybatis:详细易懂Mybatis作为后端持久层框架,在互联网大厂中应用广泛,所以掌握Mybatis,可谓是必备的。最近准备系统得复习一下Mybatis框架,所以博客会更几期关于Mybatis得文章,如果觉得...

2020-04-20 23:34:15 1731 12

原创 进程与线程的区别:一个简单又困难的问题

文章目录进程与线程的区别:一个简单又困难的问题进程执是什么线程是什么进程和线程的区别进程与线程的区别:一个简单又困难的问题如果简单得记得,进程是操作系统分配资源的最小单位,线程是CPU调度的最小单位。其实是很难博得面试官的青睐的,因为面试官问100个人,90个人都会说这句话,体现不出差异性,所以本文从操作系统原理出发,详细讲述进程与线程的区别,看完之后,或许你对问题的回答,或许有新的理解。可...

2020-04-20 02:45:39 2102 13

原创 Redis高阶知识:实现分布式锁
原力计划

Redis高阶知识:实现分布式锁redis的一些基础知识,可以看这篇博客Redis,看这篇博客,吊打所有面试官但是实际找工作的时候,单单基础知识是不够的,面试官大概率问完基础知识后,会问Redis的一些高阶知识,比如Redis实现分布式锁、Redis实现消息队列等。本文从代码角度,详细阐述如何使用Redis实现分布式锁分布式锁概念本地锁:单个节点(机器)中实现线程同步的方式,Syn...

2020-04-18 23:21:16 1697 16

原创 数据库范式:容易忽略的关键知识

文章目录数据库范式:容易忽略的关键知识第一范式(1NF)第二范式(2NF)第三范式(3NF)鲍依斯-科得范式(BCNF)参考文章数据库范式:容易忽略的关键知识大多数面试的时候,问数据库知识,问得最多得就是索引、事务。但是有一个知识点不可忽略就是数据库范式,熟悉数据库范式,会给你带来意想不到的收获第一范式(1NF)定义:强调列的原子性。即列不能够分存其他几列如下表就不满足1NF要求,进...

2020-04-17 23:26:17 1499 13

原创 Java线程池:简明易懂的源码分析
原力计划

Java线程池:简明易懂的源码分析Java线程池的一些基础知识,可以参考博客Java线程池,你五分钟讲完,而我和面试官聊了半小时本文将从源码角度分析线程池原理,加深对线程池原理的理解,简单背几个原理知识,其实很难得到面试官的青睐,了解源码知识,可以由内而外得征服面试官。Java线程池状态转换使用Integer类型(32bit) ctl中高3位记录Java线程池的状态,低29位记录线程...

2020-04-17 17:20:29 3120 18

原创 并查集:刷题必备神器

并查集:刷题必备神器面试的时候,面试官出了一道并查集的算法题,辛亏以前复习过。写下这篇文章,加深自己的理解,同时希望帮助到正在准备面试的你。觉得好,可以收藏一波。定义动态维护若干个不重叠的集合,并支持合并与查询操作的一种数据结构。下面以树作为并查集逻辑结构,具体代码实现使用数组。详细讲述并查集的初始化、合并和查询操作并查集的初始化开始各个节点的父元素均为自身,各个集合元素数量...

2020-04-17 00:39:42 1320 11

原创 代理模式真得这么简单
原力计划

代理模式真得这么简单代理模式的定义为另一个对象提供一个替身或占位符以控制对这个对象的访问代理模式类图简单描述就是真实对象,RealSubject,和代理对象,Proxy实现同一个接口Subect,并且代理对象Proxy持有真实对象的引用静态代理实例GumballMachine,作为真实对象//糖果机,拥有两个属性,位置和糖果数量public class GumballMachin...

2020-04-15 15:30:03 1212 17

原创 Java反射机制的大厂面试题

Java反射机制的大厂面试题反射机制概念Java 反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种 动态的获取信息 以及 动态调用对象的方法 的功能称为 java 的反射机制。为什么引入反射概念相信你看上面的概念,心中没有泛起任何的波澜,动态的获取信息、动态调用对象方法黑人问号。下面一段简单代码作为i出发点,...

2020-04-15 00:53:39 702 7

原创 一文带你通透理解死锁
原力计划

一文带你通透理解死锁面试的时候,操作系统知识是必备的,而死锁是操作系统知识中重要的一环。所以想找到好工作,通透了解死锁概念是必须的死锁产生的四个条件(必须同时满足)互斥条件:一个资源一次只能被一个进程占有持有并等待:进程因为请求资源阻塞时,对已获取的资源不释放不可抢占:进程已经获取的资源在使用过程中不能被其他进程抢占,只能使用完后,由该进程自己释放环路等待:多个进...

2020-04-14 17:26:39 521 15

原创 Java实现生产者消费者模型

Java实现生产者消费者模型生产者消费者模型,是一般面试题都会考的,下面介绍使用ReetrantLock实现生产者消费者模型。定义一个ReentrantLock锁,同时new出两个condition,一个控制队满,一个控制队空//生产者 消费者import java.util.LinkedList;import java.util.Queue;import java.util....

2020-04-14 01:08:15 604 8

原创 面试官瞬间就饱了,重写equals函数,需要重写hashCode函数吗?

面试官瞬间就饱了,重写equals函数,需要重写hashCode函数吗?面试官问我,为什么重写equals函数,必须重写hashCode函数,我当时就懵住了。然后扯天扯地,然后面试官瞬间就饱了,痛定思痛,写下这篇博客首先看String的equals源码String重写了equals方法,引用指向同一个地址,一定返回true。并且如果String包含的字符串完全相同,同样返回true....

2020-04-14 01:06:20 552 5

提示
确定要删除当前文章?
取消 删除