自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何设计秒杀系统

目录秒杀系统架构设计都有哪些关键点?设计秒杀系统时应该注意的5个架构原则如何才能做好动静分离?有哪些方案可选?二八原则:有针对性地处理好系统的“热点数据”流量削峰这事应该怎么做?影响性能的因素有哪些?又该如何提高系统的性能?秒杀系统“减库存”设计的核心逻辑准备Plan B:如何设计兜底方案?秒杀系统架构设计都有哪些关键点?稳(高可用):虽然我介绍了很多极致的...

2019-09-05 09:58:36 444

原创 类加载机制和类加载器

jvm之java类加载机制和类加载器(ClassLoader)的详解目录类加载过程类的加载时机类加载器全盘负责委托机制类加载过程类的生命周期:类的加载过程:虚拟机把描述类的数据从class文件加载到内存中,并通过验证、准备、解析和初始化之后,最终形成JVM可以直接使用的Java对象。加载将类的class文件读入到内存中,并为之创建一个class对象。当...

2019-08-23 11:24:53 291

原创 操作系统

目录操作系统概述操作系统运行环境与运行机制进程/线程模型第四章 处理器调度(CPU调度)第五章 同步互斥执行第六章 同步互斥机制2-进程通信机制管程进程间通信典型操作系统的IPC机制第7章 存储模型基本概念物理内存管理伙伴系统基本内存管理方案1基本内存管理方案2交换技术第8章 虚拟存储技术虚拟存储技术页表及页表项的设计...

2019-08-20 10:55:23 586

原创 乐观锁与悲观锁

乐观锁总是假设最好的情况,每次使用数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在次期间别人有没有去更新这个数据,如果没有更新则可以进行更新操作,如果有更新可以不断的尝试(自旋)直到成功。实现方式:版本号机制,CAS算法版本号机制:在数据表中加一个版本号version字段,表示数据被修改的次数,数据每次被修改之后version+1.当线程要更新数据的时候,读取数...

2019-08-17 10:22:29 215

原创 Cookie和Session

目录存储位置(安全性):存储对象及大小:有效期Http是一个无状态的协议,服务器无法辨别这一次请求和上一次请求是否来自同一个客户端。这样就会导致比如说,用户登录后,再跳转到其它页面,又要进行登录才行。cookie和session可以解决这样的问题。Cookie和session都可以保存会话数据。区别:存储位置(安全性):cookie存储在浏览器上,所以是不安全的,其...

2019-08-12 16:06:32 204

原创 软件测试相关问题

软件测试理论知识基础详细解说—总结目录软件测试理论知识基础详细解说—总结软件研发流程软件测试基础软件测试原则软件测试的对象软件测试分类软件测试风险软件测试类型按照开发阶段划分按是否运行程序划分按照是否查看代码划分其它划分质量面试:杯子怎么测?1面试:杯子怎么测?2测试需求分析面试:测试拉杆箱面试:测试Web页面面试:测...

2019-08-12 10:56:39 504

原创 TCP和UDP

TCP首部源端口和目的端口:各占两个字节,加上IP首部的源IP地址和目的IP地址可以唯一确定一个TCP连接。数据序号:TCP面向字节流传输,表示这个报文段中第一个数据字节序号。4字节确认序号:仅当ACK标志位为1的时候有效。确认序号代表期望收到的下一个字节的序号。4字节偏移:头部长度,4位。和IP头部一样,以4字节为单位,最大为60字节。保留位:6位,必须是06个标志位...

2019-08-09 16:34:20 209

原创 HTTPS

目录HTTPS是什么HTTP的不足HTTPS的特点SSL/TLS 握手过程对称/非对称加密公私钥证书、签名、CA浏览器校验HTTPS缺点HTTPS是什么是加密超文本传输协议,在HTTP的基础上。利用SSL建立安全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份验证,同时保护交换数据的隐私与完整性。基于HTTP协议,通过SSL和TSL...

2019-08-09 11:21:38 1927

原创 浏览器缓存

目录强缓存ExpiresCache-control协商缓存协商缓存生效返回304Not Modified状态码协商缓存失效,返回200和请求结果Last-Modified和If-Modified-SinceETag和If-None-MatchLast-Modified和Etag的对比缓存机制实际使用场景用户行为对浏览器的影响浏览器缓存:缓解服务...

2019-08-09 09:56:15 149

原创 Spring中的事务管理

