自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 5.JUC整理笔记五之梳理Varhandle(下)

前文综合描述了 Varhandle 以及 Varhandle 能够做的事情,但是要了解并使用 Varhandle 并非是一件容易的事。总的来说,要想很好地使用 Varhandle ,必须先了解plain(普通方式)、opaque、release/acquire、volatile 的区别及使用。结合前面所学习的 jcstress ,本文用 jcsstress 作为并发测试工具来结合一些例子说明 plain、opaque、release/acqiure、volatile的特性。如果不知道 jcstress

2020-06-03 19:04:16 676

原创 mysql单记录也能造成的死锁

最近在开发的时候,在mysql Innodb 引擎下,一条记录记录也能引起锁的事件。场景描述在项目压测的是,突然发现有类似以下的异常发生:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction at sun.reflect.GeneratedConstructorAcces

2020-05-30 17:11:09 202

原创 我的事务为什么会失效

我的事务为啥会失效?在用Spring的时候,我们经常用过使用@Transactional声明式事务,但是有些时候,@Transactional声明的事务却是没有生效。一个例子。环境数据库为innodb,代码为基于spring的一个demo。Demo代码如下:package jfound.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereoty

2020-05-30 17:08:02 229

原创 Spring注入的对象是什么类型

开篇之前,在用spring编码调试的时候,有时候发现被自动注入的对象是原始类的对象,有时候是代理类的对象,那什么时候注入的原始类对象呢,有什么时候注入的是代理类的对象呢?心里就留下了这个疑问。后来再次看spring aop的时候变有了大胆的想法。案例先添加springboot依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot

2020-05-30 17:04:54 296

原创 一文读懂Java注解

什么是注解Java官方文档上说,注解是元数据的一种形式,它提供不属于程序一部分的数据,注解对被注解的代码没有直接的影响。准确上说,注解只不过是一种特殊的注释而已,如果没有解析它的代码,它可能连注释都不如。主要用途注解有很多种中途,其中包括:提供编译器使用信息编译器可以使用这些注解来检查错误或者禁止显示告警,如@Override**、@Deprecated、@SuppressWarnings编译或部署时处理可以通过注解信息生产相关代码,如lombok的**@Data**、@ToStri

2020-05-30 17:03:35 269

原创 深入剖析ThreadLocal原理

描述ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。通常使用静态的变量来维护ThreadLocal 如:static ThreadLocal<String> userIdThreadLocal = new ThreadLocal<String>通常用来保存userId、TransactionId等。spring也很经常用ThreadLocal来保

2020-05-30 17:02:17 150

原创 4.JUC整理笔记四之梳理VarHandle(上)

前面整理完 Unsafe ,不得不去了解下 java.lang.invoke.Varhandle 。如前面文章所说, Unsafe 是不建议开发者直接使用的,因为 Unsafe 所操作的并不属于Java标准,会容易带来一些安全性的问题。JDK9 之后,官方推荐使用 java.lang.invoke.Varhandle 来替代 Unsafe 大部分功能,对比 Unsafe ,Varhandle 有着相似的功能,但会更加安全,并且,在并发方面也提高了不少性能。简介Varhandle是对变量或参数定义的变量

2020-05-30 16:55:16 499

原创 3.JUC整理笔记三之测试工具jcstress

并发测试工具Jcstress使用教程Jcstress 全称 Java Concurrency Stress,是一种并发压力测试工具,可以帮助研究JVM、java类库和硬件中并发的正确性。Wiki地址:https://wiki.openjdk.java.net/display/CodeTools/jcstressWiki中有一个Jcstress的example,可以根据example很方便入门使用jcstress。当然,我们也可以手动创建自己的Jcstress测试工程。Maven例子添加maven依

2020-05-30 16:53:09 1373 2

原创 2.JUC整理笔记二之聊聊volatile

要想学好JUC,还得先了解 volatile 这个关键字。了解 volatile ,我们从一个例子开始吧。本文不会很详细去说java内存模型,只是很简单地学习一下volatile一个例子package jfound.demo;import java.util.concurrent.TimeUnit;public class TaskRunner { private static boolean ready = true; public static void main(String

2020-05-30 16:49:28 166

原创 1.JUC整理笔记一之细说Unsafe

JUC(java.util.concurrent)的开始,可以说是从Unsafe类开始。Unsafe 简介Unsafe在sun.misc 下,顾名思义,这是一个不安全的类,因为Unsafe类所操作的并不属于Java标准,Java的一系列内存操作都是交给jvm的,而Unsafe类却能有像C语言的指针一样直接操作内存的能力,同时也会带来了指针的问题。过度使用Unsafe类的话,会使出错率变得更大,因此官方才命名为Unsafe,并且不建议使用,连注释的没有。而为了安全使用Unsafe,Unsafe类只允许

2020-05-30 16:44:57 180

大厂招聘 Java 工程师,要考察哪些能力-小马哥.pdf

大厂招聘 Java 工程师,要考察哪些能力-小马哥.pdf

2020-06-03

空空如也

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

TA关注的人

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