自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Java基础复习(九):异常、枚举、反射、注解

文章目录异常枚举反射注解Java复习的差不多了,但是怕面试挑冷门知识点问,还是集中做一个总结吧异常枚举反射注解

2021-10-16 12:44:53 671

原创 说说你常用的linux命令

文章目录监控TOPPSnetstat看日志用的grepsedawktailsortuniq这其实是一道开放的问题,但是面试中遇到的多了,基本回答的时候也都是自己总结的那一套监控TOPPSnetstat看日志用的grepsedawktailsortuniq...

2021-10-04 19:29:14 391

原创 总结网络层

文章目录ICMP协议pingtracerouteIP地址路由交换ICMP协议pingtracerouteIP地址路由交换路由器转发的过程中如何指定端口、如何转发ip数据报

2021-10-03 18:16:15 718

原创 浅析字符匹配算法

文章目录

2021-10-03 15:00:49 123

原创 浅谈分布式事务

文章目录理解事务ACID、CAP和BASEXA事务mysql的XA事务2PC3PCTCC尽最大努力通知本地消息表消息事务总结前几天面试,面试官让我谈谈分布式事务的ACID,当时我才发现一谈论ACID立马想到的都是关系型数据库、基于单机的分布式事务,而对于分布式事务,我仅仅依稀记得什么CAP定理、BASE特性。看来有必要总结一番了理解事务首先,单看事务这个概念,它是一组操作,这组操作只能有两个完成状态——要么成功,要么失败。完成一个事务,最终能够从一个一致性状态,转移到另一个一致性状态。我们将事务可以

2021-10-02 15:54:17 244

原创 遇到的关于Java迭代器的奇怪问题——迭代中remove不抛异常