目录事务的特性Spring事务管理的核心接口PlatformTransactionManagerTransactionStatus事务状态TransactionDefinition基本事务属性的定义传播行为隔离级别只读事务超时回滚规则Spring的声明式事务和编程式事务Spring不直接管理事务,而是提供了很多事务管理器。Spring的事务管理器接口...

2019-08-06 16:36:28 226

原创 synchronized原理

作用确保线程访问互斥的同步代码 确保共享变量的修改能及时可见 有效解决重排序问题Java中的每一个对象都可以作为锁,这是synchronized的基础。普通同步方法,锁是当前实例对象 静态同步方法,所示当前类的class对象 同步方法块,锁是括号中的对象。synchronize底层原理同步代码块和同步方法实现的原理不同同步代码块:通过添加monitorEnter和mon...

2019-08-06 10:11:11 162

原创 动态代理

目录代理模式静态代理动态代理AOP中的动态代理代理模式给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。代理模式中代理对象和目标对象要实现相同的接口。优点:控制对目标对象的直接访问,可以很好的隐藏和保护目标对象。 最重要的一点是,在不改变目标方法的情况下对目标方法进行增强。静态代理静态代理就是为每一个需要代理的目标对象都创建一个代理类,...

2019-08-06 09:15:30 138

原创 Spring学习笔记(三)---Web开发

目录Spring MVC认识Spring MVCSpring的应用上下文(spring application context)Spring MVC的请求处理流程如何定义处理方法Spring MVC中的视图解析Spring MVC中常用的视图静态资源与缓存Spring MVC中的异常处理机制Spring MVC的切入点Spring MVC认识Spr...

2019-07-30 17:33:01 138

原创 Threadlocal

ThreadLocal当使用ThreadLocal维护变量的时候,在多个线程访问同一个变量的时候,为每一个线程创建一个变量副本,仅在当前线程使用。这样各个线程对共享变量的操作就互不影响。可以解决多线程并发的问题。像synchornized和Rentrantlock等同步机制是以时间换空间。ThreadLocal使用以空间换时间。ThreadLocalMapThreadLocal的实...

2019-07-30 11:06:51 89

原创 深入Redis

《Redis深度历险:核心原理和应用实践》 基础 应用1 原理1 原理3 拓展4目录基础-Redis数据结构string(字符串)list(列表)hash(字典)set(集合)zset(有序列表)容器型数据结构的通用规则过期时间应用1-分布式锁分布式锁超时问题可重入性原理1-线程IO模型非阻塞IO事件轮询(多路复用)指令队列...

2019-07-30 10:04:02 250

原创 数据库题解

目录leetcode595-大的国家leetcoede627-交换工资leetcode620-有趣的电影leetcode596-超过5名学生的课leetcode182-查找重复的电子邮箱leetcode196-删除重复的电子邮箱leetcode175-组合两个表leetcode181-超过经理收入的员工leetcode183-从不订购的客户leetcode1...

2019-07-29 09:35:09 286

原创 数据库疑点

目录IN和EXISTredo log和undo logundo logdelete/update操作的内部机制IN和EXISTSOL中的IN可以分为三类第一种: 1、形如select * from t1 where f1 in ('a','b'),应该和以下两种比较效率  select * from t1 where f1='a' or f1='b'  或...

2019-07-28 11:28:34 244

原创 MySQL查询性能优化

目录慢查询基础:优化数据访问是否向数据库请求了不需要的数据MySQL是否在扫描额外的记录重构查询的方式查询执行的基础MySQL客户端/服务端通信协议查询缓存查询优化处理查询优化器数据和索引的统计信息关联查询排序优化查询执行引擎返回结果给客户端MySQL查询优化器的局限性关联子查询如何用好关联子查询UNION的限制索引合并优化...

2019-07-28 10:17:50 196

原创 Spring学习笔记(二)---Spring中的数据操作

目录第二章 Spring中的数据操作如何配置数据源那些好用的连接池spring的事务抽象Spring的JDBC异常抽象第三章 O/R Mapping实践第四章 NoSQL实践Redis的哨兵与集群模式Spring的缓存抽象Redis在spring中的其它用法数据访问进阶通过Reactive的方式访问redisAOP拦截数据访问层摘要第二章 S...

2019-07-26 16:08:51 234

原创 MySQL索引优化

