自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汉家扶风

不学无以广志

原创 并发编程学习笔记大纲

并发编程中已完成或计划完成的笔记 JVM运行核心逻辑:Java文件编译成二进制文件存在的编译重排序问题的认识 线程基础知识:了解线程的6种状态、以及基础的API JMM的认识:了解硬件层面上的内存屏障、运行时指令重排序、JMM模型 线程通信: 了解线程通信基础的三种方式,明白多线程间工作协同 常...

2020-03-25 23:06:05 51 0

原创 容器学习之01ArrayList

搞懂ArrayList1. 简介2. 简单事例3. 源码分析3.1 构造函数3.2 新增和扩容实现3.3 扩容的本质3.4 删除3.5 迭代器4. 总结 1. 简介 ArrayList 我们几乎每天都会使用到,但关于ArrayList的细节我们是否真正关注过?本文大家一起通过源码来重新认识Arra...

2020-04-05 10:44:39 14 0

原创 高并发学习之14锁的源码在梳理

通过重入锁再次梳理锁的知识点1. 简介2. Lock3. AbstractQueuedSynchronizer(AQS抽象队列同步器)4. 从ReentrantLock重入锁开始 1. 简介 在前面的文章中我们介绍了lock接口,AQS同步器,重入锁,condition接口,这篇文章将准备将以上知...

2020-04-02 14:14:48 25 0

原创 Java根据Id快速最优分组

