自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!

  • 博客(29)
  • 资源 (27)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Phaser都不懂,还学什么多线程
原力计划

前面的文章中我们讲到了CyclicBarrier、CountDownLatch的使用,这里再回顾一下CountDownLatch主要用在一个线程等待多个线程执行完毕的情况,而CyclicBarrier用在多个线程互相等待执行完毕的情况。Phaser是java 7 引入的新的并发API。他引入了新的Phaser的概念,我们可以将其看成一个一个的阶段,每个阶段都有需要执行的线程任务,任务执行完毕就进...

2020-03-31 09:08:30 8958

原创 关于CompletableFuture的一切,看这篇文章就够了
原力计划

文章目录CompletableFuture作为Future使用异步执行code组合FuturesthenApply() 和 thenCompose()的区别并行执行任务异常处理java中CompletableFuture的使用之前的文章中,我们讲解了Future, 本文我们将会继续讲解java 8中引入的CompletableFuture的用法。CompletableFuture首先是一个F...

2020-03-30 09:20:22 10146 4

原创 java中FutureTask的使用
原力计划

文章目录FutureTask简介Callable和Runnable的转换以Runnable运行java中FutureTask的使用FutureTask简介FutureTask是java 5引入的一个类,从名字可以看出来FutureTask既是一个Future,又是一个Task。我们看下FutureTask的定义:public class FutureTask<V> imple...

2020-03-28 16:12:28 9283

原创 java中ThreadLocalRandom的使用

java中ThreadLocalRandom的使用在java中我们通常会需要使用到java.util.Random来便利的生产随机数。但是Random是线程安全的,如果要在线程环境中的话就有可能产生性能瓶颈。我们以Random中常用的nextInt方法为例来具体看一下: public int nextInt() { return next(32); }nex...

2020-03-27 09:18:35 9056

原创 在java中使用JMH(Java Microbenchmark Harness)做性能测试
原力计划

文章目录使用JMH做性能测试BenchmarkModeFork和WarmupState和Scope在java中使用JMH(Java Microbenchmark Harness)做性能测试JMH的全称是Java Microbenchmark Harness,是一个open JDK中用来做性能测试的套件。该套件已经被包含在了JDK 12中。本文将会讲解如何使用JMH来在java中做性能测试。...

2020-03-26 09:25:48 9274

原创 java中CyclicBarrier的使用
原力计划

文章目录CyclicBarrier的方法CyclicBarrier的使用java中CyclicBarrier的使用CyclicBarrier是java 5中引入的线程安全的组件。它有一个barrier的概念,主要用来等待所有的线程都执行完毕,然后再去执行特定的操作。假如我们有很多个线程,每个线程都计算出了一些数据,然后我们需要等待所有的线程都执行完毕,再把各个线程计算出来的数据加起来,的到最...

2020-03-25 09:26:54 8989

原创 java并发中CountDownLatch的使用
原力计划

文章目录主线程等待子线程全都结束之后再开始运行等待所有线程都准备好再一起执行停止CountdownLatch的awaitjava并发中CountDownLatch的使用在java并发中,控制共享变量的访问非常重要,有时候我们也想控制并发线程的执行顺序,比如:等待所有线程都执行完毕之后再执行另外的线程,或者等所有线程都准备好了才开始所有线程的执行等。这个时候我们就可以使用到CountDownL...

2020-03-24 10:07:56 9043

原创 java中Locks的使用
原力计划

文章目录Lock和Synchronized Block的区别Lock interfaceReentrantLockReentrantReadWriteLockStampedLockConditionsjava中Locks的使用之前文章中我们讲到,java中实现同步的方式是使用synchronized block。在java 5中,Locks被引入了,来提供更加灵活的同步控制。本文将会深入的讲...

2020-03-23 09:52:15 8927

原创 java 中的fork join框架
原力计划

文章目录ForkJoinPoolForkJoinWorkerThreadForkJoinTask在ForkJoinPool中提交Taskjava 中的fork join框架fork join框架是java 7中引入框架,这个框架的引入主要是为了提升并行计算的能力。fork join主要有两个步骤,第一就是fork,将一个大任务分成很多个小任务,第二就是join,将第一个任务的结果join起来...

2020-03-20 09:56:07 8944

原创 java中ThreadPool的介绍和使用
原力计划