目录独立的列前缀索引和索引选择性多列索引选择合适的索引列顺序聚簇索引覆盖索引使用索引扫描来做排序压缩(前缀压缩)索引冗余和重复索引索引和锁Innodb特殊功能:自适应哈希索引。某些索引值被使用得非常频繁的时候,会在B+ Tree的基础上再创建一个哈希索引。独立的列独立的列指的是索引列不能是表达式的一部分,也不能是函数的参数例如:select...

2019-07-25 10:36:07 116

原创 算法-动态规划

目录leetcode70-爬楼梯leetcode343-整数拆分leetcode198-打家劫舍0-1背包问题完全背包问题leetcode416-分割等和字串leetcode300-最长上升子序列习题leetcode70-爬楼梯假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:...

2019-07-23 22:03:55 418

原创 算法-递归与回溯

保存递归的结果时使用数组或str具有天然的回溯性。反向思维:如果一个题正向解题较难,考虑逆向解题。比如说求满足某个条件的结果,可以找到不满足这个条件的结果,用原来给的源减去不满足条件的结果,剩下的就是满足条件的结果。目录leetcode17-电话号码的字母组合leetcode46-全排列leetcode77-组合leetcode79-单词搜索-二维平面的回溯leetcode...

2019-07-23 22:03:42 238

原创 Java秒杀系统

目录第一章 项目框架搭建第二章 实现登录功能数据库设计明文密码两次MD5处理JSR303参数校验+全局异常处理器分布式session第三章 实现秒杀功能数据库设计商品列表页商品详情页秒杀功能实现订单详情页第四章 JMeter压测JMeter入门自定义变量模拟多用户JMeter命令行使用Redis的压测工具redis-benchm...

2019-07-23 15:24:20 1419

原创 HashMap和ConcurrentHashMap源码分析

目录HashMap1 HashMap概述2 涉及到的数据结构:处理hash冲突的链表和红黑树以及位桶3 HashMap源码分析类的继承关系类的属性构造函数hash算法重要方法分析ConcurrentHashMap重要的属性put方法Remove方法size方法HashMap1 HashMap概述在JDK1.8之前,HashM...

2019-07-16 10:08:37 532

原创 高频面试点-JVM+GC解析

目录基础问题1:JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots?问题2:你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值问题3:你平时使用过的JVM常用基本配置参数有哪些问题4:强引用、软引用、弱引用、虚引用分别是什么?问题5:请谈谈你对OOM的认识?问题6:GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈?问题7:怎么查看...

2019-07-15 11:37:02 352

原创 Spring学习笔记

目录初识Spring数据操作Web开发Spring BootSpring Cloud初识Spring数据操作Web开发Spring BootSpring Cloud

2019-07-13 16:39:53 145

原创 Spring学习笔记(一)---Spring

目录Spring概述Spring是什么?Spring的优点Spring的体系结构程序解耦IOC的概念和作用基于XML的IOCSpring的依赖注入基于注解的IOC配置Spring中IOC的常用注解改造基于注解的IOC案例,使用纯注解的方式实现Spring和Junit的整合AOPAOP的相关概念Spring中的AOP基于XML的AOP...

2019-07-12 16:00:37 241

原创 高频面试点-多线程及高并发

目录volatileCAS集合类不安全公平锁/非公平锁/可重入锁/递归锁/自旋锁CountDownLatch/CyclicBarrier/Semaphore阻塞队列synchornized和lock的区别实现线程的三种方式线程池死锁编码及定位分析volatile问题:谈谈对volatile的理解?volatile是Java虚拟机轻...

2019-07-11 17:20:45 543

原创 Servlet

目录如何创建web项目?如何开发一个servlet程序?servlet的生命周期如何创建web项目?https://blog.csdn.net/u013393958/article/details/78329192使用Intellij IDEA新建Web项目如何开发一个servlet程序?编写java类,继承HttpServlet类 重写doGet和doPo...

2019-07-03 16:46:45 205

原创 Socket

目录Windows下的5种IO模型1 select(选择)模型--轮询fd_set集合2 异步选择(WSAAsyncSelect)3 事件选择(WSAEventSelect)4重叠IO(Overlapped I/O)5 完成端口(Completion Port)Linux下的5种IO模型阻塞式IO非阻塞式IOIO复用信号驱动异步IO五大IO模型...

2019-07-03 15:12:09 330

原创 maven学习笔记

