随笔分类 -  Java_basic

摘要:1、 supplyAsync方法需要一个Supplier函数接口,通常用于执行异步计算 CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { dosomething("处理事务"); return "结果"; 阅读全文
posted @ 2024-09-26 11:10 秋水秋色 阅读(286) 评论(0) 推荐(0) 编辑
摘要:xxxList.stream().sorted(Comparator.comparing(Object::getXXX)).collect(Collectors.toList()); 阅读全文
posted @ 2024-09-11 14:20 秋水秋色 阅读(3) 评论(0) 推荐(0) 编辑
摘要:multipart/form-data Content Type,专门用于处理包含二进制数据(如图片、视频或文档)和常规文本数据的表单,通常用来上传文件。 要处理 multipart/form-data 请求,我们必须用 @MultipartConfig 或在 web.xml 中配置 Servlet 阅读全文
posted @ 2024-09-04 10:22 秋水秋色 阅读(115) 评论(0) 推荐(0) 编辑
摘要:public class CASCounter { private int i = 0; private static Unsafe unsafe; private static long offset; static { try { var unsafeField = Unsafe.class.g 阅读全文
posted @ 2024-09-02 11:31 秋水秋色 阅读(5) 评论(0) 推荐(0) 编辑
摘要:public class SSLUtils{ //获取这个SSLSocketFactory public static SSLSocketFactory getSSLSocketFactory() { try { SSLContext sslContext = SSLContext.getInsta 阅读全文
posted @ 2024-08-23 14:12 秋水秋色 阅读(38) 评论(0) 推荐(0) 编辑
摘要:runAsync 接收前一步传递的数据,无返回值 ThreadPoolExecutor pool = new ThreadPoolExecutor(2, 4, 3, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(3), new ThreadPo 阅读全文
posted @ 2022-10-28 15:13 秋水秋色 阅读(142) 评论(0) 推荐(0) 编辑
摘要:AQS是JUC中很多同步组件的构建基础,简单来讲,它内部实现主要是状态变量state和一个FIFO队列来完成,同步队列的头结点是当前获取到同步状态的结点,获取同步状态state失败的线程,会被构造成一个结点(或共享式或独占式)加入到同步队列尾部(采用自旋CAS来保证此操作的线程安全),随后线程会阻塞 阅读全文
posted @ 2018-07-12 16:01 秋水秋色 阅读(823) 评论(0) 推荐(0) 编辑
摘要:Executor --> ExecutorService --> AbstractExecutorService --> ThreadPoolExecuotor Executor接口,只有一个execute方法,参数为线程任务 ExecutorService接口继承Executor接口,增加了submit、shutdown、invokeAll等方法 AbstractExecutor... 阅读全文
posted @ 2018-07-02 15:34 秋水秋色 阅读(316) 评论(0) 推荐(0) 编辑
摘要:NIO,一种基于通道和缓冲区的I/O方式,可以使用native函数库直接分配堆外内存,然后通过一个存储在java 堆的DirectBteBuffer对象作为这块内存的引用进行操作,避免了再java堆和native堆中来回复制数据。 NIO是一种同步非阻塞的IO模型。同步是指线程不断轮询IO事件是否就 阅读全文
posted @ 2018-05-10 10:52 秋水秋色 阅读(142) 评论(0) 推荐(0) 编辑
摘要:import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.Future; import java.util.concurrent.RecursiveTask; public class CountTaskForkJoi... 阅读全文
posted @ 2018-05-04 15:59 秋水秋色 阅读(1091) 评论(1) 推荐(0) 编辑
摘要:在concurrent包中提供了condition接口,通过该接口可唤醒指定的某个线程,而不是采用随机唤醒的形式。 阅读全文
posted @ 2018-05-04 15:09 秋水秋色 阅读(774) 评论(0) 推荐(0) 编辑
摘要:jstack用于生产java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法 堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,比如线程间死锁、死循环、请求 外部资源导致长时间等待等。线程出现停顿的时候通过jstack命令可查看各个线程的调用堆栈 线程 阅读全文
posted @ 2018-04-09 16:31 秋水秋色 阅读(312) 评论(0) 推荐(0) 编辑
摘要:ThreadLocal为每个线程提供单独的数据副本,线程间的数据为自身线程所独有(不存在共享变量问题),直接看代码 t1 t2线程各自获取到自己的线程的所属的变量 阅读全文
posted @ 2018-03-26 17:27 秋水秋色 阅读(7179) 评论(0) 推荐(1) 编辑
摘要:先看基于jdk实现的动态代理实现例子 1、先声明一个接口类 2、实现上面定义的接口类 3、实现InvocationHandler接口类 4、测试类 Cglib动态代理示例(还是基于上面的接口类及实现接口类,cglib也支持类的实现方式来支持动态代理,需引入cglib jar包) 阅读全文
posted @ 2018-03-26 14:19 秋水秋色 阅读(2057) 评论(0) 推荐(0) 编辑
摘要:AtomicReference类主要属性(来源于jdk1.7中的源码) 采用AtomicRerence编写的单例模式 1 public class Singleton { 2 3 private static AtomicReference<Singleton> singleton = new At 阅读全文
posted @ 2018-03-20 17:28 秋水秋色 阅读(647) 评论(0) 推荐(0) 编辑
摘要:HashMap源码主要一些属性 //默认的初始化容量(2的n次方) static final int default_inital_capacity = 16; //最大指定容量为2的30次方 static final int maximum_capacity = 1 << 30; //默认的加载因 阅读全文
posted @ 2018-03-10 20:52 秋水秋色 阅读(123) 评论(0) 推荐(0) 编辑
摘要:注意: private static ExecutorService executor = Executors.newCachedThreadPool(); newCachedThreadPool最大线程数为整型的最大值,每提交一个任务,如果没有线程处理,那就产生一个新的线程。当我们for循环提交任 阅读全文
posted @ 2018-03-01 14:41 秋水秋色 阅读(139) 评论(0) 推荐(0) 编辑
摘要:当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,可以。 把该字节序列保存起来(例如:保存在一个文件里),以后可以随时将该字节序列恢复为原来的对象。甚至可以将该字节 阅读全文
posted @ 2018-02-28 16:12 秋水秋色 阅读(311) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示