自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱雨轩

人生最遗憾的事,莫过于本可以做的事却没有做到!

  • 博客(145)
  • 资源 (28)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 搭建新项目注意事项

作为项目负责人,一开始要做很多事情,总会忽略很多比较关键的地方。以下是关于之前项目的一些总结,以后再遇到新项目时,一定要先仔细阅读此总结再开始新项目的搭建。一、数据库相关1.设计数据库时尽量确认好每个字段的长度、类型 在类型方面,特别需要注意的是:数字类型要明确是否有小数,时间的存储类型确认 好是string、datetime还是date。2.保证数据库字段名字符合实际指代的意...

2017-11-06 20:14:52 1062

原创 Java消息中间件(activeMQ)

视频学习记录第一章 消息中间件概述1. 消息中间件的好处解耦、异步、横向扩展、安全可靠、顺序保证2. 什么是消息中间件发送和接收数据,利用高效可靠的异步消息传递机制集成分布式系统3. 什么是JMS(规范)Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API4. 什么是AMQP(协议)AMQP(advanced message queuing

2017-10-31 18:55:05 2382

原创 solr管理界面详解

目录 1.Dashboard(仪表盘) 1 2.Logging(日志) 2 3.Core Admin (core管理) 3 4.Java Properties 6 5. Core Selecter(core选择器) 6 5.1 overview(概览) 6 5.2 Analysis(分析) 7 5.3 Dataimport(从数据库导入数据)

2016-08-02 10:42:54 29109 10

原创 知识网址收集

mybatis 自动生成代码工具1.MyBatis-Generator在Eclipse上配置及使用 :2.Mybatis Generator最完整配置详解 :mybatis1. Mybatis Plus官网教程网站易百慕课网菜鸟教程JAVA下载jar包:http://www.java2s.com/可以下载大多jar包

2016-06-17 17:17:39 1193 1

翻译 深究angularJS——(上传)FileUploader中文翻译

1.???????http://www.bootcdn.cn/angular-file-upload/readme/ API ? https://github.com/nervgh/angular-file-upload/wiki/Module-API ??? ???http://nervgh.github.io/pages/angular-file-upload/examples/simpl

2016-06-16 16:27:09 18162 8

原创 Java锁详解之改进读写锁StampedLock

文章目录先了解一下ReentrantReadWriteLockStampedLock先了解一下ReentrantReadWriteLock当系统存在读和写两种操作的时候,读和读之间并不会对程序结果产生影响。所以后来设计了ReentrantReadWriteLock这种读写分离锁,它做到了读与读之间不用等待。示例: // 读写锁 private static ReentrantR...

2019-07-11 18:10:24 606

原创 Java锁详解之ReentrantLock

ReentrantLock是除了synchronized用得较多的一种锁。ReentrantLock也属于重入锁,后面接着就会提到它的重入锁实现原理。ReentrantLock的功能要比内部锁synchronized更多,如指定锁等待时间的方法tryLock(long time,TimeUnit unit)、中断锁的方法lockInterruptibly()、没获取锁直接返回的方法tryLock...

2019-07-04 14:56:02 616

原创 Java锁详解

文章目录什么是锁锁的实现方式锁涉及的几个重要概念类锁和对象锁(重要)synchronized实现原理什么是锁计算机还是单线程的时代,下面代码中的count,始终只会被一个线程累加,调用addOne()10次,count的值一定就累加了10。public class Test { // 计数器 private Integer count = 0; // 累加...

2019-06-29 22:57:22 4225

原创 SQL拆分实现与注意事项

SQL拆分的背景任何系统的设计都是在不断的迭代中改进的,在系统最初的阶段,能够最快的完成功能是首要任务,这就会导致我们在写数据查询时使用了大量的关联查询。而当系统用户慢慢增加到我们不得不分库分表的时候,原先的关联查询就会失效,这就迫使我们不得不将之前的关联查询拆分开,然后利用代码逻辑进行关联操作。如何拆分SQL(left join 拆分)其实,各种关联操作的拆分思想基本是一样的,只是在不同的...

2019-03-18 17:41:39 1238

原创 冒泡排序——《图解算法》

冒泡排序分从大到小和从小到大两种排序方式。它们的唯一区别就是两个数交换的条件不同,从大到小排序是前面的数比后面的小的时候交换,而从小到大排序是前面的数比后面的数大的时候交换。我这里只说 从小到大的排序方式。冒泡排序的原理:从第一个数开始,依次往后比较,如果前面的数比后面的数大就交换,否则不作处理。这就类似烧开水时,壶底的水泡往上冒的过程。一、 图解分析现以数组[8,7,6,4,5]为例,我...

2018-11-01 18:21:54 32599 10

原创 mysql锁相关讲解及其应用——《深究mysql锁》

一、mysql的锁类型(1) 共享/排它锁(Shared and Exclusive Locks)共享锁和排他锁是InnoDB引擎实现的标准行级别锁。拿共享锁是为了让当前事务去读一行数据。拿排他锁是为了让当前事务去修改或删除某一行数据。。设置共享锁:select * from user where id = 1LOCK IN SHARE MODE;设置排他锁:sel...

2018-10-24 15:39:55 5664 6

原创 key+value实现动态字段的存储设计

1

2018-10-10 14:15:27 2500

原创 一分钟明白各种SQL语句加的什么锁——《深究Mysql锁》

一、正常查询在4个事务隔离级别中,除了在串行化(Serializable)时会加共享锁,其他的都不加锁,即快照读。二、加了锁的查询加锁select主要是指: select ... for update select ... in share mode 1.当使用唯一索引来搜索唯一行的语句时,使用记录锁(record lock)。如:select * from ...

2018-09-04 17:11:20 3134

原创 一分钟了解Mysql的间隙锁——《深究Mysql锁》

什么是间隙锁?间隙锁是一个在索引记录之间的间隙上的锁。间隙锁的作用保证某个间隙内的数据在锁定情况下不会发生任何变化。比如我mysql默认隔离级别下的可重复读(RR)。当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值为10的行使用记录锁。select * from t where id = 10 for update;// 注意...

2018-09-04 16:37:20 16431 13

原创 一分钟理清Mysql的锁类型——《深究Mysql锁》

延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁一分钟深入Mysql的意向锁我们常用的存储引擎就MyISAM和InnoDB。MyISAM存储主要就简单的表级别锁,下面只说InnoDB的各种锁类型。InnoDB不仅支持行级别的锁,也支持表级别的锁。平常我们会听到各种锁,你是不是不仅迷茫它们怎么用的,还会迷茫它们 各自之间都是什么关系?什么是乐观锁和悲观锁?...

2018-08-25 16:43:14 4178

原创 一分钟深入Mysql的意向锁——《深究Mysql锁》

延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁mysql锁相关讲解及其应用——《深究mysql锁》了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没有MVCC的知识,理解起来会总觉得不明朗。本来我的这个只是个记录,并不是专门的讲给别人看的,后发现有不少人看,我还是专门加上这篇文章的链接。在《五分钟了解Mysql的行级锁》中说到,InnoDB为了让表...

2018-08-24 14:29:56 17881 17

原创 五分钟了解Mysql的行级锁——《深究Mysql锁》

我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定 表级锁定参考:三分钟了解Mysql的表级锁——《深究Mysql》 页级锁定参考:[三分钟了解Mysql的页级锁——《深究Mysql》]一、定义每次锁定的是一行数据的锁机制就是行级别锁定(r...

2018-08-23 18:41:50 26682 8

原创 三分钟了解Mysql的表级锁——《深究Mysql锁》

我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。可根据不同的场景选用不同的锁定机制。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定一、定义每次锁定的是一张表的锁机制就是表级别锁定(table-level)。它是MySQL各存储引擎中粒度最大的锁定机制。二、优缺点1. 优点...

2018-08-23 16:17:34 4422

原创 什么样的编程姿势才没有bug

1

2018-07-29 16:58:05 349 1

原创 Spring事务的处理流程、传播属性、及部分释疑

事务 总结

2018-07-15 12:11:32 1301

原创 Java单例模式双重检查锁定中volatile关键字的作用

首先要说的是,个人推荐使用饿汉模式和静态内部类方式实现单例模式。 懒汉模式中,双重检查锁定代码如下:public class Singleton{ // 静态属性,volatile保证可见性和禁止指令重排序 private volatile static Singleton instance = null; // 私有化构造器 private Si...

2018-06-21 11:55:11 5884 8

原创 线程同步

同步代码块同步方法synchronized修饰静态方法和实例方法的区别同步锁(Lock)Lock与synchronized 的区别注:Thread的 suspend() 方法容易导致死锁,所以Java不再推荐使用该方法来暂停线程的执行。同步代码块synchronized加在代码块上。示例:synchronized(obj){}上述代码中obj就是同步监...

2018-06-18 17:46:11 137

原创 线程的控制

join线程在线程A中,如果线程B对象调用了 join() 方法,则线程A会阻塞,直到线程B执行完后才能继续执行。线程B就是join线程。相关方法 join() :线程A等到线程B执行完join(long millis):线程A等待了millis毫秒后就不再等待了守护线程(后台线程、精灵线程)线程在启动之前设置了daemon属性为true的线程就是守护线程。Dae...

2018-06-18 12:01:02 134

原创 架构师之路总结

通用设计与方法论一些名词解释: 1)nginx:一个高性能的web-server和实施反向代理的软件 2)lvs:Linux Virtual Server,使用集群技术,实现在linux操作系统层面的一个高性能、高可用、负载均衡服务器 3)keepalived:一款用来检测服务状态存活性的软件,常用来做高可用 4)f5:一个高性能、高可用、负载均衡的硬件设备(听上去和lvs功能差不多?...

2018-06-13 10:36:12 6866 2

原创 线程的生命周期

写在前面新建、就绪状态运行、阻塞状态线程死亡写在前面线程的相关内容还是好久好久之前看过,现在又特地回头看看,并整理整理相关的笔记了。不过,重新回头来看,认识又将不一样。线程的生命周期会经历以下几个状态:新建:new创建线程对象时就绪:调用start()方法时运行:调用run()方法时阻塞: 多种原因可导致阻塞死亡:dead线程状态转换...

2018-05-27 18:38:22 6738

原创 MySQL的查询性能优化——《深究MySQL》

写在前面mysql查询缓慢的原因有哪些? 1.查询语句是否请求了不必要的多余数据 2. 总结以上原因之后,优化数据库性能,就需从以下几个方面着手: 1.- 在说明:下面的知识为零散的记录,后期需要整理mysql优化方面1.in 和 exsits的区别和效率参考:https://www.cnblogs.com/emilyyoucan/p/7833769.h...

2018-05-15 07:22:03 902

原创 补充spring事务传播性没有考虑的几种情况

事务在数据库中的几个重点:数据库执行事务的时候,是先将数据插入到日志中,如果没有遇到回滚,则在提交事务的时候将日志操作同步到数据库。如果回滚的话,则日志的操作不再插入数据库中。如果发生回滚,则主键还是会增大的即主键会变得不连续。例如,本应该插入的数据id为100,但是发生了回滚,则后面再正确插入的数据的主键会是101。JDBC对事务的支持是放在Connection连接中的。事务在s...

2018-05-12 12:11:14 369

原创 问题集锦

一、Eclipse/Tomcat1.eclipse3.6默认指向 WebContent 目录 修改为 webRoot在 eclipse3.6中 , 它默认指向 的webRoot 为 WebContent目录 ,如果 , 我们的项目 webRoot 目录不是这个名 , 我们迁移项目时等情况就会出现404。如何更改?第一种情况, 新建项目时的设置: 在新建对话框下一步, 进行...

2018-02-10 08:45:48 159

原创 zookeeper安装( windows环境)

1.下载Apache官方最新版本为:3.4.8 下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz 下载后并解压到你指定的磁盘位置2.将conf下的zoo_sample.cfg改名为zoo.cfg之所以要这么做,是因为zookeeper默认的配置文件名就叫zoo.c

2018-02-04 13:10:50 239

原创 《Java设计模式与实践》——工厂模式

一直觉得设计模式这个东西只能浮于表面落不了地,毕竟java后端在一般情况下是很少会用到,因为大部分业务逻辑只是很简单的增删改查。最近几天想再回头看看设计模式,突然想到,如果将设计模式的理论与我们平时能接触到源码里应用到的进行比较,岂不是对我们的理解有更好的帮助?想想看,源码里的代码至少比我们的代码规范,设计模式应用得也比大部分网上举的例子更准确。于是我就想着边学理论边研究下对应的设计模式的源码。1、

2018-01-14 00:01:52 931

原创 高性能的索引实现——《深究MySQL》

本篇主要总结的使索引更高效的方式1.独立的列独立的列,指的是建了索引的列不能在sql查询语句中进行计算。不然索引会失效。错误示例: select * from user where user_id +1 =11; select * from user DATE(create_date) > ‘2017-10-10’;如果create_date建了索引,该索引会失效。...

2018-01-03 22:20:27 280

原创 优化MySQL数据类型——《深究MySQL》

1. 选择数据类型总体原则1.1 操作整型比字符简单   因为字符的字符集和校对规则(排序规则)使得字符的比较比整型的比较更为复杂。   如我们应该用datetime、date或time存储日期类型,而不是字符串。   我们也应该用整型来存储IP地址。 1.2 尽量避免Null   NULL的列可使得索引、索引统计和值的比较都更复杂。   可为NULL的列会占用更多的存储空间,因为

2018-01-01 22:22:54 418

原创 Mybatis中 Integer 值为0时,默认为空字符串的解决办法

问题需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户。<select id="selectSelective" parameterType="com.agri.entity.User" resultMap="map"> select * from sys_user where del_flag = 1 <if test=

2017-12-14 10:30:07 4875

原创 MySQL概要——《深究MySQL》

1. MySQL架构MySQL的存储引擎架构将查询处理等系统任务和数据的存或取相分离。这种分离设计使得可根据不同的需求选择不同的存储方式。存储引擎不会解析SQL,InnoDB例外,它会解析外键定义,因为MySQL服务器本身没有实现该功能。MySQL会解析查询并创建内部数据结构(解析树),然后对其进行重写查询、决定表的读取顺序、选择合适的索引等优化。2. 锁读锁(也叫共享...

2017-12-03 22:23:27 423

原创 JavaScript中Console的9个常用调试命令

来源《码农网》:http://www.codeceo.com/article/9-console-command.html

2017-11-28 09:28:54 345

原创 字符串的编码

计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。由于计算机是美国人发明的,因此,最早只有12

2017-11-27 20:25:09 183

原创 重新理解@Resource注解

@Resource和@Autowired注解都是用来实现依赖注入的。只是@Autowired按byType自动注入,而@Resource默认按 byName自动注入。   @Resource有两个重要的属性,分是name和type。   Spring将name属性解析为bean的名字(最需要重新理解的就是这个bean名字),而type属性则解析为bean的类型。所以如果使用name属性,则使用b

2017-11-25 11:27:43 22128 4

原创 mybatis中传入String类型参数的问题

1. 出现的问题需求是想写一个按公司名字查询公司列表的功能,最开始的代码如下 Dao层接口如下:@MyBatisDaopublic interface OfficeDao extends TreeDao<Office> { List<Office> findCompanyNameList(String name);}mybatis的xml代码:<select id="findCompa

2017-11-22 11:38:00 33285 1

原创 APICloud中app如何在手机端测试

首先假设你已经有了APICloud账号,并创建了App项目第一步 下载自定义Loader进入“开发控制台”点击我们的项目选择模块,再选择自定义Loadder 用手机扫描下面对应的二维码,然后下载 第二步 wifi真机同步这步可以让你直接通过wifi的方式将app同步到手机打开App,点击下图中的圆点(能看到这个表示是开发者模式) 填写你apiCloud开发工具所在电脑的IP地址和端口(下一步

2017-11-06 19:00:38 6648

原创 eclipse3.6默认指向 WebContent 目录 修改为 webRoot

在 eclipse3.6中 , 它默认指向 的webRoot 为 WebContent目录 ,如果 , 我们的项目 webRoot 目录不是这个名 , 我们迁移项目时等情况就会出现404。如何更改?l 第一, 新建项目时的设置:在新建对话框下一步, 进行到 Web Module 时将 Content Directory 的名字改为你想要的名字就可以了 . l 第二, 已有项目时的设置 ,加载一

2017-11-06 16:04:25 258

搭建SVN服务器及插件|搭建SVN服务器及插件.doc

搭建SVN服务器及插件

2016-05-06

搭建SVN需要的插件|content.jar

搭建SVN需要的插件

2016-05-06

Java 编程思想第4版【真正第4版】

真正的中文版第4版,我花几十积分下载的。网上很多的都不是第4版,第4版的目录可到网购书店去查看一下。

2018-06-19

FTP所需的几个Jar包

Ftpclient等需要的内处jar包

2017-04-07

阿里巴巴Java开发手册

大家都按统一的标准进行开发,免得大家总在争执怎么样写好。要是全中国都统一,一个公司随便招几个人就不用再去培训开发标准了。

2017-03-16

gradle3.4下载b

可用的bin包,和all的区别是没有文档等

2017-03-15

javax.servlet JAR包

javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

2017-01-20

Redis完整教程《Redis设计与实现》含目录

学集群时找的这本书《Redis设计与实现》

2017-01-10

(《深入java虚拟机》(中文版2)附光盘

中文版的深入java虚拟机,该学习学习了。

2017-01-07

commons-lang3-3.5源码1

( commons-lang3-3.5源码与jar包

2016-12-07

java导出Excel的jxl.jar

java导出Excel的jxl.jar

2016-11-23

Java实现AOP需要的jar包

aspectj-1.8.4.jar 的使用需要先在DOS窗口里通过java -jar aspectj-1.8.4.jar 来运行并注册

2016-09-23

spring3.0.5源码

spring3.0的源码

2016-09-21

joda-time的JAR包

目前处理日期最好的类就是该JAR包里的DateTime类,没有之一。

2016-09-07

Memcached详解

教你如何使用Memcached的教材

2016-07-31

web性能权威指南PDF高清版

对前web开发者来说,这绝对是不可或缺的一本书,毕竟性能的重要性大家可想而知。

2016-07-29

大话数据结构

这是用C语言讲的数据结构,对java开发者来说有些地方可能看不懂,但基本上是没问题的,毕竟多数是在讲数据结构,这都是文字,就算有代码,C和java都差不多。

2016-07-28

Java的数据结构与算法分析第二版

很多这类书的电PDF版都没有目录,我这个有目录。这对java开发来者说,绝对是一本好书。

2016-07-28

编程之美教材

本书通过一些问题讲解一些编程方面的技巧

2016-07-27

剑指Offer名企面试官精讲

该书里的代码都是用C++实现的,没有C基础的,看起来有些费劲,但可学习思路。

2016-07-27

编程之美教程资源

2016-07-27

solr教材-PDF版

未去除war的低版本,最大差别是安装不同。适合入门者看。

2016-07-13

solr教程资源

这是还未去war包的低版本,最大的差别就是安装的方式不同,高版的安装参见本人博客solr里的相关文章

2016-07-13

AngularJS教程

我看过讲得最详细的angularjs教程

2016-06-17

Druid数据库连接池jar包

阿里巴巴开发的数据库连接池,综合了JDBC的连接

2016-06-17

跟我学shiro教程对应的所有项目

在《跟我学shiro》的教材里有许多的项目,该压缩包里包含了所有的项目,但唯一缺少的是相关jar包。

2016-06-17

跟我学shiro的所有项目

2016-06-17

阿里爸爸的druid数据库连池jar包

2016-06-17

zcl_love_wx的留言板

发表于 2020-01-02 最后回复 2020-01-02

AtomicnIteger会存在ABA问题吗?

发表于 2019-07-14 最后回复 2019-07-16

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

TA关注的人 TA的粉丝

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