自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Java多线程与高并发六(Lock上锁底层实现原理)

我们前面介绍了Lock的基本用法,知道Lock有公平锁、非公平锁两种实现,也知道Lock底层是用CAS实现的,但我们前面并没有详细介绍底层实现,本文就围绕Lock的加锁操作介绍Lock的底层实现原理。 我们的切入点是可重入锁ReentrantLock的lock()方法: Lock loc...

2019-11-17 23:33:18

阅读数 275

评论数 1

原创 Java多线程与高并发五(常用并发工具类)

为了实现各种线程的操作,比如线程阻塞、阻塞恢复,JDK提供了大量模型来操纵线程运行。《Java多线程与高并发五(常用并发工具类)》给大家伙儿分享下JDK中常见的并发工具类。 说一道面试题 实现一个容器,提供add,size方法,两个线程,线程一添加十个元素到容器中,线程二监控容器中元素的个数...

2019-11-09 00:44:07

阅读数 155

评论数 0

原创 Java多线程与高并发四(Lock与CAS)

我们在《Java多线程与高并发一》中讲到怎样新建一个线程,用synchronized怎样给代码加锁,以及synchronized锁的优化升级。 在《Java多线程与高并发二》中,我们认识了Java的内存模型和计算机的内存架构,以及二者之间的不同,怎样弥补。 在《Java多线程与高并发三》中,我...

2019-11-03 22:37:05

阅读数 155

评论数 0

原创 Java多线程与高并发三(volatile关键字)

volatile关键字,开发中一般不用,主要用途就是用来面试造火箭,那么它在代码中的真正作用是啥呢?? 上一篇博客说到,对于现代多核心计算机而言,在多线程的情况下,如果一个变量没有加volatile修饰,可能出现线程间各自拷贝主内存的变量值到自己独有的线程CPU缓存中对数据做各种操作,导致变量的...

2019-11-02 16:14:23

阅读数 154

评论数 0

原创 Java多线程与高并发二(JMM)

JMM-Java内存模型 Java虚拟机把Java的内存分为thread stacks和heap,在理解多线程的时候,这种粗糙的分法已足够。 如图所示,该图有如下含义: 1、每个线程都有自己的thread stack,意味着只要是存在于thread stack的变量都是线程独有,别的线程是不...

2019-10-29 17:07:03

阅读数 175

评论数 0

原创 Java多线程与高并发一(基础知识)

Java多线程是面试重要考点,其知识面涉及深度和广度都是其他面试题型所不及的,本博客系列《Java多线程与高并发》记录了博主学习高并发与多线程的路径,知识点由浅入深,并附有大量案例程序,可以作为笔记随时翻查。话不多讲,上干货。 程序、进程、线程 程序:是一个静态的实体,是一组有序指令的集合,就...

2019-10-22 23:20:45

阅读数 562

评论数 0

原创 聊聊Java8接口中的default和static方法

