暂时未有相关云产品技术能力~
暂无个人介绍
前言 该项目写完也有一段时间了,为了避免以后忘记该项目的一些实现的原理,所以写下这篇博客来记录一下该项目的设计等
SpringMVC的流程
先直接说出过程,再来演示具体的操作
接着上篇BlockingQueue没讲完的 LinkedTransferQueue LinkedTransferQueue是一个由链表结构组成的无界阻塞队列,相对于其它阻塞队列,LinkedBlockingQueue可以算是LinkedBlockingQueue与SynhronoousQueue结合,LinkedtransferQueue是一种无界阻塞队列,底层基于单链表实现,其内部结构分为数据节点、请求节点,基于CAS无锁算法实现
网上看了好多文章将线程池的但是似乎都没的多少人会详细讲解里面的任务队列,所以只有自己动手学习其中的任务队列 BlockingQueue
线程过多就容易引发内存溢出,因此我们有必要使用线程池的技术 线程池的好处 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度: 当任务到达时,任务可以不需要等待线程创建就能立即执行 提高线程管理性: 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源还会降低系统的稳定性,使用线程池可以进行统一的分配、调优和监控
HTTP1.0、1.1、2.0、3.0的区别
查询服务器域名对应的IP地址 其中域名的层级关系类似于一个树状结构 根DNS服务器(.) 顶级域名服务器(.com) 权威DNS服务器(server.com)
用户空间与内核空间 进程的寻址空间会划分为两部分:内核空间、用户空间 用户空间只能执行受限的命令,而且不能直接调用系统资源,必须通过内核提供的接口来访问 内核空间可以执行特权命令。调用一切系统资源
每日三题-旋转图像、合并区间、除自身以外数组的乘积
如何定位慢查询SQL以及优化
每日三题-最大矩形、比特位计数、回文子串
每日三题-最大正方形 、完全平方数 、目标和
每日三题-乘积最大子数组、零钱兑换、戳气球
每日三题-编辑距离、分割等和子集、单词拆分
索引的数据结构、索引及其优缺点、索引的声明与使用以及索引的设计原则
每日三题-打家劫舍、打家劫舍III、最佳买卖股票时机含冷冻期
Git常见命令与使用,从0到1学会使用Git
每日三题-最大子数组和、不同路径、最小路径和
概述 垃圾收集器需要完那些内存需要回收? 什么时候回收? 如何回收?
Redis如何实现数据不丢失 Redis的读写操作都是在内存中,所以Redis性能才会高,但是当Redis重启后,内存中的数据就会丢失,那为了保存内存中的数据不会丢失,Redis实现了数据持久化机制,会把数据保存到磁盘,这样Redis重启就能够从磁盘恢复原有的数据
每日三题-爬楼梯、买卖股票的最佳时机、正则表达式匹配
代理类在程序运行时创建的代理方式被称为动态代理 静态代理中,代理类是自己定义好的,在程序运行之前就已经编译完成。然而动态代理,代理类并不是在Java代码中定义的,而是运行时根据我们在Java代码中的指示动态生成的。相比较静态代理,动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类中的方法,比如想要在每个代理方法前都加上一个处理方法,静态代理就需要在每个类内部加上这个方法
每日三题-最长回文子串、搜索二维矩阵II、最长递增子序列
写在前面,因为我们最近的大作业项目需要用到热点排行这个功能,因为我们是要使用Elasticsearch来存储数据,然后最初设想是在ES中实现这个热点排行的功能,但是经过仔细思考,在我们这个项目中使用ES来做热点排行是一个很蠢的方式,因为我们这只是一个很小的排行,所以最终我们还是使用Redis来实现热点排行
MySQL的逻辑架构--逻辑架构剖析、SQL执行流程、数据库缓冲池(buffer pool)
session共享问题及解决方案
每日三题 跳跃游戏 根据身高重建队列 任务调度器
什么是RabbitMQ 使用AMQP高级队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦
TCP概述 TCP是一种面向连接的协议,在发送数据前通信双方必须在彼此间建立一条连接 所谓的连接其实就是客户端和服务器的内存里保存一份关于对方的信息,如IP地址、端口 TCP是一种字节流,它会处理IP层的丢包、重复以及错误问题 在建立连接的过程中,双方交换的一些参数可以放到TCP的头部 总结 :TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接,四次挥手关闭一个连接
每日三题 子集 单词搜索 删除无效的括号
每日三题 组合总和 全排列 括号生成
排序算法 • 冒泡排序 • 冒泡排序的优化 • 选择排序 • 插入排序 • 快速排序 • 归并排序 • 堆排序
每日三题-下一个排列、颜色分类、寻找重复数
每日三题-盛最多水的容器、三数之和、移动零
每日三题-数组中的第K个最大元素、滑动窗口最大值、前K个高频元素
每日三题 二叉树的最大深度 二叉树中的最大路径和 路径总和III
每日三题-翻转二叉树、二叉树的最近公共祖先、二叉树的序列化与反序列化
问题描述 微服务项目中其它模块不能依赖common模块中的依赖 而common中是有依赖的
问题描述 SpringCloudGateWay中跨域配置不起作用
本文目录 主从复制流程 主从复制的类型 主从复制内容方式 主从复制的优点
本文目录 CPU密集型 IO密集型 选择线程数量 区别 总结
ReentrantLock的功能详解与理解
自动拆箱与自动装箱 自动拆箱、自动装箱是JDK1.5开始提供的功能,自动拆箱可以把一个包装类型的对象赋值给对应的基本类型,自动装箱则相反。因为Java是一门面向对象的语言,而基本数据类型不具备对象的特点,所以提供了装箱与拆箱。比如某个方法需要传入object类的参数,但实际传入的是数字,如果没有自动拆、装箱就需要特殊处理
每日三题 对称二叉树 从前序与中序遍历序列构造二叉树 不同的二叉搜索树
每日三题 二叉树的层序遍历 二叉树的中序遍历 最小覆盖子串
每日三题 无重复字符的最长子串 最长连续序列 找到字符串中所有字母异位词
LongAdder 有了AtomicLong为什么还要LongAdder LongAdder中的主要方法
每日三题 电话号码的字母组合 字母异位词分组 找到所有数组中消失的数字
每日三题 接雨水 柱状图中最大的矩形 每日温度