摘要: 原文链接:http://www.cnblogs.com/wangdaijun/p/5281912.html http://www.linkedkeeper.com/detail/blog.action?bid=1043 1:问题描述,以及分析 项目用了spring数据源动态切换,服务用的是dubbo 阅读全文
posted @ 2018-06-27 14:50 chengchao 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 原文链接: http://www.promptness.cn/article/4 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, 阅读全文
posted @ 2018-06-27 11:47 chengchao 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 前言 spring目前已是java开发的一个事实标准,这得益于它的便利、功能齐全、容易上手等特性。在开发过程当中,操作DB是非常常见的操作,而涉及到db,就会涉及到事务。事务在平时的开发过程当中,就算没有注意到,程序正常执行不会有副作用,但如果出现了异常,而又没有处理好事务的话,可能就会出现意想不到 阅读全文
posted @ 2018-06-27 10:30 chengchao 阅读(4178) 评论(0) 推荐(1) 编辑
摘要: 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细 阅读全文
posted @ 2018-06-26 10:55 chengchao 阅读(234) 评论(1) 推荐(1) 编辑
摘要: 1、Java的运算符,分为四类: 算数运算符、关系运算符、逻辑运算符、位运算符。 算数运算符(9):+ - * / % ++ -- 关系运算符(6):== != > >= < <= 逻辑运算符(6):&& || ! ^ & | 位运算符(7):& | ~ ^ >> << >>> 2、截尾和舍入 当f 阅读全文
posted @ 2018-01-17 15:30 chengchao 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 1、对象存储位置: ①寄存器:最快的存储区,但不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象 ②栈:位于RAM中,但通过堆栈指针可以从处理器获得直接支持 ③堆:位于RAM中,用于存放所有的java对象 ④常量存储:通常存放于程序代码内部 ⑤非RAM存储:如果数据完全存活于程序之外,那么它可以 阅读全文
posted @ 2018-01-10 17:35 chengchao 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1、对象具有状态、行为和标识。 状态:内部数据 行为:方法 标识:每一个对象在内存中都有一个唯一的地址 2、java applet是什么,以及为什么没有流行。 Applet是一种java程序,运行于支持java的web浏览器内。 ①要求浏览器装JVM ②开发困难,没有好的IDE ③性能问题 阅读全文
posted @ 2018-01-10 16:04 chengchao 阅读(127) 评论(0) 推荐(0) 编辑
摘要: SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处 阅读全文
posted @ 2017-07-24 22:35 chengchao 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 有数据表明:用户可以承受的最大等待时间为8秒。 之前曾见过某个产品的一个列表页,40秒左右才能加载出来,几乎没有进行任何优化措施。 没有索引,没有缓存机制,没有进行sql优化(sql语句很长,并且各种left join表关联)。 数据库优化策略有很多,设计初期,建立好的数据结构对于后期性能优化至关重 阅读全文
posted @ 2017-07-05 14:18 chengchao 阅读(394) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch: 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,aw 阅读全文
posted @ 2017-05-03 15:00 chengchao 阅读(334) 评论(0) 推荐(0) 编辑