自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (27)
  • 收藏
  • 关注

原创 mybatis——mapper文件详解

表结构:CREATE TABLE customer (id int(11) NOT NULL COMMENT '企业用户ID',name varchar(45) DEFAULT NULL COMMENT '名称',logo varchar(80) DEFAULT '' COMMENT '企业标识',describe varchar(500) DEFAULT '' COMMENT '企...

2019-09-27 18:04:33 13530

原创 安全性、活跃性已经性能问题

安全性并发编程是一个复杂的技术领域,微观上涉及到原子性问题、可见性问题和有序性问题,宏观则表现为安全性、活跃性以及性能问题。线程安全: 程序按照我们期望的执行如何才能写出线程安全的程序:避免出现原子性问题,可见性问题和有序性问题数据竞争: 当多个线程同时访问同一数据,并且至少有一个线程会写这个数据的时候,竞态条件:程序的执行结果依赖程序执行的顺序活跃性活锁: 线程之间相互谦让...

2019-09-25 12:21:09 976

原创 Java volatile关键字-禁用CPU缓存

可见性: 一个县城对共享变量的修改,另一个线程能够立刻看到。volatile的意义时禁用CPU缓存public class VolatileExample { int x = 0; volatile boolean v = false; public void writer(){ x = 42; v = true; } ...

2019-09-25 11:42:06 1326

原创 ForkJoin实现分而治之

对于简单的并行任务可以通过"线程池 Future"方案来解决。如果任务额之间有聚合关系(AND聚合或者OR聚合)用CompletableFuture解决。批量的并行任务用CompletionService解决。并发编程可以分为三个层面的问题: 分工,协作,互斥。ForkJoin有什么用Fork/Join是一个并行计算的框架,主要就是用来支持分治任务模型的,这个计算框架里的Fork...

2019-09-25 11:04:47 998

原创 CompletionService批量执行异步任务

CompletionService的实现原理也是内部维护了一个阻塞队列,当任务执行结束就把任务的执行结果加入到 阻塞队列中,不同的是CompletionService是把任务执行结果的Future对象加入到阻塞队列中CompletionService能做什么?将异步任务的结果保存到队列中,主线程从队列中取出这些结果数据执行。场景: 向不同电商平台询价,并保存价格采用“ThreadPool...

2019-09-25 10:45:10 1386

原创 CompletableFuture异步编程

CompletableFuture 有什么用CompletableFuture是用来描述多线程任务的时序关系的:串行关系,并行关系,聚合关系。CompletableFuture 是Java 8 新增加的Api,该类实现,Future和CompletionStage两个接口,提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处...

2019-09-24 18:38:07 1110

原创 Smaphor(信号量)实现限流器

Semaphore信号量在管程被提出来之前用的是信号量。信号量模型一个计数器,一个等待队列,三个方法。计数器和等待队列对外是透明的,所以只能通过信号量模型提供的三个方法来访问他们,这三个方法分别是:init()、down()、up()init():设置计数器的初始值down(): 计数器的值减1; 如果此时计数器的值小于0,则当前线程被阻塞,否则当前线程继续执行up(): 计数...

2019-09-24 18:01:12 661

原创 StampedLock悲观锁乐观锁

StampedLock java1.8提供的, 性能比ReadWriteLock好.语法 final StampedLock sl = new StampedLock(); /** * 悲观读锁 * 与ReadWriteLock的读锁相似 * 允许多个线程进行读操作 * 与写锁互斥 **/ //获取悲观锁 ...

2019-09-24 17:52:52 698

原创 计数器:CountDownLatch,循环栅栏:CyclicBarrier

// 创建2个线程的线程池 Executor executor = Executors.newFixedThreadPool(2);while(存在未对账订单){ // 计数器初始化为2 CountDownLatch latch = new CountDownLatch(2); // 查询未对账订...

2019-09-24 17:30:22 1173

原创 Java线程池ThreadPoolExecutor

创建对象仅仅在JVM的堆里为线程分配一块内存,而创建一个线程需要调用操作系统内核的API,然后操作系统要为线程分配一系列的资源。所以线程是一个重量级的对象,应该避免频繁的创建和销毁。线程池是一种生产者-消费者模式ThreadPoolExecutorThreadPoolExecutor的构造函数比较复杂,最完备的构造有7个参数。ThreadPoolExecutor( ...

2019-09-24 09:54:18 937

原创 ReadWriteLock读写锁

读写锁,分场景优化,提升性能。读写锁遵守的基本原则:允许多个线程同时读共享变量。只允许一个线程写共享变量。如果一个写线程正在执行写操作,此时禁止多线程读共享变量。读锁与写锁是互斥的;写锁与写锁也是互斥的。读写锁适用于读多写少的场景。读写锁与互斥锁的区别:读写锁运行多个线程同时读共享变量。ReadWriteLock 是一个接口,ReentrantReadWriteLock可...

2019-09-23 18:26:46 368

原创 java中的线程&创建线程的三种方式

java语言里的线程本质上就是操作系统的线程,他们是一 一对应的线程生命周期线程状态转换图—— 五态模型初始状态: 线程已经被创建,但是还没有分配CPU执行。 这个状态属于编程语言特有的,不过这里所谓的被创建,仅仅时在编程语言层面被创建,而在操作系统层面,真正的线程还没创建。可运行状态:初始状态线程执行start()方法,线程具备CPU的执行资格,没有CPU的执行权。 这种状...

2019-09-23 18:23:33 1064

原创 Lock和Condition(可重入锁)

Lock有别于synchronized隐式锁的三个特征:能够响应中断。支持超时和非阻塞地获取锁,也就是说lock比synchronized的功能丰富。JavaSDK并发包通过Lock和Condition两个接 口来实现管程,其中Lock用于解决互斥问题,Condition用于解决同步问题 。Lock接口的三个方法:// ⽀持中断的API void lockInterrupti...

2019-09-23 18:18:15 1387

原创 锁和synchronized

锁的常见概念互斥: 同一时刻只有一个线程执行临界区:一段需要互斥执行的代码细粒度锁: 用不同的锁对受保护资源进行精细化管理。 细粒度锁可以提高并行度,是性能优化的一个重要手段死锁 :一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象 。synchronizedclass X{ //修饰非静态方法 synchronized void foo(){ ...

2019-09-12 18:27:29 149

原创 并发编程三要素:原子性,有序性,可见性

并发编程三要素原子性:一个不可再被分割的颗粒。原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。有序性: 程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序)可见性: 一个县城对共享变量的修改,另一个线程能够立刻看到。一、原子性线程切换会带来原子性的问题int i = 1; // 原子操作i ; // 非原子操作,从主内存读取 i 到线程工作内...

2019-09-12 16:06:29 5268 3

尼康D7100单反相机电子说明书-电子版

尼康D7100单反相机电子说明书-电子版

2023-11-15

系统架构师教程.pdf

系统架构师教程.pdf

2023-11-15

Java高手笔记-工程师必须知道的事

Java高手笔记-工程师必须知道的事

2023-11-15

Spring源码深度解析第二版

Spring源码深度解析第二版

2023-11-15

Java启动脚本

Java启动脚本,Java项目的启动,关闭,重启 Java启动脚本,Java项目的启动,关闭,重启

2019-09-23

Xshell_Plus.rar

xshell破解版

2019-07-15

Jenkins持续集成与容器管理.pdf

掌握DockerMaven插件的使用 掌握持续集成工具Jenkins的安装与使用 掌握容器管理工具Rancher的安装与使用 掌握时间序列数据库influxDB的安装与使用 掌握容器监控工具cAdvisor的安装与使用 掌握图表工具Grafana的使用

2019-06-24

rabbitMQ教程

MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛

2019-01-23

Docker使用文档

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更 好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指 的虚拟化资源包括计算能力和资料存储。

2018-12-25

RabbitMQ使用文档.PDF

MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。

2018-12-20

深入浅出的学习MVC

本章课程介绍的是 MVC 模型,它包含了 Model(模型),View(视图)和 Controller(控制器)。 其中 Model,通常指的就是 JavaBean。 View,通常指的是 JSP 或者 HTML(即用于展示数据的资源,包括静态资源和动态资源)。 Controller,通常指的是 Servlet 或者 Filter,以及框架中封装的各类控制器。

2018-12-11

JVM优化|java虚拟机优化

- 了解下我们为什么要学习JVM优化 - 掌握jvm的运行参数以及参数的设置 - 掌握jvm的内存模型(堆内存) - 掌握jamp命令的使用以及通过MAT工具进行分析 - 掌握定位分析内存溢出的方法 - 掌握jstack命令的使用 - 掌握VisualJVM工具的使用 - 了解什么是垃圾回收 - 掌握垃圾会回收的常见算法 - 学习串行、并行、并发、G1垃圾收集器 - 学习GC日志的可视化查看 - Tomcat8的优化 - 看懂Java底层字节码 - 编码的优化建议

2018-12-04

nginx使用文档

包含lvs+nginx负载均衡 nginx安装手册 nginx使用文档 keepalived高可用高可用方法 SwitchHosts软件包 还有相关安装包

2018-09-13

nodeJS code demo

nodeJS code demo

2017-11-08

HttpClient 4.3教程.pdf

Http协议应该是互联网中最重要的协议。持续增长的 web服务、可联网的家用电器等都在继承并拓 展着 Http 协议,向着浏览器之外的方向发展。 虽然 jdk中的 java.net 包中提供了一些基本的方法,通过 http 协议来访问网络资源,但是大多数场 景下,它都不够灵活和强大。HttpClient 致力于填补这个空白,它可以提供有效的、最新的、功能丰 富的包来实现 http 客户端。

2017-09-20

fastDFS笔记

fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记fastDFS使用笔记

2017-09-18

FastDFS 架构剖析及配置优化

FastDFS是一款开源的轻量级分布式文件系统 – 纯C实现,支持Linux、FreeBSD等UNIX系统 – 类google FS,不是通用的文件系统,只能通过 专有API访问,目前提供了C、Java和PHP API – 为互联网应用量身定做,解决大容量文件存储 问题,追求高性能和高扩展性 – FastDFS可以看做是基于文件的key value pair存 储系统,称作分布式文件存储服务更为合适

2017-09-18

pagehelper分页插件

如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。

2017-09-17

maven3.3.9

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

2017-09-17

pom约束文件

dubbo pom.xml约束文件,dubbo pom.xml约束文件,dubbo pom.xml约束文件,dubbo pom.xml约束文件,dubbo pom.xml约束文件

2017-09-17

dubbo-admin-2.5.4.war

Dubbo简易监控中心发布包,基于GitHub上的dubbo-master版本构建,源码版本为2.5.4开发版。 修正了开发阶段在管理界面添加的路由默认runtime为false的情况,便于调试ConditionRouter的源代码。 该压缩包可以在windows和linux下直接解压缩并运行,包含所有依赖的jar包

2017-09-17

dubbo监控中心(dubbo-admin)使用与安装

详细讲述了dubbo-admin的安装与使用,详细讲述了dubbo-admin的安装与使用,详细讲述了dubbo-admin的安装与使用

2017-09-17

spring-boot-cli-1.4.0.BUILD-SNAPSHOT-bin.zip

Spring Boot CLI是一个命令行工具,可用于快速搭建基于Spring的原型。它支持运 行Groovy脚本,这也就意味着你可以使用类似Java的语法,但不用写很多的模板代 码。

2017-09-14

ActiveMQ_in_Action_中文.pdf

HIGHLIGHT ActiveMQ in Action is an example-rich tutorial that shows Java developers how to implement distributed messaging using ActiveMQ, and how to integrate ActiveMQ with Java and non-Java technologies. DESCRIPTION Applications in enterprises need to communicate, most commonly done by messaging.

2017-09-11

Spring技术内幕:深入解析SPRING架构与设计原理

本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致强烈推荐。 国内第一本基于Spring3.0的著作,从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从木书中参透Spring框架的优秀架构和设计思想,而且还能从Spring优雅的实现源码中一窥Java语言的精髓。此外,本书还展示了阅读源代码的卓越方法,不仅授你以鱼,而且还授你以渔! 如果你以一种淡定的心态翻开这本书,无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。

2017-09-11

[免费]Spring MVC学习指南(高清)

Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,本书还配有丰富的示例以供读者练习和参考。

2017-09-11

java-trang.jar

trang.jar xml生成xsd trang.jar xml生成xsd

2017-08-15

深入理解Java虚拟机:JVM高级特性与最佳实践

《深入理解Java虚拟机:JVM高级特性与最佳实践》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果;第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。

2017-08-01

Spring-boot参考指南

Spring Boot简化了基于Spring的应用开发,你只需要"run"就能创建一个独立的,产 品级别的Spring应用。 我们为Spring平台及第三方库提供开箱即用的设置,这样你 就可以有条不紊地开始。多数Spring Boot应用只需要很少的Spring配置。

2017-08-01

快乐的Linux命令行.pdf

这本书介绍如何生存在 Linux 命令行的世界。不像一些书籍仅仅涉及一个程序,比如像 shell 程序,bash。这本书将试着向你传授如何与命令行界面友好相处。它是怎样工作的?它能 做什么?使用它的最好方法是什么? 这不是一本关于 Linux 系统管理的书。然而任何一个关于命令行的深入讨论,都一定会牵 涉到系统管理方面的内容,这本书仅仅提到一点儿管理方面的知识。

2017-05-12

空空如也

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

TA关注的人

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