- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 AQS核心流程解析-共享锁-acquireShared和releaseShared
在之前分析的核心方法都是排他锁,今天开始聊聊共享锁的获取与释放。
2022-03-18 10:05:53
926
原创 AQS核心流程解析-cancelAcquire方法
cancelAcquire方法的重要性体现在,在获取锁的方法中,异常处理都需要用到他,那么我们来分析一下这个方法的作用。
2022-03-16 10:12:08
3019
10
原创 JMM(Java内存模型)要点梳理
因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。
2022-02-23 17:18:12
595
原创 编译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
308
原创 MySQL8安装登录显示Access Denied
安装过程略过,使用命令启动:sudo service mysql start启动成功,然后连接:> mysql -u root -pEnter password:ERROR 1698 (28000): Access denied for user 'root'@'localhost'输入密码出直接回车表示空密码,但是无法登录;这个时候需要做两件事儿:初始化mysql的数据目录:sudo mysqld --initialize-insecure 完成后默认密码是空的,如果之前已经
2021-05-24 21:47:41
531
转载 WSL2中设置DNS后重启终端又失效的解决方法
转载地址:https://www.xieshasha.love/wsldns.iiMemoryWSL2 用着是挺好的,就是发现了一个问题,郁闷了好久,修改/etc/resolv.conf可以自己设置 dns,但重启 WSL 以后,手动设置的 DNS 就会被重置为默认的,细心看了一下默认的文件以后发现了问题的关键。WSL 自动在启动时自动根据系统的虚拟交换机WSL生成 /etc/resolv.conf文件。如下为默认的/etc/resolv.conf文件的内容# This file was automat
2021-05-01 21:23:39
6297
9
原创 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
649
原创 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
566
1
原创 Main线程退出后,其他线程会继续执行么
https://zhuanlan.zhihu.com/p/74643577为操作系统分配资源的单位是进程,就算main线程退出了,进程也还在.资源还在.在进程看来,线程应该都是平级的,没有父子关系.结论:会的原因:JVM会在所有的非守护线程(用户线程)执行完毕后退出;main线程是用户线程;仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程。如果你希望在main线程退出后,所有其他线程也退出.那么你可以把其他线程都设置为守护线程.
2020-06-28 15:09:15
2992
原创 FileOutputStream构造流写入文件时覆盖的问题
OutputStream tmpOs = new FileOutputStream("result.xlsx")我想循环的向一个excel中写入数据,需要用到循环,第一次写表头,然后剩下的循环写数据,但是写完表头,从第二次循环开始写数据的时候报错,提示 new XSSFWorkbook(tmpOs)的时候,tmpOs指向的是一个空文件按照预期,循环的第一步就是写表头,这个文件应该不是空的原因:OutputStream tmpOs = new FileOutputStream("result.xls
2020-06-28 14:35:34
2144
原创 Spring中生成Bean时默认生成名称策略的坑
问题场景:定义一个类如下:@Componentpublic class MXTable{......}通过ApplicationContext.getBean("mXTable")获取这个Bean对象,但是为NULL,导致调用的时候出现空指针异常。问题原因:在使用注解生成Bean的时候,如果没有指定Bean的名称,如@Componet("mytable"),则Spring会使用默...
2020-03-05 15:10:42
856
原创 项目中实体类加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
3806
原创 WSL控制台下终端命令显示路径太长的解决方案
进入WSL终端,修改~目录下的.bashrc,修改内容如下:然后使用source ~/.bashrc使之生效。
2019-05-21 14:10:33
1753
1
原创 控制台中运行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
8932
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
3711
原创 Linux下使用awk统计进程的个数
背景数据库连接数太多了,想通过ps -ef | grep postgres查看下后台有哪些数据库连接的进程,得到的结果如下:172.23.21.83(63541) con8310305 172.23.21.83(63541) cmd530 idlegpadmin 1057 26372 0 14:51 ? 00:00:00 postgres: port 5432,...
2018-07-11 16:08:59
2511
原创 排查问题A ResourcePool could not acquire和Connections could not be acquired
在部署项目的时候,通过JDBC的日志看到如下错误信息,现在把解决方案总结一下错误提示1:A ResourcePool could not acquire a resource from its primary factory or source.错误提示2:Connections could not be acquired from the underlying database!遇到...
2018-04-04 00:05:07
934
原创 重启Postgres方法及"pg_ctl没有指定数据目录并且没有设置PGDATA环境变量-问题的解决方法"
先找到Postgres的安装目录,如/usr/pgsql-9.6,使用cd /usr/pgsql-9.6在/usr/pgsql-9.6中,切换到postgres用户:su postgres在bash中停止Postgres:bin/pg_ctl stop如果提示停止成功,则再执行:bin/pg_ctl start如果有如下提示:pg_ctl: 没...
2018-04-03 20:36:12
12274
1
原创 SQL优化手札
某个项目中,编写了大量的SQL脚本,在数据库服务器上执行,而数据库中的数据量巨大,SQL执行过程太慢,因此考虑先从SQL脚本上动刀优化。这里总结下一些优化点和依据: sql优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生。 (来自:https://blog.csdn.net/zlggyn/article/deta...
2018-03-28 19:03:51
205
原创 DELETE操作出现:ORA-30036: 无法按 1024 扩展段 (在撤消表空间 'UNDOTBS_1' 中)
在测试过程中需要清空数据库中的几张表,在PL/SQL客户端中使用DELETE语句,然而出现了如下错误: ORA-30036: 无法按 1024 扩展段 (在撤消表空间 'UNDOTBS_1' 中),出现这个错误的原因是DELETE操作会将删除的数据暂存在一个UNDOTBS文件中,便于事务的回滚,然而对于数据量特别大的表,例如百万以上的数据表,DELETE操作产生的临时数据会占满UNDOTBS文件,
2017-08-04 09:28:38
1796
转载 [转载]深入理解组策略一:组策略处理流程
转载自http://alligator.blog.51cto.com/36993/107174概述: 组策略是Win2003操作系统提供的一种重要的更新和配置管理技术,用来批量控制计算机和用户的环境,包括控制应用程序、系统设置和管理模板的一种机制。在AD域环境中,通过组策略可以对计算机和用户组进行高效集中化的管理。组策略是AD域环境最有吸引力的基础架构应用之一,正确高效组策略应用
2017-03-15 10:23:16
1750
翻译 翻译GitHub官方开始文档
在程序员的世界中,HelloWorld堪称历史悠久。它是我们学习一项新技术的敲门砖,那我们就在HelloWorld中开始GitHub征途的第一步吧^_^ GitHub是一个用于项目托管和协作的平台。你不需要再担心丢失硬盘上的数据或者跨平台管理项目,GitHub可以同步你的项目。另外,GitHub还可以提供协同、异步式的工作方式,使软件开发更加高效和团队化。
2015-08-03 14:27:35
827
《The Tangled Web》:“破解Web乱局”324页完整、文字(非扫描)PDF版
2018-03-23
Android下利用min3D引擎实现增强现实的简单例子
2012-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人