- 博客(40)
- 收藏
- 关注
原创 阻塞队列BlockingQueue实战及其原理分析
队列,是限定在一端进行插入,另一端进行删除的特殊线性表。先进先出(FIFO)线性表。允许出队的一端称为队头,允许入队的一端称为队尾。
2024-02-06 15:03:34
1183
原创 读写锁ReentrantReadWriteLock&StampLock详解
读写锁ReadWriteLock,顾名思义一把锁分为读与写两部分,读锁允许多个线程同时获得,因为读操作本身是线程安全的。而写锁是互斥锁,不允许多个线程同时获得写锁
2024-02-05 14:31:47
1250
原创 深入理解AQS独占锁之ReentrantLock源码分析
上一章我们讲解了ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等同步工具类的应用场景及实现,本章我们重点讲解ReentrantLock源码分析。
2024-02-04 16:49:37
1230
原创 JUC并发工具类的应用场景详解
jdk提供了比synchronized更加高级的各种同步工具,包括ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等,可以实现更加丰富的多线程操作。
2024-02-04 11:00:42
1011
2
原创 垃圾收集器G1&ZGC详解
我们在上一篇文章中详细讲了ParNew和CMS垃圾收集器,以及底层三色标记算法。本文讲解另外两个垃圾收集器G1和ZGC。
2024-01-19 15:25:28
1089
原创 Mysql隔离级别MVCC多版本并发控制机制
MVCC机制的实现就是通过read-view机制与undo log版本链比对机制,使得不同的事务会根据数据版本链对比规则读取同一条数据在版本链上的不同版本数据
2024-01-04 16:39:40
953
原创 Mysql事务原理与优化
为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制,用一整套机制来解决多事务并发问题
2024-01-03 15:38:20
488
原创 树轮基础:二叉树
欢迎大家关注我的微信公众号:树的定义:树是数据结构和算法分析与设计中的一种非常重要的结构,由N个结点组成的具有层次结构的模型。其主要有以下几个特点:1、有一个根结点,一般称为root结点2、每一个元素都被称为node3、除了root结点外,其余的结点都会被分为n个互不相交的集合(子树)树形结构的基本术语:结点:树形结构里面的元素子树:当结点大于1时,其余的结点分为互不相交的集合称为子树度:一个结点拥有的子树数量称为结点的度叶子:度为0的结点孩子:结点的子树的根称为孩子.
2020-06-06 16:33:58
355
原创 快速排序
欢迎大家关注我的微信公众号:上一篇我们聊了聊插入排序、希尔排序和冒泡排序。传送门:【算法】排序(一)今天我们重点讲一讲快速排序。快速排序的思路:1、基准数:根据基准数分成左右2组,左边的都比基准数小,右边的都比基准数大。2、分组以后,分别对组内进行排序。假设有这样一组数据,45 28 80 90 50 16 100 10同学们先思考,如何通过快速排序进行排序呢?好,我们一起来理一理快排的过程:一、选基准数45(基准数可以是任意一个,一般选第一个) 从序列后面往前找,找到比基准
2020-06-01 21:47:47
416
1
原创 插入排序、希尔排序、冒泡排序
欢迎大家关注我的微信公众号:什么是算法:很多人一听到算法,就感觉高深莫测。当然,算法需要不断的积累和练习,但是大家也不要害怕,其实算法,就是一种解决问题的思路,当你熟悉它,也许你会爱上它~话不多说,直接来干货。说到算法排序,有很多,我们慢慢讲。我们先来看看插入排序:插入排序:对一个有序的有序的序列插入,插入进去后保证还是有序的。看代码:package com.monkey.springdemo.utils.sort;/** * 插入排序 */public class Ins
2020-06-01 13:49:42
298
原创 同一张表中,通过传入的id来获取所有关联的父id
在很多数据库表的设计当中,在设计到树状结构数据时,并没有采用新建关联表,而是将所有的数据都放在的一张表中,即子id与父id共存于一条数据当中。本文就oracle举例而言:在这里,我们可以用递归查询的sql来处理:select a.*,level from 表名 a start with 条件1 connnect by prior 条件2 where 条件3例:(1...
2020-01-21 09:29:19
1545
原创 Ljava.lang.Object; cannot be cast to……异常
这是因为类型无法转换抛出的异常。在hibernate框架中,使用了select语句,没有指定返回数据类型,所以默认为Object类,它是所有类的父类。所以当我们遍历list的时候,Object无法转成实体类,便会抛出异常。**以下为返回值的四种情况:**1、没有select子句有from子句的HQL查询,查询表格的记录,返回的对象是查询类对象;即List<查询类名> list...
2019-10-17 14:33:16
5042
原创 springBoot+JPA调用存储过程
本文调用存储过程可能会因为情况不同,并不适用所有人。这里就本人遇到的情况,亲测有效,遇到的小伙伴们可以试试。1、先在实体类中建立与存储过程的联系。@Entity /** * @Procedure存储过程查询方法 * 存储过程使用了注解@NamedStoredProcedureQuery 并绑定到一个JPA表。 * procedureName是数据库中存储过程的名字 * na...
2019-10-15 16:44:18
2594
原创 在IE浏览器中,ajax无法访问后台问题
作为开发人员,我们要慎用IE,因为IE浏览器的兼容性没有其他浏览器好,比如谷歌,火狐。(本人不知道在IE中踩过多少坑,只能一步一步往外爬……)但是对于必须用IE的企业,我们就不得不作兼容性的考虑。最近我遇到ajax访问后台方法时,其他浏览器都好使,唯独IE让我头疼不已。话不多说,直接po码:function findNoticeById(id){ $.ajax({ url:"index/...
2019-05-27 11:16:54
1006
转载 Oracle+Mybatis的foreach insert批量插入这些坑的解决方案
作者:guobinhui来源:CSDN原文:https://blog.csdn.net/guobinhui/article/details/79728971版权声明:本文为博主原创文章,转载请附上博文链接!最近做一个批量上传附件的需求,将多个附件的信息批量插入数据库中。解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis...
2019-04-18 10:57:03
2886
2
转载 详谈再论JAVA获取本机IP地址
本文转载自:博客园-昕友软件开发,作者:王昕详谈再论JAVA获取本机IP地址首先,你如果搜索“JAVA获取本机IP地址”,基本上搜到的资料全是无用的。比如这篇:http://www.cnblogs.com/zrui-xyu/p/5039551.html实际上的代码在复杂环境下是不准的网上一个比较普遍的说法是InetAddress.getLocalHost().getHostAddress...
2019-04-10 16:44:35
193
原创 一条sql语句执行:有则更新,无则新增
一、Oracle、Sqlserver数据库:(merge into) 通过Merge into你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表的数据插入A表。 1、Merge into的基本语法 1 MERGE INT...
2019-04-08 18:17:47
11406
1
原创 Nginx负载均衡与F5负载均衡的区别
一、nginx负载均衡算法:round robin(默认)轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。适用于后台机器性能一致的情况。挂掉的机器可以自动从服务列表中剔除。weight根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。upstream bakend { server 19...
2019-04-03 15:48:02
1788
原创 JQuery将时间戳转化为时间格式
JQuery将时间戳转化为时间格式var createDate = '156613022000';var data = getMyDate(1488850813000 );function getMyDate(str){ var oDate = new Date(str), oYear = oDate.getFullYear(), oMonth = oDat...
2018-10-17 21:24:41
9855
原创 从html路径中获取参数
jquery从html路径中获取参数、拼接参数例:路径:http://localhost:8080/orderDinner/meal.html?flag=0&type=caijquery代码:var flag = GetQueryString("flag");var type= GetQueryString("type");function GetQueryString(na...
2018-10-16 20:49:57
5049
原创 Mybatis中进行添加(insert)、批量更新(update)
Mybatis中进行添加(insert)、批量更新(update)##一、添加insert:方法1:mapper.xml文件:<insert id="savaApplyProg"> insert into tb_applyprogram(hid,name,version) values <foreach collection="list" item="info" se...
2018-10-15 11:39:17
1691
原创 JS函数传递字符串参数(符号转义)
JS函数传递字符串参数,如果没有转义处理,在接收的时候无法正确的接收字符串。(1)在双引号内<a href="javascript:orderDetails(\''+orderId+'\')">查看详情</a><a href="javascript:void(0)" onclick="orderDetails(\''+orderId+'\')">查看详情&am
2018-09-30 12:11:47
9343
原创 URL传值带加号“+”的问题的解决方法
当别人请求接口时,客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是URL中默认的将“+”号转义了。 解决方法: 方法一:前端传递参数时,将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了。 方法二:修改后端,将空格替换为“+”,这种方式只适用于参数中有“+”没有空格的情况。 例:String a = reuqest.get...
2018-09-29 14:06:15
3202
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人