![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 69
嗨嗨的迷子
这个作者很懒,什么都没留下…
展开
-
AQS核心流程解析-共享锁-acquireShared和releaseShared
在之前分析的核心方法都是排他锁,今天开始聊聊共享锁的获取与释放。原创 2022-03-18 10:05:53 · 899 阅读 · 0 评论 -
AQS核心流程解析-cancelAcquire方法
cancelAcquire方法的重要性体现在,在获取锁的方法中,异常处理都需要用到他,那么我们来分析一下这个方法的作用。原创 2022-03-16 10:12:08 · 2978 阅读 · 10 评论 -
AQS核心流程解析-release方法
在分析过acquire方法之后,这次来看看与之对应的release方法。原创 2022-03-15 14:58:13 · 918 阅读 · 0 评论 -
AQS核心流程解析-acquire方法
acquire方法的主要流程解析原创 2022-03-11 14:04:59 · 1289 阅读 · 0 评论 -
JMM(Java内存模型)要点梳理
因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。原创 2022-02-23 17:18:12 · 580 阅读 · 0 评论 -
编译OpenJDK执行get_source.sh时报错Could not determine Mercurial version of /usr/bin/hg
原因:执行hg --version的时候输出了中文;解决方法:将以下行hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial改成:hgversion="`LANGUAGE=en hg --version 2> /dev/null | sed -n -e 's@^Mercurial原创 2021-07-22 16:09:55 · 293 阅读 · 0 评论 -
ThreadRandom正确使用方法
先看代码:package muiltithreads;import java.util.concurrent.ThreadLocalRandom;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.LockSupport;public class DemoThreadRandom { public static final ThreadLocalRandom random = ThreadLoc原创 2021-04-27 15:47:20 · 631 阅读 · 0 评论 -
JSONField注解+继承自由切换JSON的key
JSONField注解+继承自由切换JSON的key通过@JSONField可以指定在toJSONString的时候,key的名称,比如想要变成大写或者小写;但是如果有些地方想toJSONString的时候key大写,有些地方又想小写,那可以采用父子类,通过复写get方法,来实现:package com.thunisoft.xxcx.model;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.annotatio原创 2021-02-02 14:59:26 · 551 阅读 · 1 评论 -
Main线程退出后,其他线程会继续执行么
https://zhuanlan.zhihu.com/p/74643577为操作系统分配资源的单位是进程,就算main线程退出了,进程也还在.资源还在.在进程看来,线程应该都是平级的,没有父子关系.结论:会的原因:JVM会在所有的非守护线程(用户线程)执行完毕后退出;main线程是用户线程;仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程。如果你希望在main线程退出后,所有其他线程也退出.那么你可以把其他线程都设置为守护线程.原创 2020-06-28 15:09:15 · 2936 阅读 · 0 评论 -
FileOutputStream构造流写入文件时覆盖的问题
OutputStream tmpOs = new FileOutputStream("result.xlsx")我想循环的向一个excel中写入数据,需要用到循环,第一次写表头,然后剩下的循环写数据,但是写完表头,从第二次循环开始写数据的时候报错,提示 new XSSFWorkbook(tmpOs)的时候,tmpOs指向的是一个空文件按照预期,循环的第一步就是写表头,这个文件应该不是空的原因:OutputStream tmpOs = new FileOutputStream("result.xls原创 2020-06-28 14:35:34 · 2126 阅读 · 0 评论 -
Spring中生成Bean时默认生成名称策略的坑
问题场景:定义一个类如下:@Componentpublic class MXTable{......}通过ApplicationContext.getBean("mXTable")获取这个Bean对象,但是为NULL,导致调用的时候出现空指针异常。问题原因:在使用注解生成Bean的时候,如果没有指定Bean的名称,如@Componet("mytable"),则Spring会使用默...原创 2020-03-05 15:10:42 · 846 阅读 · 0 评论 -
项目中实体类加lombok注解后,使用fastjson转JSONObject字段名首字母变大写
先来回顾一下场景:项目中定义一个实体类,用于和数据库做对应,这里先贴上实体类的简化定义(只保留一个字段):@Getter@Setter@ToString@NoArgsConstructor@AllArgsConstructor@Builder@ApiModel("申请基本信息表")@Table(name = "db_dzsjdc.t_yw_sqjbxx")public clas...原创 2019-12-18 20:35:47 · 3782 阅读 · 0 评论 -
控制台中运行java类提示"找不到或无法加载主类"错误的原因及解决方案
最近在回顾基础知识的时候,想要用文本编辑器+控制台的方式写java程序,发现习惯了IDE,使用基础命令就遇到一些问题,比如,我在D:\MavenTrainingSpace\hello-world\src\main\java\jar\App.java文件中写了个HelloWorld程序:package jar;/*** Hello world!**/public class App{...原创 2019-05-11 21:36:58 · 8902 阅读 · 1 评论 -
Java项目中引入Groovy类,出现cannot be resolved to a type错误的一种解决思路
背景:项目中使用了Groovy写了一个简单的类,在已有的Java代码中想要import这个类,但是始终报:cannot be resolved to a type解决方案:安装Groovy For Eclipse的插件:如果是maven项目,在pom.xml的要引入新的包: <dependency> <groupId>or...原创 2019-05-06 13:37:42 · 3680 阅读 · 0 评论