- 博客(15)
- 收藏
- 关注
原创 ‘xxx‘ is not allowed to run in parallel. 新版idea
新版idea运行多实例时报错,'xxx' is not allowed to run in parallel
2022-02-20 22:27:14
577
原创 Java用BlockingQueue模拟生产者消费者
可直接复制后测试主要思想是想利用BlockingQueue源码中提供的思路去实现手动控制生产者生产动作和消费者的消费动作实现中利用了SynchronousQueue队列只能存一个元素的原理,给生产者和消费者各放入一个该对象,在生产和消费时利用该队列的阻塞功能控制向同一个阻塞队列BlockingQueue中放入和拿出元素package com.study.concurrent.queue;import java.util.concurrent.BlockingQueue;import.
2020-08-26 22:43:09
173
1
原创 spliterator源码中action instanceof IntConsumer
先上结论:tryAdvance方法传入一个action类型是Consumer而判断中却有个action instanceof IntConsumer,但是Consumer和IntConsumer并没有继承等关系,此处在什么情况下会成立呢,假设一个适配器类ConsumerAdapter同时实现了Consumer和IntConsumer时,会根据你实际传入的lambda表达式去推断是否是IntConsumer,例如下例import java.util.function.Consumer;import j
2020-06-16 09:12:27
192
原创 快速排序--最朴素的解释
package com.study;import java.util.Arrays;/** * @author :fei * @date :Created in 2019/12/27 0027 09:28 */public class QuickSort { public static void main(String[] args) { int[] ar...
2019-12-27 10:07:54
145
原创 多线程join方法的理解
join方法是定义在Thread类里的一个final成员方法,因此需要一个Thread对象调用该方法,其语义为将调用join方法的线程对象加入到当前执行线程中先去执行。先上源码 /** * Waits for this thread to die.(等待直到调用该方法的线程死亡,即线程运行结束) * ......(省略) */ public fina...
2019-12-17 12:30:18
189
原创 CharsetDecoder对ByteBuffer关键参数的影响测试
测试对ByteBuffer的position和limit的影响import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.charset.Charset;import java.nio.charset.CharsetDecoder;public class Test { public stati...
2019-06-27 14:34:17
164
原创 Netty学习之NIO基础(四)
/** * java.io中最为关键的概念是流,面向流的编程 * io设计的两个顶层的抽象类inputStream 和OutputStream 使任何一个流不可能实现即是输出流又是输入流 * java的类不可能同时继承这两个类,所以不能有一个类同时具有这两个功能 * java.nio中有三个核心概念,Selector,Channel,Buffer * nio是面向块儿block或者缓冲...
2019-06-09 19:54:38
126
转载 Netty学习之IO流及装饰者模式(三)
java的IO流一定是输入流或输出流的一种,不可能即是输入流又是输出流,因为java将InputStream和OutputStream两个顶层对象设置为两个抽象类,而java中又不可能同时继承两个类所以一个流只能是输入和输出流中的一种IO流的分类主要有两类,一个是节点流,节点流是用来实际操作的流,是读取对应的实际数据的,比如从磁盘读取或者从内存区域读取等一个是过滤流,不能单独存在依赖于节点...
2019-06-09 19:29:04
147
原创 Netty学习之服务端基础概念(二)
服务端基本代码流程客户端流程去掉一个用来监听接受客户端请求的bossGroup事件循环组启动类也去掉对应的Sever用Bootstrap对象去实现public class TestServer { public static void main(String[] args) throws Exception { //创建两个事件循环组 Event...
2019-06-09 18:41:08
95
转载 Netty学习之Socket的理解(一)
socket本质是网络编程的接口定义,在java中以对象的形式来描述这个接口,在linux中以文件的方式来描述这个接口。java中定义了两个类来操作对应服务端和客户端的socketServerSocket和Socket,至于为什么要定义两个不同的类去实现,应该是java编程面向对象的封装思想吧,为了更清晰的分类不同功能的实现类,其实这两个类中都有描述具体实现是一个SocketImpl的抽象...
2019-06-09 18:19:46
665
原创 多线程死锁
模拟死锁的过程一:public class T { Object o1 = new Object(); Object o2 = new Object(); private void m1() { synchronized (o1) { System.out.println("锁住o1"); synchronized (o2) { System.out.print...
2019-05-20 16:49:23
228
翻译 Redis数据库规则
SELECT 索引自1.0.0起可用。选择具有指定的从零开始的数字索引的Redis逻辑数据库。新连接始终使用数据库0。Redis不同的可选数据库是命名空间的一种形式:所有数据库无论如何都保存在同一个RDB / AOF文件中。但是,不同的数据库可以具有相同名称的keys,并且有可用于特定数据库的FLUSHDB,SWAPDB或RANDOMKEY等命令。实际上,Redis数据库应主要用于...
2018-11-07 15:11:19
173
原创 springboot入门分析,构建自己的父POM
Springboot入门分析Spring Boot 2.0.4.RELEASE需要Java 8或9以及 Spring Framework 5.0.8.RELEASE或更高版本。Maven 3.2+,嵌入式servlet容器Tomcat8.5 Servlet版本3.1以上。一般以maven方式构建工程,需继承spring-boot-starter-parent父工程查找为什么要以这种方式...
2018-08-20 12:56:13
3824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人