Java
GC
摸鱼Java开发
这个作者很懒,什么都没留下…
展开
-
Java 错误 :InvalidPathException: Malformed input or input contains unmappable characters
Java项目导入文件上传报错InvalidPathException原创 2023-11-01 16:39:49 · 1365 阅读 · 0 评论 -
正则提取文本中的数字
【代码】正则提取文本中的数字。原创 2023-10-16 16:56:49 · 182 阅读 · 0 评论 -
es报错[FORBIDDEN/12/index read-only / allow delete (api)]
【代码】es报错[FORBIDDEN/12/index read-only / allow delete (api)]原创 2023-07-29 16:06:19 · 643 阅读 · 0 评论 -
Java发送邮件,抄送,附加(file文件,url中获取),html
【代码】Java发送邮件,抄送,附加(file文件,url中获取),html。原创 2023-07-04 16:25:26 · 584 阅读 · 0 评论 -
Java生成二维码解密二维码工具类
【代码】Java生成二维码解密二维码工具类。原创 2023-07-01 21:19:21 · 83 阅读 · 0 评论 -
Java检测图片是否是二维码
Java检测图片是否是二维码原创 2023-07-01 20:43:15 · 690 阅读 · 0 评论 -
Failed to determine a suitable driver class
【代码】Failed to determine a suitable driver class。原创 2023-06-28 13:44:18 · 347 阅读 · 0 评论 -
jsoup使用换一下目录就可以运行
【代码】jsoup使用换一下目录就可以运行。原创 2023-06-02 15:50:33 · 49 阅读 · 0 评论 -
Java用http调用ai
Java调用openai原创 2023-03-06 10:47:41 · 415 阅读 · 0 评论 -
ES-2:Java的 ElasticsearchTemplate Or ElasticsearchRepository基础常用查询写法
ES-2:Java的 ElasticsearchTemplateOrElasticsearchRepository基础常用查询写法原创 2022-12-07 11:44:33 · 638 阅读 · 0 评论 -
ES-3:Java的 ElasticsearchTemplate Or ElasticsearchRepository 高亮(highlight)
ElasticsearchTemplateOrElasticsearchRepository 高亮(highlight)原创 2022-12-13 15:12:17 · 645 阅读 · 0 评论 -
ES-1:Java的 ElasticsearchTemplate Or ElasticsearchRepository基础常用查询写法
ElasticsearchTemplate (ElasticsearchRepository)基础常用查询写法原创 2022-12-06 16:56:55 · 1170 阅读 · 0 评论 -
反转列表中head.next.next = head; head.next = null;
head.next.next = head; head.next = null;通过debug解释原创 2022-11-18 16:25:47 · 285 阅读 · 0 评论 -
springboot项目中Java8时间问题和Long类型丢精度问题解决
springboot项目中Java8时间问题和Long类型丢精度问题解决原创 2022-08-08 17:19:45 · 456 阅读 · 0 评论 -
idea离谱的事情mavenOOM
idea中解决maven oom问题原创 2022-07-18 10:23:13 · 673 阅读 · 0 评论 -
7.17.5Elasticsearch伪集群搭建(一台机器3个节点)
7.17.5Elasticsearch伪集群搭建(一台机器3个节点)原创 2022-07-01 13:32:17 · 788 阅读 · 0 评论 -
java的队列同步器AbstractQueuedSynchronizer(AQS)
AQS定义队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO双端队列来完成资获取线程的排队工作。head指向第一个节点,tail指向最后一个节点节点状态CANCELLED,值为1,由于在同步队列中等待的线程等待超时或者被中断,需要从同步队列中取消等待,节点进人该状态将不会变化SIGNAL,值为-1,后继节点的线程处于等待状态,而当前节点的线程如果释放了同步状态或者被原创 2021-06-17 01:04:57 · 315 阅读 · 0 评论 -
Java代码查看对象头和锁状态
Java代码查看对象头和锁状态添加Maven <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependency>import or原创 2021-06-11 16:07:37 · 2274 阅读 · 1 评论 -
JVM Shenandoah收集器
JVM Shenandoah收集器深入理解java虚拟机Shenandoah是由RedHat公司独立发展的新型收集器项目,在2014年RedHat把Shenandoah贡献给了OpenJDK与G1的不同之处1.支持并发的整理算法,G1的回收阶段是可以多线程并行的,但却不能与用户线程并发2.是默认不使用分代收集的3.摒弃了在G1中耗费大量内存和计算资源去维护的记忆集,改用名为“连接矩阵”的全局数据结构来记录跨Region的引用关系,降低了处理跨代指针时的记忆集维护消耗,也降低了伪共享问题的发生原创 2021-06-08 00:09:57 · 326 阅读 · 3 评论 -
synchronized原理
Java synchronized 原理1.synchronized 可以放普通方法 ,锁定的是当前对象实例2.synchronized 可以放静态方法 ,锁定的是当前类的class对象3.synchronized 可以放方法块 ,锁定的是括号里面的对象JVM基于进入和退出Monitor对象来实现的,代码块同步是使用monitorenter 和monitorexit指令实现的,方法的同步同样可以使用这两个指令来实现。 monitorenter指令是在编译后插入到同步代码块的开始位置,而monitor原创 2021-05-31 17:47:17 · 62 阅读 · 0 评论 -
JavaCAS无锁算法
JavaCAS无锁算法CAS全称 Compare And Swap(比较与交换),是一种无锁算法,java.util.concurrent包中的原子类就是通过CAS来实现。原理CAS算法涉及到三个操作数:需要读写的内存值 V。进行比较的值 A。要写入的新值 B。JDK通过cmpxchg指令,去比较寄存器中的 A 和 内存中的值 V。如果相等,就把要写入的新值 B 存入内存中。如果不相等,就将内存值 V 赋值给寄存器中的值 A。然后通过Java代码中的while循环再次调用cmpxchg指令进行原创 2021-05-31 17:23:17 · 246 阅读 · 0 评论 -
Java垃圾收集器
Java垃圾收集器重要概念:并行(Parallel):并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线程在协同工作,通常默认此时用户线程是处于等待状态。并发(Concurrent):并发描述的是垃圾收集器线程与用户线程之间的关系,说明同一时间垃圾收集器线程与用户线程都在运行。由于用户线程并未被冻结,所以程序仍然能响应服务请求,但由于垃圾收集器线程占用了一部分系统资源,此时应用程序的处理的吞吐量将受到一定影响。OopMap当用户线程停顿下来之后,其实并不需要一个不漏地检查完所有执原创 2021-05-23 22:59:47 · 135 阅读 · 0 评论 -
Java垃圾收集算法
Java垃圾收集算法1.标记清除2.标记复制3.标记整理标记清除算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。缺点第一个是执行效率不稳定,如果Java堆中包含大量对象,而且其中大部分是需要被回收的,这时必须进行大量标记和清除的动作,导致标记和清除两个过程的执行效率都随对象数量增长而降低;第二个是内存空间的碎片化问题,标记、清除之后会产生大量不连续的内存碎片,空间碎片太多可原创 2021-05-23 21:10:26 · 64 阅读 · 0 评论 -
JAVA判断对象是否死了
JAVA判断对象是否死了(是否需要回收)两种算法:1.引用计数法2.可达性分析法引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。要配合大量额外处理才能保证正确地工作,譬如单纯的引用计数就很难解决对象之间相互循环引用的问题。例如一下情况就无法回收object objA = new object ();object objB = new object ();objA.= objB;obj原创 2021-05-23 20:49:06 · 119 阅读 · 0 评论