- 博客(157)
- 资源 (25)
- 问答 (1)
- 收藏
- 关注
原创 搭建新项目注意事项
作为项目负责人,一开始要做很多事情,总会忽略很多比较关键的地方。以下是关于之前项目的一些总结,以后再遇到新项目时,一定要先仔细阅读此总结再开始新项目的搭建。一、数据库相关1.设计数据库时尽量确认好每个字段的长度、类型 在类型方面,特别需要注意的是:数字类型要明确是否有小数,时间的存储类型确认 好是string、datetime还是date。2.保证数据库字段名字符合实际指代的意...
2017-11-06 20:14:52 1740
原创 Java消息中间件(activeMQ)
视频学习记录第一章 消息中间件概述1. 消息中间件的好处解耦、异步、横向扩展、安全可靠、顺序保证2. 什么是消息中间件发送和接收数据,利用高效可靠的异步消息传递机制集成分布式系统3. 什么是JMS(规范)Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API4. 什么是AMQP(协议)AMQP(advanced message queuing
2017-10-31 18:55:05 3158
原创 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 33217 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 1369 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 20902 8
原创 PDF尺寸修改:等比绽放(标准面单100*150mm)
第一个方法返回的是转换后PDF的base64。第二个方法返回的是文件流,这个方法才是转的核心。
2023-07-27 09:50:00 1205
原创 PageHelper分页插件隐藏的坑
释放资源操作,包括我们在释放锁时,不会出现漏掉释放操作的原则就是:在设置值和释放值之间不能有任何能够产生异常的代码,且释放资源要放在finally里保证一定会调用到
2022-07-30 12:05:53 1371 2
原创 Redis持久化方式:RDB和AOF
RDB就是将某一时刻的内存数据快照 以二进制形式写到磁盘里。 由于RDB⽂件是保存在硬盘上的,所以即使Redis崩溃或者退出,只要RDB⽂件存在,就可以⽤它来恢复还原数据库的状态。它利用了系统的COW(copy on write)机制。 ...
2022-06-22 11:12:45 619
原创 RocketMQ超时用的消息发送、消费实践总结
oneway发送了不等待应答,即在实现层面仅仅将数据写入 socket缓冲区,此过程耗时通常在微秒级......
2022-05-28 15:59:42 2716
原创 Idea中实用的骚操作(Java8的Stream也能debug?),姐手把手教你
一、idea debug处即兴抛异常 在测试一个事务方法的回滚是否生效时,我们就需要在代码里加一个异常,这种方式两个缺点就是:一你可能会忘记删除该异常代码(别不信),二是麻不麻烦?在debug时走到断点处右键Frames下面的代码行,然后选择 Throw Exception 然后会弹出一个小窗口
2022-05-21 19:38:59 3898 5
原创 【leetCode】直接反转数字链表---剑指offer
文章目录算法描述题解算法描述 给你一个数字单链表的头节点 head ,反转后并输出新链表。示例1 输入:head = [3,4,5,6,7] 输出:[7,6,5,4,3]示例2 输入:head = [6,9] 输出:[9,6]题解思路一:遍历/** * 在遍历时,需将当前节点的next 指针改为指向前一个节点。 * 由于当前节点没有引用其前一个节点,因此必须事先存储其前一个节点。 * 在更改引用之前,还需要存储后一个节点。最后返回新的头引用 * * @pa
2022-05-01 09:39:37 702
原创 【JVM系列】Java对象的创建、分配、GC这些知识懂没懂?反正姐是懂了
文章目录一、JVM中的对象四种引用类型对象new的过程对象的组成如何访问对象判断对象存活对象的分配策略二、对象的回收(GC)垃圾回收算法垃圾回收器CMS垃圾回收器G1垃圾回收器三色标记跨代引用五一还要值班儿一、JVM中的对象四种引用类型强引用 一般Object obj = new Object()这种创建的对象都是强引用,只有对象有强引用关联就不会被GC。软引用 SoftReference包装的对象的引用就是软引用。在报内存溢出之前,先去回收这些软引用对象,回收完了有空间了就不报溢
2022-04-30 19:35:55 1167 7
原创 【JVM系列】JVM内存区域(JVM运行时数据区域)
堆用来存放对象和数组,只要是堆中的对象,就可以被所有线程共享(静态变量、静态常量、字符串存储在堆中的老年代里)。Java7 版本中将永久代的静态变量和运行时常量池转移到堆中存放的。
2022-04-30 12:33:31 2303
原创 【leetcode】两个链表数相加
文章目录算法描述 算法解答姐是一位有着十年白嫖经验的渣媛,想白嫖扣我:2735035681算法描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 两个链表数字:531和742 相加结果为:1273 算法解答public class TwoNumPlus { publ
2022-04-28 23:31:39 1149
原创 【leetcode】两数之和
文章目录算法描述算法解答姐是一位有着十年白嫖经验的渣媛,想白嫖扣我:2735035681算法描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums
2022-04-28 23:06:36 163
原创 《mysql小知识点》——为什么不能用SELECT * ?
1、浪费磁盘 I/O查询的字段越多,说明要读取的内容也就越多,因此会增大磁盘 IO 开销2、加长网络延时mysql拿到字段后要给客户端传输,而每次传输的大小是一定的,字段越多,那么传的次数就超多3、可能导致索引覆盖失效如果需求上可以只返回索引列,那么就可以做到索引覆盖,从而少回表的过程。但是如果此时用select * ,就少不了回表的过程。相对来说就慢了许多。...
2022-04-28 11:39:32 1522
原创 Java锁详解之改进读写锁StampedLock
文章目录先了解一下ReentrantReadWriteLockStampedLock先了解一下ReentrantReadWriteLock当系统存在读和写两种操作的时候,读和读之间并不会对程序结果产生影响。所以后来设计了ReentrantReadWriteLock这种读写分离锁,它做到了读与读之间不用等待。示例: // 读写锁 private static ReentrantR...
2019-07-11 18:10:24 1507
原创 Java锁详解之ReentrantLock
ReentrantLock是除了synchronized用得较多的一种锁。ReentrantLock也属于重入锁,后面接着就会提到它的重入锁实现原理。ReentrantLock的功能要比内部锁synchronized更多,如指定锁等待时间的方法tryLock(long time,TimeUnit unit)、中断锁的方法lockInterruptibly()、没获取锁直接返回的方法tryLock...
2019-07-04 14:56:02 2880 1
原创 Java锁详解
文章目录什么是锁锁的实现方式锁涉及的几个重要概念类锁和对象锁(重要)synchronized实现原理什么是锁计算机还是单线程的时代,下面代码中的count,始终只会被一个线程累加,调用addOne()10次,count的值一定就累加了10。public class Test { // 计数器 private Integer count = 0; // 累加.........
2019-06-29 22:57:22 28908 4
原创 SQL拆分实现与注意事项
SQL拆分的背景任何系统的设计都是在不断的迭代中改进的,在系统最初的阶段,能够最快的完成功能是首要任务,这就会导致我们在写数据查询时使用了大量的关联查询。而当系统用户慢慢增加到我们不得不分库分表的时候,原先的关联查询就会失效,这就迫使我们不得不将之前的关联查询拆分开,然后利用代码逻辑进行关联操作。如何拆分SQL(left join 拆分)其实,各种关联操作的拆分思想基本是一样的,只是在不同的...
2019-03-18 17:41:39 3817
原创 冒泡排序——《图解算法》
冒泡排序分从大到小和从小到大两种排序方式。它们的唯一区别就是两个数交换的条件不同,从大到小排序是前面的数比后面的小的时候交换,而从小到大排序是前面的数比后面的数大的时候交换。我这里只说 从小到大的排序方式。冒泡排序的原理:从第一个数开始,依次往后比较,如果前面的数比后面的数大就交换,否则不作处理。这就类似烧开水时,壶底的水泡往上冒的过程。一、 图解分析现以数组[8,7,6,4,5]为例,我...
2018-11-01 18:21:54 48914 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 9436 6
原创 一分钟明白各种SQL语句加的什么锁——《深究Mysql锁》
一、正常查询在4个事务隔离级别中,除了在串行化(Serializable)时会加共享锁,其他的都不加锁,即快照读。二、加了锁的查询加锁select主要是指: select ... for update select ... in share mode 1.当使用唯一索引来搜索唯一行的语句时,使用记录锁(record lock)。如:select * from ...
2018-09-04 17:11:20 4382
原创 一分钟了解Mysql的间隙锁——《深究Mysql锁》
什么是间隙锁?间隙锁是一个在索引记录之间的间隙上的锁。间隙锁的作用保证某个间隙内的数据在锁定情况下不会发生任何变化。比如我mysql默认隔离级别下的可重复读(RR)。当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值为10的行使用记录锁。select * from t where id = 10 for update;// 注意...
2018-09-04 16:37:20 34369 23
原创 一分钟理清Mysql的锁类型——《深究Mysql锁》
延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁一分钟深入Mysql的意向锁我们常用的存储引擎就MyISAM和InnoDB。MyISAM存储主要就简单的表级别锁,下面只说InnoDB的各种锁类型。InnoDB不仅支持行级别的锁,也支持表级别的锁。平常我们会听到各种锁,你是不是不仅迷茫它们怎么用的,还会迷茫它们 各自之间都是什么关系?什么是乐观锁和悲观锁?...
2018-08-25 16:43:14 5485 1
原创 一分钟深入Mysql的意向锁——《深究Mysql锁》
延伸阅读:三分钟了解Mysql的表级锁五分钟了解Mysql的行级锁mysql锁相关讲解及其应用——《深究mysql锁》了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没有MVCC的知识,理解起来会总觉得不明朗。本来我的这个只是个记录,并不是专门的讲给别人看的,后发现有不少人看,我还是专门加上这篇文章的链接。在《五分钟了解Mysql的行级锁》中说到,InnoDB为了让表...
2018-08-24 14:29:56 27769 23
原创 五分钟了解Mysql的行级锁——《深究Mysql锁》
我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定 表级锁定参考:三分钟了解Mysql的表级锁——《深究Mysql》 页级锁定参考:[三分钟了解Mysql的页级锁——《深究Mysql》]一、定义每次锁定的是一行数据的锁机制就是行级别锁定(r......
2018-08-23 18:41:50 50465 16
原创 三分钟了解Mysql的表级锁——《深究Mysql锁》
我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。可根据不同的场景选用不同的锁定机制。 Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定一、定义每次锁定的是一张表的锁机制就是表级别锁定(table-level)。它是MySQL各存储引擎中粒度最大的锁定机制。二、优缺点1. 优点...
2018-08-23 16:17:34 8412
原创 Java单例模式双重检查锁定中volatile关键字的作用
首先要说的是,个人推荐使用饿汉模式和静态内部类方式实现单例模式。 懒汉模式中,双重检查锁定代码如下:public class Singleton{ // 静态属性,volatile保证可见性和禁止指令重排序 private volatile static Singleton instance = null; // 私有化构造器 private Si...
2018-06-21 11:55:11 8100 12
原创 线程同步
同步代码块同步方法synchronized修饰静态方法和实例方法的区别同步锁(Lock)Lock与synchronized 的区别注:Thread的 suspend() 方法容易导致死锁,所以Java不再推荐使用该方法来暂停线程的执行。同步代码块synchronized加在代码块上。示例:synchronized(obj){}上述代码中obj就是同步监...
2018-06-18 17:46:11 251
原创 线程的控制
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 219
原创 架构师之路总结
通用设计与方法论一些名词解释: 1)nginx:一个高性能的web-server和实施反向代理的软件 2)lvs:Linux Virtual Server,使用集群技术,实现在linux操作系统层面的一个高性能、高可用、负载均衡服务器 3)keepalived:一款用来检测服务状态存活性的软件,常用来做高可用 4)f5:一个高性能、高可用、负载均衡的硬件设备(听上去和lvs功能差不多?...
2018-06-13 10:36:12 8257 2
原创 线程的生命周期
写在前面新建、就绪状态运行、阻塞状态线程死亡写在前面线程的相关内容还是好久好久之前看过,现在又特地回头看看,并整理整理相关的笔记了。不过,重新回头来看,认识又将不一样。线程的生命周期会经历以下几个状态:新建:new创建线程对象时就绪:调用start()方法时运行:调用run()方法时阻塞: 多种原因可导致阻塞死亡:dead线程状态转换...
2018-05-27 18:38:22 12109
原创 MySQL的查询性能优化——《深究MySQL》
写在前面mysql查询缓慢的原因有哪些? 1.查询语句是否请求了不必要的多余数据 2. 总结以上原因之后,优化数据库性能,就需从以下几个方面着手: 1.- 在说明:下面的知识为零散的记录,后期需要整理mysql优化方面1.in 和 exsits的区别和效率参考:https://www.cnblogs.com/emilyyoucan/p/7833769.h...
2018-05-15 07:22:03 1262
原创 补充spring事务传播性没有考虑的几种情况
事务在数据库中的几个重点:数据库执行事务的时候,是先将数据插入到日志中,如果没有遇到回滚,则在提交事务的时候将日志操作同步到数据库。如果回滚的话,则日志的操作不再插入数据库中。如果发生回滚,则主键还是会增大的即主键会变得不连续。例如,本应该插入的数据id为100,但是发生了回滚,则后面再正确插入的数据的主键会是101。JDBC对事务的支持是放在Connection连接中的。事务在s...
2018-05-12 12:11:14 541
原创 问题集锦
一、Eclipse/Tomcat1.eclipse3.6默认指向 WebContent 目录 修改为 webRoot在 eclipse3.6中 , 它默认指向 的webRoot 为 WebContent目录 ,如果 , 我们的项目 webRoot 目录不是这个名 , 我们迁移项目时等情况就会出现404。如何更改?第一种情况, 新建项目时的设置: 在新建对话框下一步, 进行...
2018-02-10 08:45:48 494
javax.servlet JAR包
2017-01-20
跟我学shiro的所有项目
2016-06-17
阿里爸爸的druid数据库连池jar包
2016-06-17
事务方法调用spring框架的方法,框架的方法也会加入到当前事务吗?
2018-05-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人