自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

成凯的专栏

开发小助手

  • 博客(96)
  • 资源 (4)
  • 收藏
  • 关注

原创 Spring boot 快速整合log4j2

首先在前一篇的基础上引入log4j的jar包, 同时spring boot默认是用logback的日志框架的,所以需要排除logback,不然会出现jar依赖冲突的报错。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions...

2020-10-13 08:58:40 204

原创 Spring boot(1)-快速入门

1.新加一个MAVEN的web项目2.Pom.xml的配置文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht...

2020-09-16 15:22:12 204

原创 Java集合-Stack

Stack(java.util.Stack)类是典型的栈数据结构,可以从头部插入,读取和移除元素。Stack是List接口的一个实现,但是很少使用Stack作为List-除非需要检查当前存储在Stack中的所有元素。注意,Stack类是Vector的子类,Vector是java中一个古老的同步类, 这种同步会增加对Stack中所有方法的调用的开销。另外,Vector还使用了几个古老的java部分(不再推荐),支持Iterator的Enumeration ,如果为了避免这种问题可以使用Deque。S.

2020-09-15 11:14:03 589

原创 Java集合-Deque

Deque(java.util.Deque)接口代表着双向队列,意思就是可以从队列的两端增加或者删除元素,Deque就是双向Queue的意思。Deque的实现既然Deque是个接口所以初始化时就要用到其具体的实现,在Collections API中有下面两种实现:java.util.LinkedList java.util.ArrayDequeLinkedList类是非常标准的Deque和Queue的实现,它在内部使用链接列表来建模queue或deque。ArrayDeque类内部存储.

2020-09-14 15:39:58 4058 1

原创 Java集合-Queue

Queue(java.util.Queue)代表着一种在尾部插入数据,从头部移除数据的数据结构,这与超市排队的工作原理类似。Queue接口是Java Collection的一个子接口interface,他代表着有序的对象序和Java List比较类似,但它的预期用途略有不同。因为Queue接口是Collection接口的子类,所以Collection接口中的所有方法Queue接口也能使用。Queue的实现既然Queue是个接口,那么初始化时就要使用它的具体实现,有下面两种实现:...

2020-09-13 22:33:36 174

原创 Java集合-Properties

Properties(java.util.Properties)类,跟Map的key和value都为String类型比较相似,Properties类可以将c key和 value键值对写道磁盘的properties文件中,然后可以再次读出来。本文讲述Properties常用的机制。创建Properties实例为了使用Properties类,则必须使用Properties的实例,可以通过构造函数创建:Properties properties = new Properties()...

2020-09-10 21:45:10 194

原创 Java集合-NavigableMap

NavigableMap(java.util.NavigableMap)接口是SortedMap的子接口,但是NavigableMap接口中新加了几个SortedSet接口中没有的方法,使导航存储在映射中的键和值成为可能,本文会讲解。NavigableMap的实现既然是接口,那就必须用到它的实现,java.util包中只有一个实现java.util.TreeMap,另外java.util.concurrent包中也有实现,但是本文不讲解。创建NavigableMap为了创建Naviga...

2020-09-09 17:05:16 5805

原创 Java集合-SortedMap

SortedMap(java.util.SortedMap)接口是Map的子接口,SortedMap中增加了元素的排序,这意味着可以给SortedMap中的元素排序。SortedMap的实现TreeMapSortedMap接口的实现TreeMap(java.util.TreeMap).创建TreeMap可以通过TreeMap的构造函数创建TreeMap实例:SortedMap sortedMap = new TreeMap();创建TreeMap使用Compara...

2020-09-08 09:44:03 11164

原创 Java集合-Map

Map(java.util.Map)接口,代表着key和value间的映射,更具体地说,Java映射可以存储键和值对,一旦存储在地图中,以后就可以只使用键来查找值。Map接口不是Collection的子接口,因此,它的行为与其他Collection类型稍有不同。Map的实现既然Map是个接口,因此初始化时需要使用她的具体实现,Map包括以下实现类:java.util.HashMap java.util.Hashtable java.util.EnumMap java.util.Iden..