某个和迭代器相关的问题。在最近的面试和笔试中遇到多次。ArrayList<String> integers = new ArrayList<>(); integers.add("1"); integers.add("2"); for(String s:integers){ if(s.equals("1")){ integers.remove("1"); }

2021-09-23 22:35:29 358

原创 总结redis多机数据库

文章目录复制哨兵集群崩穿问题数据一致性问题分布式锁复制哨兵集群崩穿问题数据一致性问题分布式锁

2021-09-16 17:06:16 170

原创 总结redis持久化、服务处理模型、redis事务

文章目录持久化服务模型多机模式持久化服务模型多机模式

2021-09-15 13:14:50 144

原创 深入思考:oracle、innoDB和mylsam

文章目录堆表和索引组织表对于序的理解innoDB和myLASMoracle和mysql平时用的多的是mysql,但是公司项目用的是oracle,面试的时候不免问到各种对比,这里做一个基于个人理解的总结堆表和索引组织表mysql的存储引擎是基于表的,存储引擎又可以称为表类型。而且mysql是基于插件式的存储引擎,其中innoDB是面向索引组织表的、mylsam是面向堆表的、memory是面向内存的…而oracle没有存储引擎的说法,创建表时也可以为表指定表的类型,oracle的create table

2021-09-14 15:19:31 1509

原创 谈谈Java序列化与深拷贝

文章目录序列化理解太难了,光搁那复习多线程和集合了,结果面试现在都挑序列化问序列化理解

2021-09-10 13:47:15 754

原创 设计一个简单的线程池

文章目录设计简述简单实现基础设计简述一个设计方案一定是从最小的架子慢慢搭建起来的,那么想一下,最基础的线程池应该是什么样子的?【1】需要有线程源。比较线程池说白了就是一个存放线程的容器,自身不生产线程。(当然了,如果暂时不接入线程工厂的话,循环new也是一种最基本的方案)【2】需要有一个工作队列。我们的程序是一个进程,每个请求到达web容器,都会被创建一个线程(不一定,取决于web容器怎么配置的),那么同一时间可能有多个线程想要向工作队列提交任务,为了避免任务丢失,我们应该保证对队列的操作是同步的

2021-09-06 15:24:05 304

原创 项目中用到的单点登录技术

文章目录谈谈单点登录项目中用到的单点登录CAS server/client登录流程简述登出流程简述高可用单点登录的安全性公司项目的登录系统用到了单点登录技术,面试的时候被问到了,现在做个总结谈谈单点登录单点登录技术简单说,就是避免用户访问不同子系统二次登录的问题,尤其是大型项目中,业务子系统通常都是根据业务模块单独部署服务器的。对于同一个系统下访问,或者同源系统下的访问,使用cookie传递认证信息就可以实现会话信息的共享,从而实现单点登录。同源策略是浏览器产品的一种约定,是一种安全策略,如果两

2021-09-05 15:08:16 578

原创 公司项目改BUG:子线程异常信息无法传递到主线程

文章目录问题出现问题解决问题出现简单逻辑描述:用户下载模板上传的excel文件,然后填写后导入服务器,其中有一些字段有填写要求(例如A中填写1,则B只能填写1)。用户将excel文件导入服务器的时候,服务器基于多线程进行校验,如果校验失败则会抛出业务异常。然后将异常信息发给前台,进行提示。现在问题是,线程抛出异常后没有被主线程拿到,而是直接被JVM处理了(在服务器终端打印堆栈信息)我要做的就是,让主线程拿到子线程的异常信息,然后返回给前台问题解决以上这个问题如果复习过线程、线程池相关的资料,一

2021-08-31 18:54:36 615

原创 公司项目中getResource使用不当导致的BUG

文章目录问题出现getResource原理问题解决原理延伸问题出现该代码是一个文件下载的功能,代码在linux服务器上能够运行,但是检出到本地(windows)后报错。错误的原因是文件流没有获取到数据源,存在空指针异常。从上面的分析,大概就能推断,问题的原因出现该代码无法进行跨平台执行。这里贴两段出现问题的代码,就是简单的路径获取,没有什么业务相关的部分String xmlPath = (new StringBuilder(128)).append(this.getClass()

2021-08-30 13:43:07 348

原创 一段话总结一道题:力扣50~100选

文章目录

2021-08-20 21:28:16 176

原创 一段话总结一道题:力扣0~50选

文章目录

2021-08-14 14:53:18 242

原创 聊一聊redis底层的数据结构 + 设计跳表

文章目录

2021-08-13 10:51:43 200

原创 谈一谈mysql innoDB的事务与锁

文章目录理解事务事务的四个特性及innoDB的实现内存、文件与磁盘磁盘缓存——缓冲池WAL日志回滚日志二进制日志重做日志隔离级别四种隔离级别不同隔离性存在的问题脏读不可重复读幻读读写、写写冲突当前读快照读多版本并发控制MVCCmysql隔离级别实现加锁不加锁理解事务事务的四个特性及innoDB的实现内存、文件与磁盘磁盘缓存——缓冲池WAL日志回滚日志二进制日志重做日志隔离级别四种隔离级别不同隔离性存在的问题脏读不可重复读幻读读写、写写冲突当前读快照读多版本并发控制MVC

2021-08-08 19:03:45 316

原创 一段话总结一道题:剑指offer75道题

文章目录03:数组中重复的数字04:二维数组中的查找05:替换空格06:从头到尾打印链表07:重建二叉树(中序+前序)09:双栈实现队列10:斐波那契、青蛙跳台阶11:旋转数组的最小数字剑指的地址03:数组中重复的数字前提:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内遍历数组中每一个数字num,并且将这个数字作为索引,将取到的数字nums[num]进行标记进行标记,当一个待标记的nums[num]已经是一个负数,说明这个num就是重复的数字 public int

2021-08-07 21:09:55 318

原创 谈一谈mysql innoDB的缓冲池与日志文件

文章目录mysql的体系结构innoDB体系架构缓冲池日志回滚日志二进制日志重做日志慢查询日志mysql的体系结构innoDB体系架构缓冲池日志回滚日志二进制日志重做日志慢查询日志

2021-08-07 14:54:01 393

原创 谈一谈mysql innoDB的体系结构与执行细节

文章目录mysql架构mysql执行流程innoDB体系架构后台线程内存池buffer poolredo logo buffer关键字实现细节limitorder bygroup byunioncountselect语句的执行顺序update语句的执行流程mysql架构mysql执行流程innoDB体系架构后台线程内存池buffer pool这里bp的细节不再展开redo logo buffer关键字实现细节limitorder bygroup byunioncountsele

2021-08-04 21:55:19 150

原创 谈一谈mysql innoDB索引与优化

文章目录理解索引索引的几种实现实现对比B树和B+树对比mysql innoDB的索引索引的物理存储结构聚簇索引和辅助索引回表索引覆盖最左前缀索引失效索引的选择change buffer索引与约束自增索引设计原则理解索引索引的几种实现实现对比B树和B+树对比mysql innoDB的索引索引的物理存储结构聚簇索引和辅助索引回表索引覆盖最左前缀索引失效索引的选择change buffer索引与约束自增索引设计原则...

2021-08-01 21:52:36 312 2

原创 设计:栈和队列相互实现、最小栈、增量更新栈

文章目录

2021-07-26 20:56:02 102

原创 设计:循环双端队列

文章目录JDK的deque接口实现循环双端队列基于双向链表实现基于循环数组实现JDK的deque接口JDK1.6提供了双向队列的接口,它规定了一种双向队列的行为例如:头部插入/删除、尾部插入/删除。如果我们仅仅看deque接口的话(不看collection继承下来的方法),你会发现提供的方法都是基于头尾的。这个特点可以直接用于实现栈与队列。Deque接口继承自queue接口,特提供了更多指明方向的方法例如offerFirst、offerLast,如果仅使用Queue接口去接收一个实现类(如Linke

2021-07-26 17:59:45 258

原创 设计题:设计推特

文章目录

2021-07-26 13:51:27 392 1

原创 设计:哈希映射

文章目录

2021-07-25 23:35:26 121 1

原创 浅谈spring框架

文章目录spring理解IOC和DI理解AOPIOC原理AOP原理事务传播行为bean生命周期循环依赖问题注解的实现模拟框架识别注解springMVC理解MVC请求处理流程springBoot设计模式spring理解IOC和DI理解AOPIOC原理AOP原理事务传播行为bean生命周期循环依赖问题注解的实现模拟框架识别注解springMVC理解MVC请求处理流程springBoot设计模式...

2021-07-25 18:56:19 345 1

原创 聊一聊GC的内容

文章目录堆区的内存清理对象判活可达性分析STW安全点并发的可达性分析GC算法标记复制算法标记清除算法标记整理算法跨度引用问题经典垃圾回收器serialserial OldparNewparallel scavengerparallel oldCMSG1年轻代GCmixed GCFull GC常见GC参数堆区的内存清理对象判活可达性分析STW如果简单粗暴,那么就顺着GC root遍历整个对象图即可,但是如果需要顾及停顿时间,则可以考虑并发的可达性分析安全点并发的可达性分析GC算法标记复制算法

2021-07-24 22:44:07 320

原创 聊聊操作系统的I/O

文章目录IO设备IO通信IO控制轮询中断驱动DMAIO层次缓冲IO设备IO设备大致可以分为两大类:块设备和字符设备。其中块设备中的每一个块都可以独立于其他的块进行读写,而且每一个块都有自己的地址,支持随机访问,块设备的传输以一个块或多个连续的块为单位。如硬盘、磁盘、U盘。字符设备以字符为单位发送或接受一个字符流,没有任何块结构,是不可寻址的,也没有任何寻道操作。如网络接口、鼠标。IO设备一般由机械部件(设备本身)和电子部件(设备控制器)组成。为了屏蔽具体设备的差异,每个设备都对应一个管理他们的硬

2021-07-18 18:09:47 1143

原创 聊聊四大引用和引用对象

文章目录四种引用引用对象引用队列终结器引用finalize方法对象的三种状态对象的回收内存泄露问题内存泄露的排查与解决threadLocal原理内存泄露问题WeakHashMap四种引用引用对象引用队列终结器引用finalize方法对象的三种状态对象的回收内存泄露问题内存泄露的排查与解决threadLocal原理内存泄露问题WeakHashMap...

2021-07-16 22:27:47 323

原创 多线程程序设计题型分析

多线程设计题交替打印生产者和消费者死锁写一个死锁死锁排除和避免哲学家进餐问题

2021-07-09 22:45:46 95

原创 设计:死锁、哲学家进餐问题

文章目录理解死锁写一个死锁检测死锁哲学家进餐问题理解死锁写一个死锁检测死锁哲学家进餐问题

2021-07-03 16:40:29 224

原创 设计:读写锁

分析reentrantReadWriteLock锁分离锁降级设计读写锁初级高级

2021-06-29 22:23:15 241

原创 设计:优先队列、TOPK问题

文章目录TopK引入堆排序PriorityQueue源码简析写一个优先队列TopK引入又这么几种问题:求出当前数组最小值、求出当前数据流中第K大的数。前者是一个固定的范围,而后者是一个变化的范围(当然了,你也可以看作若干个固定范围的快照)。解决以上问题的一个思路是排序,则难以避免需要扫描整个数组的值,而基于堆排序的时间复杂度是O(n*logK)调整的时间复杂度取决于堆的高度,将K个元素组成一个堆(数组形式的完全二叉树),因此可以调整的时间复杂度就是logK,如果你对整个数组建堆那么调整的时间复杂度

2021-06-28 20:58:37 213

原创 java基础复习(八):聊聊synchronized和Lock/AQS

文章目录对线程安全问题的思考解构i++什么是同步和互斥线程通信为什么需要同步线程安全问题的解决方案加锁乐观锁与悲观锁无锁线程隔离threadLocal基本原理内存泄露问题Java内存模型原子/可见/有序问题的产生as-if-serial原则happens-before规则缓存一致性协议MESI缓存行总线嗅探CAS自旋锁(轻量级锁)无锁CAS存在的问题版本号CAS的内存语义synchronizedsynchronized的使用synchronize的内存语义jvm中的synchronizedsynchroni

2021-06-27 20:51:19 460

原创 不要再问我cookie和session的区别,因为没法比

上周第三轮面试被深问cookie和session给我问懵逼了,面试也毫无悬念地挂了。痛定思痛,准备写一篇博客好好理清HTTP的会话技术。文章目录cookie理解cookie的实质session使用场景CSRF 攻击cookieHTTP是无状态的协议,同一个用户发送连续两个请求报文,服务器并不能通过读取所谓的上下文去得知这个用户是否是一个“老用户”,究其原因还是因为服务器没有为客户端保存任何可以标识身份的信息。而什么是cookie,它是一个HTTP的请求头,这个请求头在request中就是cookie

2021-06-23 18:35:21 157

原创 设计题:抢红包

复习时遇到的一道设计题,感觉挺有意思的。总额为num的红包,分给若干个人,要求每个人不能抢到空的红包,每个红包的金额不能过于接近,应该有大有小。一个不错的思路:将人数people看作是people个线段,那么我们只需要在线段上随机选出people-1个不重复的点,最后将这people-1个点以及首尾两个哨兵端点看作一条线,计算每个相邻点之间的距离就对应红包的大小——总额为num看作长度为num的线段,分红包问题转换为划分线段的问题。当发红包的发出红包之后,这个红包就经过一次“分割算法”将若干个包存入数

2021-06-16 17:24:34 291

原创 java基础复习(七):谈谈volatile

文章目录线程安全问题出现的原因原子性可见性有序性Java内存模型JMM中的原子/可见/有序问题as-if-serial原则happens-before规则理解同步和互斥理解volatilevolatile的使用volatile的特性volatile原理解构i++对volatile变量i++的理解线程安全问题出现的原因程序最开始是静态的、原子的、顺序执行的,虽然CPU利用率不高(CPU总是能有时间偷懒),但是程序员需要操心的问题不多。为了提升效率,陆续引入进程和线程的概念,并且实现了相应的数据结构。程序变

2021-06-06 20:33:06 147 1

原创 聊聊DNS与CDN

文章目录理解DNSDNS流程理解CDNCDN流程理解DNSDNS流程理解CDNCDN流程

2021-06-04 17:45:31 210

原创 力扣复习启程!!从two sum开始

两数之和无序数组有序数组三数之和四数之和

2021-06-03 20:13:27 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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