文章目录Thread Pool简介Executors, Executor 和 ExecutorServiceThreadPoolExecutorScheduledThreadPoolExecutorForkJoinPooljava中ThreadPool的介绍和使用Thread Pool简介在Java中,threads是和系统的threads相对应的,用来处理一系列的系统资源。不管在windo...

2020-03-19 09:22:13 9082

原创 java中的daemon thread

java中的daemon threadjava中有两种类型的thread,user threads 和 daemon threads。User threads是高优先级的thread,JVM将会等待所有的User Threads运行完毕之后才会结束运行。daemon threads是低优先级的thread,它的作用是为User Thread提供服务。 因为daemon threads的低优先...

2020-03-18 09:07:39 8962

原创 java中interrupt,interrupted和isInterrupted的区别
原力计划

文章目录isInterruptedinterruptedinterruptjava中interrupt,interrupted和isInterrupted的区别前面的文章我们讲到了调用interrupt()来停止一个Thread,本文将会详细讲解java中三个非常相似的方法interrupt,interrupted和isInterrupted。isInterrupted首先看下最简单的is...

2020-03-17 09:22:28 9011

原创 java中的Atomic类

文章目录问题背景Lock使用Atomicjava中的Atomic类问题背景在多线程环境中,我们最常遇到的问题就是变量的值进行同步。因为变量需要在多线程中进行共享,所以我们必须需要采用一定的同步机制来进行控制。通过之前的文章,我们知道可以采用Lock的机制,当然也包括今天我们讲的Atomic类。下面我们从两种方式来分别介绍。Lock在之前的文章中,我们也讲了同步的问题,我们再回顾一下。...

2020-03-16 09:23:42 9008

原创 怎么在java中关闭一个thread