话不多说,都有注释直接上代码。 Integer[] userArr = {10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013...

2020-04-02 11:20:37 67 0

原创 高并发学习之13Condition的实现原理分析

了解Condition接口1. 简介 1. 简介 任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait()、 wait(long timeout)、notify()以及notifyAll()方法,这些方法与synchronized同步关键字配合,...

2020-04-01 23:09:30 26 0

原创 高并发学习之12ReentrantReadWriteLock的实现原理分析

ReentrantReadWriteLock原理分析1. 简介2. 读写锁的事例3. 读写锁实现分析3.1 读写状态的设计3.2 写锁的获取与释放3.3 读锁的获取与释放3.4 锁降级4 总结 1. 简介 同样的在锁的认识中,我们提到了读写锁ReentrantReadWriteLock,的基本使用...

2020-04-01 13:56:08 19 0

原创 高并发学习之11ReentrantLock的实现原理分析

ReentrantLock的实现原理分析1. 简介2. 重进入的实现方式3. 公平与非公平获取锁的区别4. 总结 1. 简介 在锁的认识中我们提到了ReentrantLock 的基本使用,以及在上篇文章AQS中,也重点说明了AQS的通过同步状态来给Lock提供锁的状态同步以及队列等待、线程唤醒/阻...

2020-03-31 22:22:40 30 0

原创 高并发学习之10AQS的理解

锁的关键实现方式AQS1. AQS简介2. AQS简单事例3. AQS内部分析4. 独占式同步状态获取与释放 1. AQS简介 在上一篇锁的认识中我们简单介绍了一下锁,已经锁的基本使用方式,和锁的两种重要的实现类ReentrantLock(重入锁)、ReentrantReadWriteLock(读...

2020-03-31 17:39:32 33 0

原创 高并发学习之09锁的认识

简单了解下锁的理解1. Java中的锁的概念2. Lock简介3. Lock的初步使用3.1 ReentrantLock(重入锁)讲解3.2 ReentrantReadWriteLock(读写锁)4. Lock和synchronized的简单对比 1. Java中的锁的概念 在Java中锁大致分为...

2020-03-26 21:28:56 48 0

原创 高并发学习之08原子操作类

JDK中13种原子操作类1. 简介2. 原子更新基本类型类2.1.原子更新基本类型类2.1.2 原子类实现原理3. 原子更新数组4. 原子更新引用类型5. 原子更新字段类 1. 简介 在前面文章synchronized中,我们介绍了synchonized 轻量级锁时,谈到其是CAS机制实现的,本文...

2020-03-26 12:57:42 22 0

原创 高并发学习之07关键字final

了解关键字final1. final 简介2.final 基础用法2.1 final修饰变量2.2 final 修饰 方法2.3 final修饰类2.4 final关键字举例3. 多线程中的final3.1 final域的重排序规则3.2 写final域的重排序规则3.3 读final域的重排序规...

2020-03-25 22:16:06 25 0

原创 高并发学习之06关键字volatile

了解关键字volatile1. volatile 简介2. volatile原理3. 简单了解下JMM中定义的happens-before规则4. volatile写-读建立的happens-before关系5.volatile写-读的内存语义6.volatile内存语义的实现6.1 指令重排序6...

2020-03-25 14:07:41 20 0

原创 高并发学习之05关键字synchronized

了解关键字synchronized

2020-03-23 22:55:30 41 0

原创 高并发学习之04线程间通信

必须知道的线程通信1.线程间通信1.1 线程间协同1.2 suspend/resume1.3 wait/notify1.4 wait/notify的经典范式1.6 park/unpark 的使用1.7 Thread.join()的使用1.8 ThreadLocal的使用 1.线程间通信 线程开始运...

2020-03-23 14:07:16 37 0

原创 高并发学习之03JMM(Java内存模型)

了解JMM是什么1.硬件层面上的概览1.1.CPU的多级缓存1.2.缓存一致性问题1.2.1 总线锁1.2.2 缓存锁1.2.3 缓存一致性协议1.3. CPU优化-运行时指令重排1.3.1 带来的两个问题1.3.2 内存屏障(Memory Barrier)2.JMM2.1JMM(Java 内存模...

2020-03-18 23:02:20 51 0

原创 高并发学习之02线程基础知识

解开线程面纱1.什么情况下应该使用多线程2.如何应用多线程2.1 继承Thread类创建线程2.2 实现Runnable 接口创建线程2.3 实现 Callable接口通过FutureTask来创建Thread线程3.线程的6中状态4.线程启动和终止5.线程的安全性5.1 多级缓存5.2 缓存一致...

2020-03-18 21:27:31 31 0

原创 高并发学习之01JVM运行核心逻辑

开启并发编程1. Java文件是怎么被JVM运行的2. JAVAP 查看class文件2.1 什么是class文件2.2 Javap命令直接 查看class文件2.3 IDEA 查看class文件3.说明 1. Java文件是怎么被JVM运行的 一个 .java 源代码通过编译器 编译之后变成一个...

2020-03-17 23:04:30 28 0

原创 spring-data-jpa 入门三:常用技术使用之复杂查询

spring-data-jpa 入门 spring-data-jpa 入门二:常用技术使用之关联关系查询配置 前面基本上将spirng-data-jpa常用查询写清楚了,一般如果不是复杂的查询基本上都能满足了,而且我们并没有做太多的事情,花费时间大多是在entity层实体的配置。现在我们将...

2018-09-06 15:52:32 704 0

原创 spring-data-jpa 入门二:常用技术使用之关联关系查询配置

spring-data-jpa 入门 在上文中我们介绍了spring-data-jpa简单的实现原理、简单的增删改查、以及简单的分页查找、排序。基本上通过上文介绍,我们可以写一些简单的增删改查了!但是日常开发中肯定不是仅仅单表查询。那么我们将继续探讨spring-data-jpa一些其他使用放法...

2018-09-05 17:38:28 538 0

原创 spring-data-jpa 入门

***[什么是jpa](https://baike.baidu.com/item/JPA/5660672?fr=aladdin)*** 偶然情况下看了一篇讨论的帖子内容大概是在说jpa与mybatis的技术选型[这是地址](https://www.cnblogs.com/cmfwm/p/8109...

2018-09-04 22:54:16 1722 0

原创 Netty入门(二)-------HelloWord

Netty入门(一)——为什么使用Netty 上篇简单介绍了下为什么使用Netty,这篇我们将简单的搭个HelloWord。 在Netty使用手册中说了世界上最简单的协议不是”Hello,World!”,是DISCARD,他是一种丢弃了所有接受到的数据,并不做有任何的响应的协议,本文中就不已抛...

2018-05-11 17:01:58 191 0

原创 Netty入门(一)------为什么使用Netty

Netty简介 Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议。 Netty 的内部实现时很复杂的,但是 N...

2018-05-11 15:30:44 508 0

转载 log4j.properties 详解与配置步骤

一、log4j.properties 的使用详解 1.输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息 2.配置...

2018-04-27 11:48:54 95 0

原创 idea 自动生成.gitignore文件 .ignore插件忽略不必要提交的文件

最近发现idea是可以自动生成git 提交时使用的.gitignore文件 ,(这个文件的作用就是在提交文件到git上时忽略某些文件)。因为太懒直接把这个插件装上了; 用两个方式1:手动安装 2:直接在插件库查找安装,因为两种差不多直说手动安装了。 手动安装到这个地址:idea官方插件库 下...

2018-04-26 22:27:46 1455 1

原创 Spring boot +Mybatis 实现多数据源(一:最简单版本)

多数据源的问题在实际项目中还是经常遇到的,例如读写分离的数据库、马甲类型服务器等。不多说上干货,特别说明下本人用的开发工具是idea。 创建Spring Boot项目 菜单 file–》new –》project–》spring initializer 填写自己的group、artifact...

2018-03-22 09:59:12 2690 1

转载 maven版本号管理

如今所说的maven版本号不同于SVN的版本号控制哦!!!之前我们说过Maven的版本号分为快照和稳定版本号,快照版本号使用在开发的过程中,方便于团队内部交流学习。而所说的稳定版本号,理想状态下是项目到了某个比較稳定的状态。这个稳定包括了源码和构建都要稳定。一、怎样衡量项目的稳定状态呢? 所有的自...

2017-10-31 09:35:32 2289 0

原创 mysql 定时任务详解

mysql 定时任务

2017-10-09 15:13:19 326 0

原创 JDK9 之模块化

Java 9 特性以及解决的问题我们将探讨关于Java 9模块化系统的以下主题:1.介绍 Oracle 将Java 9从2017年3月延期到2017年9月进行发行。我们知道, Java SE 8提供了三大新特性(加上少量改进和新特性)。 Lambda 表达式 Stream API Dat...

2017-09-30 15:00:06 1354 0

原创 java 加密指定位数字符串

/** * 加密字符串保留指定位数 * @param source 数据源 * @param begin 保留前几位开始加密 * @param end 保留后几位 */ public static String encryptStri...

2017-09-27 22:20:56 1984 0

原创 Linux下安装Mysql(yum指令)

1. 下载mysql的repo源 ``` wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm ``` 2. 安装mysql-community-release-el7-5.noarch.rpm包 ``` s...

2017-08-31 00:57:22 284 0

原创 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用...

2017-08-29 09:19:52 261 0

原创 idea 自动生成 serialVersionUID

Intellij IDEA 自动生成 serialVersionUID

2017-08-28 11:24:23 147 0

原创 Liunx环境启动tomact与查看日志

tomact在linux下启动步骤以及查看日志

2017-08-17 19:20:32 704 0

原创 js获取富文本编辑器的值之后报错Uncaught SyntaxError: Unexpected token 发 in JSON at position 0

这两天在写接口时遇到一个问题,前端获取富文本编辑器值之后发送给接口,但是报错发起xss攻击,因为富文本框里的值,绝大部分都是带样式、带图片链接地址的,我们框架是配置了xss请求过滤的,因此浏览器报错Uncaught SyntaxError: Unexpected token 发 in JSON a...

2017-08-17 12:20:35 927 0

原创 Jersey 常用的resultful 风格的标签注解

最近用jersey写resultful风格的接口,一些注解还是容易混淆,在自己博客里我给整理下,后面如果碰到其它的会继续补充,以后查的时候也不用百度了 1. @PathParam 使用@PathParam可以获取URI中指定规则的参数,如: @DELETE @Path(“login/{pl...

2017-08-14 23:17:10 751 0

原创 微信第三方登录redirect_uri 参数错误

本人碰到这个问题花了半个小时在网上找原因,基本上都说的差不多 授权回调域 必须是 www.biadu.com 这样的格式。可是一看自己的回调域填的绝对没问题,那就不是这个原因,后来一看官方文档这么解释的redirect_uri 重定向地址,需要进行UrlEncode,一看自己的没有做url转码...

2017-07-31 16:35:24 21074 9

原创 JAVA对象序列化理解

什么是序列化 怎么序列化 为什么序列化 反序列化会遇到什么问题如何解决 相关注意事项1.什么是序列化Java的对象序列化其实就是将一个实现了serializable接口的对象转换成一个二进制byte数组,这样日后使用这个对象时候就能将这个对象及其数据通用反序列化转换回来,重新构建。 在接口开发或者...

2017-07-09 19:09:36 169 0

原创 java.lang.Object 对象中 hashCode 和 equals 方法详解及其延伸

什么是hashcode hashcode在Java中的相关引用 equals方法 hashcode于equals两者关系比较

2017-06-22 16:21:53 5875 0

原创 orcal 分割字符串(JAVA中Split方法)

近日在写存储过程的时候需要用到分割字符串并返回一串数组,网上百度了一大堆,发现要不是错误的,要不就是需求不对,因此干脆自己写一个类似Java里面的split的方法好了。 下面定义一个函数返回的是一个number型数组,第一个参数是你的字符串,第二个是你要分割的字符function splitSt...

2017-05-30 09:56:50 418 1

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