JDK1.8之前的接口回顾 在jdk1.8之前,我们对接口的认知是这样的: 1、方法:只能包含public和abstract的方法,即使定义为: interface Shape { //获取几何图形的面积 Double getArea(double length, d...

2019-09-21 16:34:44

阅读数 198

评论数 3

转载 从头到尾谈Java垃圾回收

原著:聂晓龙(花名:率鸽),阿里巴巴高级开发工程师。 之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。

2019-07-30 22:16:48

阅读数 160

评论数 0

原创 SpringBoot2.1.5实现动态数据源切换

问题 1、数据不都是在一个库存在,可能需要到其他库去操作数据 比如现在需要从两个不同库里去拿user数据 而我们用springboot项目做配置一般是这么写的: 其中url已经定位到一个库了,所有的操作都是基于这个test库里面的不同的表 2、公司业务做得比较大,数据库需要主从分...

2019-06-02 10:09:12

阅读数 535

评论数 0

原创 数据结构与算法——基础数据结构(数组和链表)

什么是线性表 线性表是由零个或多个数据元素组成的有限序列。 线性表是有限的 线性表第一个元素无前驱,最后一个元素无后继,中间元素只有一个前驱和后继元素 线性表可以是空表 常见的线性表 常见的线性表如下图所示 常见的线性表数据结构有:数组,链表,队列,栈;与线性表相对的是稍稍复杂的数...

2019-05-23 22:44:13

阅读数 267

评论数 0

原创 AES前后端加解密踩坑记录

为什么要加密传输参数?采用什么加密方式?AES有多少中加密类型?是读者大人们自行百度的哟。 话不多说,既然是踩坑记录,放心肯定是能解决问题的。上代码 后端工具类 import org.apache.commons.codec.binary.Base64; import javax.cry...

2019-04-18 22:28:46

阅读数 380

评论数 0

原创 数据结构与算法——复杂度(下)

一个不一样的案例 上一章我们说到了什么是复杂度,怎样计算复杂度。但是之前提到的都是类似于以下案例的: int cal(int n) { int sum = 0; int j = 1; for (int i = 0; i <= n; i++) { ...

2019-04-01 21:56:28

阅读数 171

评论数 0

原创 数据结构与算法——复杂度(上)

数据结构是计算机存储、组织数据的方式。 算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 程序员学习数据结构和算法,就是学习操纵数据结构解决问题的方法,就是学习如何更快速...

2019-02-27 18:21:31

阅读数 208

评论数 0

原创 SpringBoot2.0.6集成Dubbo(零xml)

springboot集成dubbo有多种方式,这里介绍一种比较新的不用xml的方式分享给大家,用到依赖dubbo-spring-boot-starter 项目环境:win10+jdk1.8+zookeeper3.4.13+springboot2.0.6 zookeeper的安装和配置不了解的,...

2018-10-31 22:38:44

阅读数 826

评论数 1

原创 Maven内置属性

     有时候在看一些开源框架的配置文件(如swagger2)时,有些莫名其妙的属性不知道说的哪个文件夹,特查询资料做个总结,方便以后自己查阅。 Maven属性 内置属性(maven预定义,用户可以直接使用的)       主要有两个常用内置属性:       ${basedir}表示项...

2018-10-21 19:58:32

阅读数 193

评论数 0

原创 springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)

用IDEA搭建springboot2.0.5项目 选择Spring initializr就可以轻松搭建一个springboot项目,第一次搭建很费时 在Group写上公司域名,Artifact写上项目名,打包用Jar 选Web勾选 SQL项,勾选MySQL、JDBC、MyBat...

2018-09-28 17:04:58

阅读数 5672

评论数 1

原创 SpringBoot2.0.4使用JPA和Redis

      近来研究SpringBoot持久化与缓存的问题,搜集资料做了一个Demo。       环境:Win10、JDK1.8、IDEA、Redis、Mysql5.7、Redis3.2、SpringBoot2.0.4Release版 第一步建立一个学生表: CREATE TABLE `...

2018-08-21 23:04:31

阅读数 1990

评论数 3

转载 Spring-data-jpa介绍与使用

本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有...

2018-08-17 12:35:27

阅读数 256

评论数 0

转载 log4j详细使用

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。 一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17...

2018-07-18 23:08:25

阅读数 245

评论数 0

原创 IDEA自定义方法注释(一张图搞定)

IDEA是开发java程序的神器,那么如何在方法上快速自定义一个注释呢?其实看一个图就会了:

2018-06-22 23:13:33

阅读数 218

评论数 0

原创 自定义一个可以使用增强for循环的类

听说这是一道面试题,兴起研究了下ArrayList的源码熬制而成下列代码,主要使用两个接口:Iterable和Iterator。要实现一个类可以使用增强for循环第一步:使该类实现Iterable,字面理解是:让该类有能力迭代(-able),该接口只有一个需要实现的方法,即:iterator(),...

2018-06-16 18:36:20

阅读数 694

评论数 2

原创 浅谈SpringAOP的两种实现技术

    AOP(Aspect Oriented Programming)的出现是为了解决面向对象语言程序设计中的离散却又耦合的冗余代码,AOP是OOP(Oriented Object Programming)设计思想的补充,OOP解决了程序中“纵向”代码冗余问题,AOP要解决类与类之间“横向”的代...

2018-05-24 20:04:49

阅读数 1715

评论数 1

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