2020-09-07 16:10:25 254

原创 Java集合-NavigableSet

NavigableSet(java.util.NavigableSet)接口是SortedSet 接口的一个子接口。因此,NavigableSet和SortedSet很相似,但是,除了SortedSet的排序机制之外,还提供了一组额外的导航方法,本篇文章将讲述NavigableSet的这些导航方法。NavigableSet的实现从Java 6 到13,NavigableSet在java.util包中只有一个实现类java.util.TreeSet类,java.util.concurrent中也...

2020-09-04 09:47:04 843

原创 Java集合-SortedSet

SortedSet(java.util.SortedSet)是Set接口的子类,Sortedset接口的行为类似于普通Set,但它包含的元素是在内部排序的, 这意味着,当迭代SortedSet的元素时,这些元素将按排序的顺序进行迭代。SortedSet的实现TreeSetCollections API中SortedSet中只有一个实现java.util.TreeSet类,java.util.concurrent也有此接口的一个实现java.util.concurrent. ConcurrentSk.

2020-09-03 10:33:20 8700

原创 Java集合-Set

Set(java.util.Set)接口,Set中存放的一组没有重复数据的集合,换句话说,同样的元素在Set中只能出现一次。Set接口是一个标准的JAVA接口,是Collection的子类,所以Set继承了Collection 的所有特性。可以向Set中添加任何java对象,如果Set不是类型化的,没有使用Java泛型,那么您甚至可以在同一个集合中混合不同类型(类)的对象,实际开发中很少这么做。Set和ListSet和List非常相似,两个接口都代表着元素的集合,但是也有一些明显的不同。这些差异反映

2020-09-02 14:49:47 222

原创 Java集合-List

List接口(java.util.List)代表着有序的对象集合, List中包含的元素可以根据它们在List中的内部顺序进行插入、访问、迭代和删除,元素的顺序就是这个数据结构被称为列表的原因。List中的每个元素都有一个索引,第一个元素的索引是0,第二个元素的索引是1。索引的意思是“离List的第一个元素间隔多少个元素”。因为第一个元素在List的开头,所有间隔为0。如果List不是类型化的,使用Java泛型,那么甚至可以在同一个列表中混合不同类型(类)的对象然而,在时间开发中很少在List中混合不同

2020-09-01 17:59:22 361

原创 Java集合-Collections

