自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 post请求json字段大写,后端接收不到数据

和客户对接过程中,发现对方请求的字段都不符合驼峰命名法,例如 OrderNo、User等后端接收时一直报错,org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unrecognized field "Xxxxx"面对客户如此无礼的要求,也只能选择默默忍受,在注释里吐...

2020-03-05 15:42:55 2235 1

原创 nginx 301重定向后@RequestBody报错

服务器端Nginx做了301重定向,从域名A重定向到域名B。服务器端代码: @ResponseBody @RequestMapping("/test.do") public String test(HttpServletRequest request, @RequestBody Map<String, String> testName) { S...

2020-01-19 10:08:20 663

转载 MAC地址表、ARP缓存表以及路由表

一、MAC地址表详解说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。交换机的工作原理交换机在接受到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标M...

2020-01-11 17:14:18 2238

转载 深入解析J.U.C并发包(二十一)—— Locks框架:AQS(1)

一、AQS简介AbstractQueuedSynchronizer抽象类(以下简称AQS)是整个java.util.concurrent包的核心。在JDK1.5时,Doug Lea引入了J.U.C包,该包中的大多数同步器都基于AQS来构建的。AQS框架提供了一套通用的机制来管理同步状态(Synchronization state)、阻塞/唤醒线程、管理等待队列。我们所熟知Reentrant...

2019-10-24 09:39:40 135

转载 深入解析J.U.C并发包(二十二)—— Locks框架:(CLH Lock)自旋锁

参考https://www.jianshu.com/p/5ad8539e25c3CLH Lock摘要CLH lock is Craig, Landin, and Hagersten (CLH) locks, CLH lock is a spin lock, can ensure no hunger, provide fairness first come first service....

2019-10-22 20:21:18 164

转载 深入解析J.U.C并发包(二十)—— Locks框架:LockSupport

一、LockSupport简介LockSupport类,是JUC包中的一个工具类,是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport类的核心方法其实就两个:park() 和 unpark(),其中 park() 方法用来阻塞当前调用线程,unpark()方法用于唤醒指定线程。这其实和Object类的wait() 和 signal() 方法有些类似,但是LockSuppo...

2019-10-21 19:17:48 134

转载 深入解析J.U.C并发包(十九)—— Locks框架:ReentrantReadWriteLock

一、ReentrantReadWriteLock类简介ReentrantReadWriteLock类,顾名思义,是一种读写锁,它是ReadWriteLock接口的直接实现,该类的内部实现了具体独占锁特点的写锁,以及具有共享锁特点的读锁,和ReentrantLock一样,ReentrantReadWriteLock类也是通过定义内部类实现AQS框架的API来实现独占/共享的功能。Reentr...

2019-10-19 17:56:05 112

转载 深入解析J.U.C并发包(十七)—— Locks框架:ReentrantLock

一、ReentrantLcok类简介ReentrantLock类,实现了Lock接口,是一种可重入的独占锁,它具有与使用 synchronized相同的一些基本行为和语义,但功能更强大。ReentrantLock内部通过内部类实现了AQS框架(AbstractQueuedSynchronized)的API来实现独占锁的功能。、1.1类声明ReentrantLock类直接实现了Loc...

2019-10-19 14:48:29 128

转载 深入解析J.U.C并发包(十六)—— Locks框架:接口

本系列文章中所说的juc-locks锁框架就是指java.util.concurrent.locks包,该包提供了一系列基础的锁工具,用以对synchronized、wait、notify等进行补充、增强。juc-locks框架中一共就三个接口:Lock、Condition、ReadWriteLock,接下来对这些接口作介绍。一、Lock接口简介1.1接口定义该接口的方法声明如下:...

2019-10-19 11:21:29 131

转载 深入解析J.U.C并发包(十五)—— Thread - Specific Storage(ThreadLocal)模式

一、定义Thread - Specific Storage就是“线程独有的存储库”,该模式会对每个线程提供独有的内存空间。java.lang.ThreadLocal类提供了该模式的实现,ThreadLocal的实例是一种集合(collection)架构,该实例管理了很多对象,可以想象成一个保管有大量保险箱的房间。java.lang.ThreadLocal类的方法:public vo...

2019-10-17 16:46:50 125

转载 深入解析J.U.C并发包(十四)—— Two - phase - Termination模式

一、定义我们将线程的正常处理状态称为“作业中”,当希望结束这个线程时,则送出“终止请求”。接着,这个线程并不会立即结束,而是进入“终止处理中”状态,此时线程还是运行着的,可能处理一些释放资源等操作。直到终止处理完毕,才会真正结束。Two - phase Termination主要考虑以下问题:安全地结束(安全性); 一定会进行终止处理(生命性); 收到“终止请求”后,要尽快进行终止...

2019-10-05 22:33:49 97

转载 深入解析J.U.C并发包(十三)—— Future模式

一、定义Future模式用来获取线程的执行结果。在Thread - Per - Message模式中,如果调用一个线程异步执行任务,没有办法获取到返回值,就像:host.request(10,'A');而Future模式送出请求后,马上就要获取返回值,就像:Data data = host.request(10,'A');但是上述的返回值并不是程序的执行结果,因为线程是异步的,...

2019-10-05 20:12:23 112

转载 深入解析J.U.C并发包(十二)—— Work Thread模式

一、定义Work Thread模式和Thread - Per - Message模式类似,Thread - Per - Message每次创建了一个新的线程处理请求,而Work Thread模式预先会创建一个线程池(Thread Pool),每次从线程池中取出线程处理请求。二、模式案例Request请求类:package Entity;import java.util.R...

2019-10-05 14:48:45 192

转载 深入解析J.U.C并发包(十一)—— Thread - Per - Message模式

一、定义Thread - Per - Message模式是指每个message一个线程,message可以理解成“消息”、“命令”或者“请求”。每一个message都会分配一个线程,由这个线程执行工作,使用Thread - Per - Message Pattern时,“委托消息的一端”与“执行消息的一端”会是不同的线程。二、模式案例该案例中,由Host分发请求,每一个请求发一个新的线...

2019-10-03 23:34:02 93

转载 深入解析J.U.C并发包(十)—— Read - Write Lock模式

一、定义Read-Write Lock Pattern将读取与写入分开处理,在读取数据之前必须获取用来读取的锁定,而写入的时候必须获取涌来写入的锁定。因为读取实例的状态不会改变,所以多个线程可以同时读取;但是,写入会改变实例的状态,所以当一个线程写入的时候,其他线程既不能读取也不能写入。二、模式案例Data类:数据类可以被多个线程同时访问。package Entity;i...

2019-10-03 19:21:08 126

转载 深入解析J.U.C并发包(九)—— Producer - Consumer模式

一、定义Producer - Consumer Pattern 就是生产者 - 消费者模式。生产者和消费者在为不同处理线程,生产者必须将数据安全地交给消费者,消费者进行消费时,如果生产者还没有建立数据,则消费者需要等待。一般来说,可能存在多个生产者和消费者,不过也有可能生产者和消费者都只有一个,当双方都只有一个时,我们也称之为Pipe Pattern。二、模式案例该案例中,定义...

2019-10-02 22:58:59 166

转载 深入解析J.U.C并发包(八)—— Balking 模式

一、定义Balking是“退缩不前”的意思。Balking Pattern和Guarded Suspension Pattern 一样需要警戒条件。在Balking Pattern中,当警戒条件不成立时,会马上中断,而Guarded Suspension Pattern则是等待可以执行时再去执行。二、模式案例该案例会保存数据的属性,之前所保存的属性都会被覆盖。如果当前数据的属性与上次保...

2019-10-02 21:32:21 120

转载 深入解析J.U.C并发包(七)——Guarded Suspension 模式

一、定义guarded是“被保护着的”、“被防卫着的”意思,suspension则是“暂停”的意思。当现在并不适合马上执行某个操作时,就要求想要执行该操作的线程等待,这就是Guarded Suspension Pattern。Guarded Suspension Pattern 会要求线程等候,以保障实例的安全性,其他类似的称呼还有guarded wait,spin lock等。二、模...

2019-09-16 14:21:23 200

转载 深入解析J.U.C并发包(六)——Immutable 模式

一、定义Immutable 是“永恒的”、“不会改变” 的意思。在Immutable Pattern中,有着能保证实例状态绝不会改变的类(immutable类)。因为访问这个实例时,可以省去使用共享互斥机制所会浪费的时间,提高系统性能。java.lang.String就是一个Immutable类。二、模式案例案例:Person类,具有姓名(name)、地址(address)等字段。...

2019-09-13 20:35:27 141

转载 深入解析J.U.C并发包(五)——Single Threaded Execution模式

一、定义Single Threaded Execution 是指“以一个线程执行”的意思,有时也称为Critical Section(临界区)。二、模式案例案例:假设三个人,频繁地通过一扇门,规定每次只能通过一个人,当通过一个人时,程序会将通过的总人次加1,同时记录该次通过人的姓名和出生地。门.javapackage Entity;public class Ga...

2019-09-13 17:00:32 132

转载 深入解析J.U.C并发包(四)——Java内存模型

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/hollis_chuang/article/details/80880118CPU和缓存一致性我们应该知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道。而计算机上面的数据,是存放在主存...

2019-09-13 11:30:53 165

原创 深入解析J.U.C并发包(三)——并发基础Volatile

一、 可见性与MESI1.1可见性在JVM的内存模型中,每个线程有自己的工作内存,实际上JAVA线程借助了底层操作系统线程实现,一个JVM线程对应一个操作系统线程,线程的工作内存其实是CPU寄存器和高速缓存的抽象。现代处理器的缓存一般分为三级,由每一个核心独享的L1、L2 Cache,以及所有的核心共享L3 Cache组成,具体每个Cache,实际上是有很多缓存行组成:1.2缓...

2019-08-29 16:01:16 161

转载 深入解析J.U.C并发包(二)——AtomicInteger类

一、AtomicInteger简介AtomicInteger是Integer类型的线程安全原子类,可以在应用程序以原子的方式更新int值。1.创建AtomicInteger对象// setup to use Unsafe.compareAndSwapInt for updates private static final Unsafe unsafe = Unsafe.getU...

2019-08-28 22:25:52 258

转载 深入解析J.U.C并发包(一)——Unsafe类

一、J.U.C并发包简介J.U.C并发包,即java.util.concurrent包,是JDK的核心工具包,是JDK1.5之后,由Doug Lea实现并引入。整java.util.concurrent包,按照功能可以大致划分为: 1.juc-locks 锁框架 2.juc-atomic 原子类框架 3.juc-...

2019-08-22 14:13:51 257

原创 HibernateQBC查询

    QBC(query by criteria)是一个通过组装不同查询条件来获取持久对象的条件类对象,代表特定持久类的一个查询。Criteria对SQL进行封装,让开发人员可以用对象的方式来对数据库进行操作。    Hibernate5.2以后通过Session的createCriteria()方法过时了,/** * Create {@link Criteria} instance for...

2018-06-20 15:34:48 153

原创 HIbernate关联映射小案例(CRUD)

做了一个hibernate关联映射的小案例(CRUD),包含一对多、多对多的映射关系。先看概念数据模型Student表因可能出现重名所以采用联合主键。School实体类package org.hrbust.vo;public class School { private int id; private String name; //省略getter/setter方法和构造方法 }...

2018-06-19 22:35:54 122

原创 Hibernate对象识别

重写实体类的equals()方法和hashCode()方法@Override public int hashCode() { int result; result = getName().hashCode(); result = 29 * result + getage(); return result; } @Override public b...

2018-05-28 20:28:54 119

原创 Hibernate自动建表

&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd...

2018-05-20 09:28:03 141

原创 Hibernate SessionFactory单例模式

Hibernate SessionFactory具有以下特点:它是线程安全的,它的同一个实例能够供多个线程使用。它是重量级的,不能随意地创建和销毁它的实例。    由于SessionFactory的以上特点,一般情况下,一个项目中只需要一个SessionFactory,只有当应用存在多个数据源时,才为每个数据源创建一个SessionFactory实例。因此,在实际项目使用中,通常会抽取出一个Hib...

2018-05-16 23:02:48 359

原创 Caused by: java.sql.SQLException: Access denied for user 'sa'@'localhost' (using password: NO)

做了一个简单的SSH项目,在运行时候出现了一个问题:Caused by: java.sql.SQLException: Access denied for user 'sa'@'localhost' (using password: NO)jdbc.propertiesmysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://localho...

2018-05-13 00:09:36 2869

原创 ORM-Hibernate(1)

1.为什么使用Hibernate?Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作。Hibernate使用java的反射机制,而不是字节码增强程序类实现透明性。Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很...

2018-05-08 00:50:31 139

转载 Filter一些需要注意的问题

之前一直以为请求达到Web应用时,经过过滤器1,过滤器2……,处理后产生响应再经过过滤器n……过滤器2,过滤器1。这样的阐述似乎没有问题,但我的理解却有问题。比如过滤器1的doFilter方法执行了一个输出语句:System.out.println("hello"),我以为会在请求到达时输出一次,响应发出时输出一次。当时想来这样也不合理,但却没有深入思考。最近,好像才明白教材中那些流程图的真正含义

2017-11-22 16:14:41 753

转载 HTML中实现table垂直居中

html中是没办法实现上下居中的,如果设置上下居中,需要通过js程序来设置。方法一:在外面嵌套一层table,用table中的td来控制居中

2017-10-28 09:50:20 34602 4

空空如也

空空如也

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

TA关注的人

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