上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页
摘要: 为何出现死循环简要说明 HashMap是非线程安全的,在并发场景中如果不保持足够的同步,就有可能在执行HashMap.get时进入死循环,将CPU的消耗到100%。 HashMap采用链表解决Hash冲突。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行 阅读全文
posted @ 2019-08-08 09:16 kosamino 阅读(7708) 评论(0) 推荐(2) 编辑
摘要: 闭锁:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。即,一组线程等待某一事件发生,事件没有发生前,所有线程将阻塞等待;而事件发生后,所有线程将开始执行;闭锁最初处于封闭状态,当事件发生后闭锁将被打开,一旦打开,闭锁将永远处于打开状态。 闭锁CountDownL 阅读全文
posted @ 2019-08-08 01:46 kosamino 阅读(3591) 评论(0) 推荐(0) 编辑
摘要: 一、EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 二、SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果 阅读全文
posted @ 2019-08-06 09:28 kosamino 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 下面这样写法是Vector线程不安全的写法: 尽管Vector get()、remove()、get() 方法是I同步的 但运行上面程序会出现以下错误: HashTable线程不安全写法: 会出现很多null值,但不错,因为没有那个key ,但不会报错 在多线程环境中,如果不在方法调用端做额外的同步 阅读全文
posted @ 2019-08-06 00:07 kosamino 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 一.为什么要有红黑树这种数据结构? 我们知道ALV树是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为O(log n),由于其严格按照左右子树高度差不大于1的规则,插入和删除操作中需要大量且复杂的操作来保持ALV树的平衡(左旋和右旋),因此ALV树适用于大量查询,少量插入和删除的 阅读全文
posted @ 2019-08-05 03:04 kosamino 阅读(2007) 评论(0) 推荐(0) 编辑
摘要: 一、前言 动态查找树主要包括:二叉查找树,平衡二叉树,红黑树,B树,B-树,查找的时间复杂度就为O(log2N),通过对数就可以发现降低树的深度就会提高查找效率。在大数据存储过程,大量的数据会存储到外存磁盘,外存磁盘中读取与写入某数据的时候,首先定位到磁盘中的某一块,这就有个问题:如何才能有效的查找 阅读全文
posted @ 2019-08-04 18:38 kosamino 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 简介 SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。 应用场景 1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等等。 2、权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直 阅读全文
posted @ 2019-07-07 18:34 kosamino 阅读(23404) 评论(0) 推荐(4) 编辑
摘要: 过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求 阅读全文
posted @ 2019-07-07 16:22 kosamino 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 本地缓存和分布式缓存 本地缓存:使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。 分布式缓存:使用redis或memcached之类的称为分布式缓存,在多实例的情况下, 阅读全文
posted @ 2019-07-06 23:46 kosamino 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: Redis缓存设计及常见问题 缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。下面会介绍缓存使用技巧和设计方案,包含如下内容:缓存的收益和成本分析、缓存更新策略的选择和使用场景、缓存粒度控制法、穿透问题优化、无底洞问题优化、雪崩问题优化、热点key重建优化。 缓存 阅读全文
posted @ 2019-07-03 01:22 kosamino 阅读(9630) 评论(1) 推荐(2) 编辑
摘要: 开发中会经常使用包扫描,只要标注了@Controller、@Service、@Repository,@Component 注解的类会自动加入到容器中,ComponentScan有注解和xml配置两种方式。 注解 @ComponentScan 包含过滤和排除过滤 ComponentScan.Filte 阅读全文
posted @ 2019-06-18 02:51 kosamino 阅读(8261) 评论(0) 推荐(1) 编辑
摘要: Mysql支持的多种数据类型主要有:数值数据类型、日期/时间类型、字符串类型。 1、整数类型 2、浮点数&定点数 注:定点数以字符串形式存储,对精度要求高时使用decimal较好;尽量避免对浮点数进行减法和比较运算。 3、时间/日期类型 4、字符串类型 blob-二进制大对象,用来存储可变数量的数据 阅读全文
posted @ 2019-06-17 03:45 kosamino 阅读(266) 评论(0) 推荐(0) 编辑
摘要: MySQL时间格式 mysql所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。 几种类型比较如下: DATETIME DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份(见上表)比较长久。如果实际应用中有这样的 阅读全文
posted @ 2019-06-17 03:00 kosamino 阅读(6423) 评论(0) 推荐(0) 编辑
摘要: 在 SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。 一、类型支持 1、默认支持类型 SpringMVC 有支 阅读全文
posted @ 2019-06-14 02:19 kosamino 阅读(2666) 评论(0) 推荐(2) 编辑
摘要: 命令简介: 该命令用于密码时效管理。它可以修改账号和密码的有效期。对于chage命令的描述如下所示: The chage command changes the number of days between password changes and the date of the last pass 阅读全文
posted @ 2019-05-23 22:19 kosamino 阅读(361) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页