首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
java
秃了也弱了
创建于2023-11-02
订阅专栏
java
等 1 人订阅
共61篇文章
创建于2023-11-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ThreadLocal源码深度详解
注!本文不介绍ThreadLocal的基础使用,主要以源码解析为主。ThreadLocal实际上一种线程隔离机制,也是为了保证在多线程环境下对于共享变量的访问的安全性。int num=local.local.System.out.println(Thread.currentThr...
AQS是什么?AbstractQueuedSynchronizer之AQS原理及源码深度分析-CSDN博客
AQS 的全称为(AbstractQueuedSynchronizer),这个类在 java.util.concurrent.locks 包下面。 其中,AbstractOwnableSynchronizer是AbstractQueuedLongSynchronizer和Abst...
【精选】CGLIB代理到底是个什么东西?这是一篇最全的CGLIB大全
0.1.1.1.1.3.1.1.CGLIB基于ASM实现。提供比反射更为强大的动态特性。使用CGLIB可以非常方便的实现的动态代理。0.net.sf.cglib.core 底层字节码处理类。 net.sf.cglib.transform 该包中的类用于class文件运...
Java反射,从0开始
是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗短说就是在运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python等。 ...
【精选】String的Intern()方法,详解字符串常量池!
空间角度(jdk1.1.String字符串,使用一对""引起来表示。2.String声明为final的,不可被继承。3.String实现了Serializable接口,表示字符串是支持序列化的。实现了Comparable接口,表示String可以比较大小。4.String在jdk...
CompletableFuture 异步编排使用详解
在 Java 8 中, 新增加了一个包含 50 个方法左右的类: CompletableFuture,提供了非常强大的Future 的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处理计算结果,并且提供了转换和组合 CompletableF...
java通过sessionID获取指定session,jetty通过sessionID获取指定session,Jetty的session源码分析
session+cookie的机制相信很多小伙伴都明白,这里就不再赘述了。我们都知道,浏览器请求的信息中会自动将jsessionid传给服务端。传统方式通过HttpSession session = request.本文的运行web环境是jetty环境,tomcat估计同理应该大...
一篇不错的讲解Java异常的文章(转载)
1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statement stat = conn.createStatement(); 5 ResultSet rs...
【精选】synchronized对象锁?如何用synchronized锁字符串对象,这里面的坑要注意
我们使用synchronized通常都有这样一个误区:synchronized锁住的代码块一定是所有线程都互斥的。 首先我们明确一点,synchronized锁住的是一个对象!如果锁住的这个对象,在多个线程中相同,那么这些线程访问synchronized修饰的代码块时,总是互斥的...
谈谈java的线程池(创建、机制)-CSDN博客
newFixedThreadPool()方法,该方法返回一个固定数量的线程池,该方法的线程数始终不变,当有一个任务提交时,若线程池中空闲,则立即执行,若没有,则会被暂缓在一个任务队列中等待有空闲的线程去执行。 newSingleThreadExecutor()方法,...
ArrayList不是并发安全的?那么在高并发环境下怎么使用集合
很多小伙伴使用ArrayList、HashMap等集合类,大多数情况下都不是用在多线程环境下的。 答案:不可以哦。1.import java.util.import java.util.concurrent.// 1.// 2.// 3.//List<String>...
什么是死锁?死锁如何解决
死锁相信大家都不陌生,死锁发生通常要伴随着系统的重启,这非常头疼。。 相信看完这一篇文章,你会对死锁更加深入的了解,并且有着更好的处理办法。 每个人都拥有其他人需要的资源,同时又等待其他人已经拥有的资源,并且每个人在获得所有需要的资源之前都不会放弃已经拥有的资...
StampedLock使用及源码分析:号称比读写锁还要快的锁
StampedLock类是在JDK8引入的一把新锁,其是对原有ReentrantReadWriteLock读写锁的增强,增加了一个乐观读模式,内部提供了相关API不仅优化了读锁、写锁的访问,也可以让读锁与写锁间可以互相转换,从而更细粒度的控制并发。也叫邮戳锁、票据锁。读写锁适用于...
web项目下载文件,别在本地生成临时文件了,在此验证其效率,竟差30%的效率
有很多互联网web项目,做文件打包下载的时候,可能需要先从文件服务器下载所有文件放到临时目录,然后再将目录打包成zip临时文件,然后再返回给前端。os = response.fileName = java.net.URLEncoder.fileName = new String(...
【精选】wait/notify——熟悉java线程间通信机制之等待/通知机制
一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。答案:Java 通过内置的等待/通知机制能够很好地解决线程间通信的功能。等待/通知的相关方法是任意 Java 对象都具备的,因为这些方法被定义在所有对象的超...
Java新特性-文本块的使用与最佳实践
文字块(text blocks)这个特性,首先在 JDK 13 中以预览版的形式发布。在 JDK 14 中,改进的文字块再次以预览版的形式发布。最后,文字块在 JDK 15 正式发布。System.out.使用String的加号来拼接HTML, SQL, XML, JSON,似乎...
谈谈java的bio、nio、aio模型
Socket又称“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答请求。 套接字之间的链接过程可以分为四个步骤:服务器监听、客户端请求服务器、服务器确认、客户端确认、进行通信。其本质就是阻塞和非阻塞的区别。 阻塞概念:应用程序在获取网络数据的时候,如...
深挖java线程池
1.2.3.1.2.都有哪几种jdk默认的拒绝策略。1.1. 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 他的主要...
用final修饰的HashMap,到底可不可以修改??
我们都知道,final修饰的类不能被继承、修饰的方法不能被重写(可以被重载)、修饰的变量不能被修改。m.System.out.m.System.out.final修饰的变量,其实是它的引用不能被修改,里面的内容,比如说map、list等,是可以修改其内容的。
java的CyclicBarrier使用-CSDN博客
假设有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待。this.this.Thread.sleep(1000 * (new Random()).System.out.println(name + " 准备OK.barrie...
下一页