Collections(java.util.Collections) 包含了Java中使用集合许多实用方法,本文将讲述一些非常常用的方法。addAll()Collections的addAll()方法可以增加可变的元素到Collection (通常是List或者Set),下面是例子:List<String> list = new ArrayList<>();Collections.addAll(list, "element 1", "element 2", "el.

2020-08-31 11:02:11 168

原创 Java集合-Collection

Collection接口 (java.util.Collection)是java集合根接口中的一个,尽管不直接实例化Collection,但是我们经常用到其子类,而且通常把其子类当做Collection使用,本文我们会讲到。创建Collection正如上面所说,我们不直接实例化Collection,而是实例化其子类,下面是创建Collection子类List的代码:Collection collection = new ArrayList();上面的示例适用于Collecti.

2020-08-30 09:24:15 172

原创 Java集合-Iterable

Iterable接口表示一组对象,这些对象是Iterable的,这意味着可以迭代,这意味着实现Iterable接口,则可以迭代其元素,可以通过以下方式迭代Iterable对象,使用for-each循环,从Iterable获取Iterator或者通过Iterable的forEach()方法,下面会一一讲解。用for-each循环等待的Iterable第一种方法就是通过for-each 循环迭代,下面例子是如何通过for-each 循环迭代List。因为List继承了Collection接口,Col..

2020-08-29 12:11:40 7937

原创 Java集合-Iterator

Java Iterator接口表示一个对象,该对象能够遍历Java对象的集合,一次迭代一个对象。Iterator接口是Java中用于迭代对象集合的最古老的机制之一(尽管不是最早的-Enumerator早于Iterator)。使用java的Iterator,首先从需要迭代的对象集合中获取一个Iterator实例。获得的迭代器跟踪底层集合中的元素,以确保遍历所有元素。如果在遍历指向该集合的迭代器时,修改基础集合,迭代器通常会检测到它,并在下次尝试从迭代器获取下一个元素时抛出异常。下面会继续讲述。...

2020-08-28 11:50:02 246

原创 Java集合-概述

为了更好得理解和使用JAVA集合API,了解集合的概况是非常有效的,下面会讲解概况。分两组接口:Collection和Map。下图是Collection接口的层级概述:下图是Map接口的层级概述:上面图上的接口,后面本专栏文章会一一讲解....

2020-08-27 11:14:58 115

原创 JAVA并发-AtomicReferenceArray

AtomicReferenceArray类 (java.util.concurrent.atomic. AtomicReferenceArray) 代表着对象引用数组,在AtomicReferenceArray中的Object元素可以原子性的更新,AtomicReferenceArray中的Object元素同样支持CAS操作。创建AtomicReferenceArray可以用两个构造函数中的一个创建AtomicReferenceArray,第一个构造函数需要一个int类型参数,int参数...

2020-08-26 09:54:50 784

原创 JAVA并发-AtomicLongArray

AtomicLongArray类 (java.util.concurrent.atomic. AtomicLongArray) 代表着long数组,在AtomicLongArray中的long元素可以原子性的更新,AtomicLongArray中的long元素同样支持CAS操作。创建AtomicLongArray可以用两个构造函数中的一个创建AtomicLongArray,第一个构造函数需要一个int类型参数,int参数指定了AtomicLongArray创建的长度,意思就是需要分配...

2020-08-25 10:27:15 276

原创 JAVA并发-AtomicIntegerArray

AtomicIntegerArray类 (java.util.concurrent.atomic.AtomicIntegerArray) 代表着int数组,在AtomicIntegerArray中的int元素可以原子性的更新,AtomicIntegerArray中的int元素同样支持CAS操作。创建AtomicIntegerArray可以用两个构造函数中的一个创建AtomicIntegerArray,第一个构造函数需要一个int类型参数,int参数指定了AtomicIntegerArray创建...

2020-08-24 14:36:54 720

原创 JAVA并发-AtomicStampedReference

AtomicStampedReference类提供了对对象引用变量的原子读和写, AtomicStampedReference是指多个试图更改同一AtomicStampedReference的线程不会使AtomicStampedReference最终处于不一致的状态。AtomicStampedReference和AtomicReference不一样的是,AtomicStampedReference在内部同时保留对象引用和数据戳,引用和数据戳可以通过compareAndSet()方法使用单CAS操作...

2020-08-17 22:15:27 1019

原创 JAVA并发-AtomicReference

AtomicReference类提供了对对象引用变量的原子读和写,原子性意味着多个线程试图更改同一个AtomicReference(例如,通过CAS操作)不会使AtomicReference最终处于不一致的状态。AtomicReference有一个高级的compareAndSet()方法,它允许您将引用与预期值(reference)进行比较,如果它们相等,则在AtomicReference对象内设置一个新的引用/创建 AtomicReference下面是创建AtomicReference实例:.

2020-08-15 17:55:06 808

原创 JAVA并发-AtomicLong

AtomicLong类提供了long类型的变量与AtomicInteger非常类似,变量可以原子写和读,同时还包括先进的原子操作例如compareAndSet()。AtomicLong类位于java.util.concurrent.atomic包中,全名java.util.concurrent.atomic.AtomicLong。本文讲述JAVA8中的AtomicLong,但是第一个版本是在Java 5中。关于AtomicLong设计原理可以参考Compare and Swap创建...

2020-08-12 21:42:23 810

原创 JAVA并发-AtomicInteger

AtomicInteger类提供了int类型的变量,变量可以原子写和读,同时还包括先进的原子操作例如compareAndSet()。AtomicInteger类位于java.util.concurrent.atomic包中,全名java.util.concurrent.atomic. AtomicInteger。本文讲述JAVA8中的AtomicBoolean,但是第一个版本是在Java 5中。关于AtomicInteger设计原理可以参考Compare and Swap。创建At...

2020-08-11 22:21:37 719

原创 JAVA并发-AtomicBoolean

AtomicBoolean类提供了boolean类型的变量,变量可以原则写和读,同时还包括先进的原子操作例如compareAndSet()。AtomicBoolean类位于java.util.concurrent.atomic包中,全名java.util.concurrent.atomic.AtomicBoolean。本文讲述JAVA8中的AtomicBoolean,但是第一个版本是在Java 5中。关于AtomicBoolean设计原理可以参考Compare and Swap。创建一个...

2020-08-10 21:46:19 1328

原创 JAVA并发-Fork/Join使用ForkJoinPool

Java 7中新加了ForkJoinPool,ForkJoinPool和ExecutorService非常相似,但是有一点不同,ForkJoinPool使任务能够很容易地将它们的工作拆分成更小的任务,然后再提交给ForkJoinPool。任务可以继续将其工作拆分为更小的子任务,只要它能够拆分任务,这听起来有点抽象,下面会解释ForkJoinPool怎么工作,以及怎么拆分任务。Fork/Join解释在了解ForkJoinPool直接,我想先解释一下fork/join得工作原理。Fork/...

2020-08-09 22:06:20 528

原创 JAVA并发-ScheduledExecutorService

java.util.concurrent.ScheduledExecutorService是一个可以安排任务延迟执行的ExecutorService, 或者以固定的时间间隔重复执行。任务通过一个工作线程异步执行,而不是提交任务到ScheduledExecutorService的线程。ScheduledExecutorService例子下面是ScheduledExecutorService例子:ScheduledExecutorService scheduledExecutorServic..

2020-08-04 11:21:26 634

原创 JAVA并发-ThreadPoolExecutor

java.util.concurrent.ThreadPoolExecutor是ExecutorService(前面已经讲过)接口的一个实现. ThreadPoolExecutor使用其内部池线程之一执行给定任务(CallableorRunnable)。ThreadPoolExecutor内部的线程池包含了不能数量的线程,线程池中线程的数量可以通过以下变量来定义:corePoolSize maximumPoolSize如果在将任务委派给线程池时在线程池中创建的线程小于core...

2020-08-03 17:33:08 150

原创 JAVA并发-Future

java.util.concurrent.Future, 代表着通过异步计算返回结果,创建异步任务时,返回一个java Future对象。异步任务完成后,可以通过启动任务时返回的Future对象访问结果,一些Java的内置并发实用程序,比如ExecutorService,从它们的一些方法返回一个java Future对象。在ExecutorService中,当提交一个Callable以便并发(异步)执行时,它返回一个Future。Future接口定义为了理解Future接口如何工作, 下面是接口的定

2020-08-01 09:50:18 170

原创 JAVA并发-Callable

Callable接口,java.util.concurrent.Callable,代表着可以通过另外的线程异步执行的任务,例如,可以将一个Callable对象提交到ExecutorService异步执行,我们之前讲过java创建启动线程,现在我们又多了一种Callable,我们先看下如果使用,然后再讲述:package com.ck.thread;import java.util.concurrent.Callable;import java.util.concurrent.Executio..

2020-07-31 11:17:34 410

原创 JAVA并发-ExecutorService

ExecutorService接口,java.util.concurrent.ExecutorService, 代表一种可以在后台并发执行的异步执行机制。在这篇ExecutorService文章中,将解释如何创建ExecutorService,怎么提交任务并执行,怎么获取这些任务的结果,怎么关闭 ExecutorService以及再次使用。任务委托下图说明了,线程将任务委托给ExecutorService异步执行: 线程将任务委托给ExecutorS...

2020-07-30 16:07:22 863

原创 JAVA多线程-Semaphore

java.util.concurrent.Semaphore类是个计数信号量,也就意味着它有两个主要的方法:acquire() release()计数信号量初始化时候设置了一个给定的数字“permits(许可证)”看下构造函数:public Semaphore(int permits) { sync = new NonfairSync(permits);}public Semaphore(int permits, boolean fair) { ...

2020-07-29 11:07:49 251

翻译 JAVA多线程-Exchanger

java.util.concurrent.Exchanger类代表了两个线程在一个集合点可以交互数据。下面描述了一下机制: 两个线程通过Exchanger 正在交换对象数据 交换对象数据是通过exchange()方法,下面是例子:Exchanger exchanger = new Exchanger();ExchangerRunnable exchangerRunnable1 = new ExchangerRunnable...

2020-07-28 09:06:02 130

翻译 JAVA多线程-CyclicBarrier

java.util.concurrent.CyclicBarrier是一个具有通过一些算法让多个线程保持同步的同步机制的类。也就是,这个一个所有线程必须等待的栅栏,所有线程都不能继续直到所有线程到达栅栏,下图说明了这个: 在CyclicBarriers 中,两个线程互相等待 在CyclicBarrier 中,所有线程调用了await()方法都会互相等待,直到N个线程都到达了CyclicBarrier ,那么所有线程就会得到释放并且继续往下运行。创建Cy..

2020-07-27 10:47:12 160

翻译 JAVA多线程-CountDownLatch

CountDownLatchjava.util.concurrent.CountDownLatch是一个并发构造允许一个或者多个线程等待给定的一组操作完成。CountDownLatch初始化时设置了一个给定的值,当调用countDown()方法时这个值会递减, 当这个只为0的时候将唤醒众多调用await()方法线程中的一个线程,调用await()方法的线程将一直阻塞直到count为0.下面是个简单的例子, 当Decrementer调用CountDownLatch的countDown(...

2020-07-24 10:18:59 136

翻译 JAVA多线程-ConcurrentNavigableMap

java.util.concurrent.ConcurrentNavigableMap接口是java.util.NavigableMap的一个子接口支持并发访问,也为其子map提供了并发访问。子map是可以通过多个方法返回的map例如,headMap(),subMap()和tailMap().这里只解释ConcurrentNavigableMap中新加的方法,其他的方法可以参考NavigableMap。headMap()headMap(T toKey)方法返回小于给定键的键的映射视...

2020-07-23 11:21:11 2086 1

翻译 JAVA多线程-ConcurrentMap

java.util.concurrent.ConcurrentMap代表着可以并发访问(存和取元素)的Map.ConcurrentMap在继承了java.util.Map父接口的基础上额外增加了一些原子方法。ConcurrentMap实现既然ConcurrentMap是个接口, 如果需要用它则需要实现这个接口。java.util.concurrent包含了ConcurrentMap的实现:ConcurrentHashMapConcurrentHashMapConcurrentH...

2020-07-22 11:50:25 410

翻译 JAVA多线程-LinkedBlockingDeque

LinkedBlockingDeque类实现了BlockingDeque接口. 可以阅读前面关于BlockingDeque接口更多的信息.Deque这个词来源于“双端队列”。因此,Deque可以在队列的两端插入和删除元素。LinkedBlockingDeque中如果是空,则不管线程试图从哪个端获取元素将会阻塞。下面是初始化和使用LinkedBlockingDeque:BlockingDeque<String> deque = new LinkedBlockingDeq...

2020-07-21 10:11:51 185

翻译 JAVA多线程-BlockingDeque

BlockingDeque接口是java.util.concurrent包中安全的放入和取实例的双向队列的代表。这篇文章介绍了BlockingDeque的用法. BlockingDeque类是一个Deque,当线程试图从Deque中插入或删除元素可能会阻塞。Deque是“双端队列”的缩写。因此,deque是一个两端都可以插入或者取元素的队列.BlockingDeque用法如果一个线程既要向队列中添加元素,又要从同一个队列中取元素,那么BlockingDeque将是非常有用的。如果消费者线程.

2020-07-20 17:03:29 777

OPCDAAuto.dll

用于C/C++,C#连接OPC,用于windows32系统

2013-11-07

谷歌地图API

谷歌地图 API 谷歌地图开发中文文档,很实用,很强

2013-01-29

unixODBC-2.2.11-7.1.i386.rpm

unixODBC-2.2.11-7.1.i386.rpm

2012-10-31

ssh学生管理系统

struts2 hibernate spring的整合

2012-10-16

空空如也

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

TA关注的人

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