怎么在java中关闭一个thread我们经常需要在java中用到thread,我们知道thread有一个start()方法可以开启一个线程。那么怎么关闭这个线程呢?有人会说可以用Thread.stop()方法。但是这个方法已经被废弃了。根据Oracle的官方文档,Thread.stop是不安全的。因为调用stop方法的时候,将会释放它获取的所有监视器锁(通过传递ThreadDeath异常实现...

2020-03-15 09:51:53 9115

原创 java中join的使用

java中join的使用join()应该是我们在java中经常会用到的一个方法,它主要是将当前线程置为WAITTING状态,然后等待调用的线程执行完毕或被interrupted。join()是Thread中定义的方法,我们看下他的定义: /** * Waits for this thread to die. * * <p> An invocati...

2020-03-14 08:56:29 8976

原创 java中线程的生命周期
原力计划

文章目录java中Thread的状态NEWRunnableBLOCKEDWAITINGTIMED_WAITINGTERMINATEDjava中线程的生命周期线程是java中绕不过去的一个话题, 今天本文将会详细讲解java中线程的生命周期,希望可以给大家一些启发。java中Thread的状态java中Thread有6种状态,分别是:NEW - 新创建的Thread,还没有开始执行RU...

2020-03-13 10:07:45 10592 1

原创 java中ThreadLocal的使用
原力计划

文章目录在Map中存储用户数据在ThreadLocal中存储用户数据java中ThreadLocal的使用ThreadLocal主要用来为当前线程存储数据,这个数据只有当前线程可以访问。在定义ThreadLocal的时候,我们可以同时定义存储在ThreadLocal中的特定类型的对象。ThreadLocal<Integer> threadLocalValue = new Thr...

2020-03-12 09:53:04 10732

原创 java中Runnable和Callable的区别
原力计划

文章目录运行机制返回值的不同Exception处理java中Runnable和Callable的区别在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是java1.5添加进来的一个增强版本。本文我们会详细探讨Runnable和Callable的区别。运行机制首先看下Runnable和Callable的接口定义:@FunctionalInterface...

2020-03-11 09:18:36 11341

原创 java并发中ExecutorService的使用
原力计划

文章目录创建ExecutorService为ExecutorService分配Tasks关闭ExecutorServiceFutureScheduledExecutorServiceExecutorService和 Fork/Joinjava并发中ExecutorService的使用ExecutorService是java中的一个异步执行的框架,通过使用ExecutorService可以方便的...

2020-03-10 11:01:55 11003

原创 java中Future的使用

文章目录创建Future从Future获取结果取消Future多线程环境中运行java中Future的使用Future是java 1.5引入的一个interface,可以方便的用于异步结果的获取。 本文将会通过具体的例子讲解如何使用Future。创建Future正如上面所说,Future代表的是异步执行的结果,意思是当异步执行结束之后,返回的结果将会保存在Future中。那么我们什么时候...

2020-03-09 09:17:39 10802 2

原创 java中wait和sleep的区别

文章目录Wait和sleep的区别唤醒wait和sleepjava中wait和sleep的区别在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别。并讨论一下怎么使用这两个方法。Wait和sleep的区别wait() 是Object中定义的native方法:public final native void wait(long timeout) throws In...

2020-03-08 09:33:25 10698

原创 java中的Volatile关键字使用

文章目录什么时候使用volatileHappens-Beforejava中的Volatile关键字使用在本文中,我们会介绍java中的一个关键字volatile。 volatile的中文意思是易挥发的,不稳定的。那么在java中使用是什么意思呢?我们知道,在java中,每个线程都会有个自己的内存空间,我们称之为working memory。这个空间会缓存一些变量的信息,从而提升程序的性能。当...

2020-03-07 08:55:46 10646

原创 Spring Boot JPA 中transaction的使用

文章目录@Transactional的实现@Transactional的使用Transaction的传播级别REQUIREDSUPPORTSMANDATORYNEVERNOT_SUPPORTEDREQUIRES_NEWNESTEDTransaction的隔离级别READ_UNCOMMITTEDREAD_COMMITTEDREPEATABLE_READSERIALIZABLESpring Boot...

2020-03-06 09:08:08 11057

原创 java并发中的Synchronized关键词

文章目录为什么要同步Synchronized关键词Synchronized Instance MethodsSynchronized Static MethodsSynchronized Blocksjava并发中的Synchronized关键词如果在多线程的环境中,我们经常会遇到资源竞争的情况,比如多个线程要去同时修改同一个共享变量,这时候,就需要对资源的访问方法进行一定的处理,保证同一时间...

2020-03-06 09:05:03 10512

原创 java.util.concurrent简介
原力计划

文章目录主要的组件ExecutorExecutorServiceScheduledExecutorServiceFutureCountDownLatchCyclicBarrierSemaphoreThreadFactoryjava.util.concurrent简介java.util.concurrent包提供了很多有用的类,方便我们进行并发程序的开发。本文将会做一个总体的简单介绍。主要的组...

2020-03-05 09:06:03 10610

原创 Spring Boot JPA中关联表的使用

文章目录添加依赖构建Entity构建Repository构建初始数据测试Spring Boot JPA中关联表的使用本文中,我们会将会通过一个Book和Category的关联关系,来讲解如何在JPA中使用。添加依赖我们还是使用H2内存数据库来做测试: <dependency> <groupId>org.springframew...

2020-03-04 09:14:56 10788

原创 Spring Boot JPA的查询语句
原力计划

文章目录准备工作Containing, Contains, IsContaining 和 LikeStartsWithEndsWith大小写不敏感Not@QuerySpring Boot JPA的查询语句之前的文章中,我们讲解了如何使用Spring Boot JPA, 在Spring Boot JPA中我们可通过构建查询方法或者通过@Query注解来构建查询语句,本文我们将会更详细的讨论查询语...

2020-03-03 09:30:52 11182

原创 Spring Boot JPA中使用@Entity和@Table

文章目录默认实现使用@Table自定义表格名字在JPQL Queries中重写表格名字Spring Boot JPA中使用@Entity和@Table本文中我们会讲解如何在Spring Boot JPA中实现class和数据表格的映射。默认实现Spring Boot JPA底层是用Hibernate实现的,默认情况下,数据库表格的名字是相应的class名字的首字母大写。命名的定义是通过接口...

2020-03-02 08:54:52 12207

原创 在Spring Boot中使用内存数据库

文章目录H2数据库HSQLDBApache DerbySQLite在Spring Boot中使用内存数据库所谓内存数据库就是可以在内存中运行的数据库,不需要将数据存储在文件系统中,但是相对于普通的数据库而言,内存数据库因为数据都在内存中,所以内存的数据库的存取速度会更快。本文我们将会讨论如何在Spring Boot中使用内存数据库。H2数据库H2是一个由java实现的开源内存数据库,它可...

2020-03-01 08:38:39 11023

UML ROSE

Uml &lt;br/&gt; 的好帮手

2007-04-19

java-collection-all-in-one.pdf

详细讲解java中集合的分类和使用,并介绍了java集合中一些不为人知的小秘密。还详细介绍了java并发包中的集合特性。

2020-10-26

JDK11GC-cheatsheet.pdf

JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。同时还提供了新的HTTP API,支持响应性stream。 当然上面的都不是重点,重点的是JDK11是一个LTS版本,是继JDK8之后的又一个LTS版本,也可能是大家日后使用的最多的一个版本。 所以JDK11的JVM参数吸收了JDK9,JDK10的新特性和改动,并在他们的基础上进行了微调。 同样在文章最后,我也将JDK11的GC调优秘籍做成了一张PDF,欢迎大家下载。

2020-07-22

JDK12GC-cheatsheet.pdf

JDK12 GC调优秘籍 JDK12 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK12中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-11的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK13GC-cheatsheet.pdf

JDK13 GC调优秘籍 JDK13 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK13中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-12的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK14GC-cheatsheet.pdf

JDK14 GC调优秘籍 JDK14 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK14中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-13的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

Spring5.1中文参考指南.pdf

最新版Spring5.1参考指南中文版,带全部标签,可能是全网最好的PDF了,欢迎大家下载! 除了Spring之前的功能介绍之外,增加了Spring5最新的webflux技术,让你的程序更快更强更好

2019-11-30

JDK9GC-cheatsheet.pdf

JDK9 GC调优秘籍 JDK9 GC cheatsheet, 一张PDF包含所有的调优参数! 今天我们讲讲JDK9中的JVM GC调优参数,JDK9中JVM的参数总共有2142个,其中正式的参数有659个。好像比JDK8中的参数要少一点。 为了方便大家的参考,特意将JDK9中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-06-26

JDK10GC-cheatsheet.pdf

为了方便大家的参考,特意将JDK10中的GC参数总结成了一张PDF,这个PDF在之前的JDK9的基础上进行了增减和修正,欢迎大家下载。

2020-07-16

j2ee 1.4 API

j2ee 1.4 API

2007-04-19

JDK8GC-cheatsheet.pdf

JVM的参数有很多很多,根据我的统计JDK8中JVM的参数总共有1853个,正式的参数也有680个。 这么多参数带给我们的是对JVM的细粒度的控制,但是并不是所有的参数都需要我们自己去调节的,我们需要关注的是一些最常用的,对性能影响比较大的GC参数即可。 为了更好的让大家理解JDK8中 GC的调优的秘籍,这里特意制作了一张PDF,遇到问题就看两眼,不美吗?

2020-06-22

Hibernate原理与配置快速入门.pdf

Hibernate原理与配置快速入门.pdf

2007-04-20

概观C++程序设计语言.chm

概观C++程序设计语言.chm

2007-04-21

spring live 中文版

spring live 中文版<br/>好东西

2007-04-20

Android编程权威指南

Android编程权威指南 想要精通安卓的快来看看啊, 绝对是不可多得的一本好书。

2015-06-25

[Objective-C 程序设计(第4版)].(斯蒂芬).林冀等.扫描版

最新的Objective c , IOS程序设计, 你不容错过!

2016-02-29

iOS+软件开发揭密:iPhone&iPad+企业应用和游戏开发

iOS+软件开发揭密:iPhone&iPad+企业应用和游戏开发 需要IOS学习的人速度过来看啊。

2015-06-25

HTML5高级程序设计第二版.

HTML5高级程序设计第二版.

2015-06-25

Android应用开发详解.pdf

Android应用开发详解, 非常牛逼的书。 必看

2015-04-03

Android编程入门教程

Android编程入门教程. android 入门教程, 非常适合新手。赶紧来下载吧。

2015-06-25

CSS 2.0

CSS 2.0 页面设计必备

2007-04-19

O'Reilly - Python and XML.pdf

O'Reilly - Python and XML.pdf

2015-04-03

struts-api

struts-api

2007-04-13

struts in action

struts in action

2007-04-13

高质量C、C++编程指南.pdf

高质量C、C++编程指南.pdf

2007-04-20

Inside C++ Object Model.chm

Inside C++ Object Model.chm<br/>Inside C++ Object Model.chm

2007-04-20

精通比特币pdf

想要加入一场颠覆金融世界的技术革命吗?《精通比特币》会为你参与这个 货币网络提供必备知识,引导你进入看似复杂的比特币世界。无论你是正在构建 下一个杀手级应用、投资创业,还是单纯对技术好奇,这本实用的书都是你不可 或缺的阅读材料。

2018-06-20

下载区分页有问题

发表于 2011-07-04 最后回复 2011-07-05

空空如也

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

TA关注的人 TA的粉丝

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