目录maven是什么?为什么要使用maven?maven的优点maven的三种仓库maven是什么?maven是Apache下的项目管理工具,它由纯java语言开发,可以帮助我们更方便的管理和构建maven项目。总结主要的优点是:maven构建项目从本地仓库获取需要的jar包,减轻项目的体积,多个项目可以共享jar包。为什么要使用maven?jar包管理:...

2019-07-02 16:59:50 101

原创 算法-二叉树和递归

二叉树问题考虑递归,双重递归目录leetcode104-二叉树的最大深度leetcode226-翻转二叉树leetcode112-路径总和leetcode257-二叉树的所有路径leetcode437-路径总和leetcode235-二叉搜索树的最近公共祖先习题leetcode111-二叉树的最小深度leetcode100-相同的树leetcode101...

2019-07-01 21:22:53 267

原创 面向对象

https://github.com/CyC2018/CS-Notes/blob/master/notes/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%80%9D%E6%83%B3.md目录一、三大特性封装继承多态二、类图泛化关系实现关系聚合关系组合关系关联关系依赖关系三、设计原则S.O.L.I.D...

2019-06-28 16:06:24 134

原创 设计模式

设计模式.md目录设计模式.md创建型1 单例(Singleton)2 简单工厂(Simple Factory)3 工厂方法4 抽象工厂5 生成器6 原型模式行为型1 责任链2 命令3 解释器4 迭代器5 中介者6 备忘录7 观察者8 状态9 策略10 模板方法11 访问者12 空对象结构型1 适配器...

2019-06-28 15:24:54 124

原创 数据库-Redis

目录Windows下Redis安装教程Redis概述为什么要使用nosql(redis)Redis能做什么不能做什么?为什么使用Redis?Redis的五种基本类型及底层实现底层数据结构基本数据结构使用场景Redis和Memcached键的过期时间数据淘汰策略持久化持久化的配置AOF的配置工作原理定时任务RDB的原理AOF...

2019-06-27 10:25:00 293

原创 MySQL性能优化3-深入InnoDB

目录事务概念ACID并发一致性问题事务四种隔离级别InooDB引擎对隔离级别的支持程度锁封锁粒度封锁类型共享锁(行锁):Shared Locks排它锁(行锁):Exclusive Locks思考:InooDB到底锁住了什么?意向共享锁、意向排它锁(表锁):自增锁:AUTO-INC Locks记录锁 (Record Locks)、间隙锁 (...

2019-06-25 16:24:21 260

原创 算法-栈、队列、优先队列

目录leetcode20-有效的括号leetcode144-二叉树的前序遍历leetcode102-二叉树的层次遍历leetcode279-完全平法数leetcode347-前k个高频元素习题leetcode150-逆波兰表达式求值leetcode94-二叉树的中序遍历leetcode145-二叉树的后序遍历leetcode341-扁平化嵌套列表迭代器l...

2019-06-24 20:37:32 318

原创 MySQL性能优化2-MySQL体系结构、存储引擎、查询机制

目录MySQL体系结构各大存储引擎存储引擎介绍CSV存储引擎archive存储引擎Memory存储引擎MyISAMInnoDB查询机制查询执行的路径mysql 客户端/服务端通信通讯方式查询状态查询缓存查询缓存的相关设置不会缓存的情况为什么mysql默认关闭了缓存开启??查询缓存使用场景查询优化处理查询优化处理的...

2019-06-24 16:45:55 1621

原创 MySQL性能优化1-MySQL索引机制(B+ Tree)

目录索引是谁实现的什么是索引B+ TreeMySQL B+ Tree的实现(主要InnoDB MyISAM中)MyISAMInnoDB索引知识补充列的离散性最左匹配原则联合索引覆盖索引小结索引是谁实现的存储引擎是在表上实现的,一个库中的表可以使用不同的存储引擎。索引就是由存储引擎来实现的。什么是索引正确的创建合适的索引是提升数据...

2019-06-24 11:35:20 217

原创 算法-链表

目录leetcode206-反转链表leetcode24-两辆交换链表中的节点leetcode147-对链表进行插入排序leetcode237-删除链表中的节点leetcode19-删除链表倒数第N个节点习题leetcode92-反转链表2leetcode83-删除链表中的重复元素leetcode86-分隔链表leetcode328-奇偶链表leetco...

2019-06-23 15:23:54 361

空空如也

空空如也

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

TA关注的人

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