自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

原创 并发(6)死锁

一个对象可以有synchronized方法或者其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问该对象,所以就会出现一种情况,A阻塞等待B,B阻塞等待C...Z阻塞等待A。五位哲学家,五双筷子,有时候思考,有时候就餐,就餐时需要两双筷子,当一个哲学家拿起两双筷子就餐时,另外一个人也需要就餐就需要等待筷子被放下。(4)必须有循环等待,一个任务等待其他任务所持有的的资源,后面的任务依赖这个任务的资源,最后的任务又依赖第一个任务持有的资源,使大家都被锁住。任务使用的资源至少有一个是不能共享的。

2022-10-04 21:29:01 219 1

原创 并发(5)线程之间的协作

多个任务之间运行,除了资源互斥之外,还需要一起协作去解决某个问题。当任务协作时,关键问题是这些任务之间的握手。为了实现这种握手,我们使用了相同的基础特性:互斥。在互斥之上,我们为任务添加一种途径,使其自身挂起,直至某些外部条件发生变化。

2022-09-25 19:15:36 264

原创 并发(4)终结任务

Java中如何终结线程任务以及检查中断。

2022-09-21 22:27:30 289

原创 并发(3)共享受限资源

共享受限资源

2022-09-09 09:16:54 252

原创 并发(2)基本的线程机制

由于线程的本质特性,异常可能逃出任务的run()方法,直到main()方法中。解决的方法是先建立一个实现Thread.UncaughtExceptionHandler的类MyHandler,在创建完任务后Thread t = new Thread(),将其附着在线程上,t.setUncaughtExceptionHandler(new MyHandler())。Future.get()是获取里面的结果,get()方法具有设置超时时间的机制,不设置则会一直等Future完成,即线程执行完后。......

2022-08-28 16:20:34 173

原创 并发(1)并发的多面性

并发解决的问题大体上可以分为速度、设计可管理性两种。

2022-08-22 07:41:55 85

原创 ES查询报错:Too many dynamic script compilations within, max: [75/5m]解决方法

报错:Too many dynamic script compilations within, max: [75/5m]出现这个问题是在ES的查询语句里面使用了script脚本,而且当前查询的次数超过了阈值。设置此阈值是ES的自我保护机制,script脚本会更消耗内存,如果无限制的大量使用,会导致ES内存溢出。解决该报错的方法,治标方法:修改ES配置,将限制放大。此方法可暂时解决问题,但是对ES的风险也在累积。治本方法:script脚本使用参数的方式。一般script脚本

2022-04-17 22:34:56 3033

原创 idea上使用git--如何操作git项目

git是一个版本管理工具,需要客户端和server端配合交互使用。git客户端就是从git官网下载的git-version.ext安装文件,server端则需要特殊的架设。一般大公司会自己架设一套git服务端程序;如果是个人,可以使用已有的git平台,比如项目 · 探索 · GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabhttps://gitcode.net/exploreGitee - 基于 Git 的代码托管和研发协作平台https://

2022-04-09 10:16:41 1662

原创 shell alias命令,给命令设置别名

mac本的终端兼容Linux的命令,可以将一组命令集起个别名,方便操作。用法alias 别名='命令'举例一个目录下有多个git项目,想一次拉取所有的项目的最新变更目录地址为/etc/usr/projectsalias allpull="find /etc/usr/projects -maxdepth 3 -name .git -type d | rev | cut -c 6- | rev | xargs -t -I {} git -C {} pull "之后输入:allpu.

2022-03-30 14:45:08 1792

原创 mysql相关文章总结

wen11下安装MySQL5.5版本最后一步卡死怎么办?(131条消息) Win11安装mysql5.5安装最后一步停住卡死未响应的解决方法_SJZYLC的博客-CSDN博客

2022-03-29 21:35:27 583

转载 Win11安装mysql5.5安装最后一步停住卡死未响应的解决方法

1、首先我们先卸载mysql,并删除C:ProgramData目录下的mysql文件夹,然后将电脑重启,重启之后进到系统桌面之后,关闭防火墙,同时退出杀毒软件。2、安装的时候,不要勾选“launch the Mysql instance configuration wizard”选项。Win10安装mysql5.5安装最后一步停住卡死未响应的解决方法打开安装目录\MySQL\MySQL Server 5.5\bin找到MySQLInstanceConfig.exe,右键单击属性-兼容性-勾选

2022-03-29 21:33:20 2696 2

原创 Java异常信息中只打印NullPointerException

现象:程序日志中大量打印异常,但是只有:java.lang.NullPointerException没有更详细的信息。原因:jvm进行了优化,在第一次发生异常时,会打印完整的堆栈信息,此时方便查询异常发生的位置;当该异常经常发生时,将不再打印堆栈跟踪,已实现更好地性能并且不使相同的堆栈跟踪淹没日志。如果想要全部打印异常,则需要配置jvm参数:-XX:-OmitStackTraceInFastThrow参考:NullPointerException in Java wi

2022-03-27 16:58:46 1803

原创 【汇总】文章汇总

目录jdk的安装中间件ES相关jdk的安装JDK的安装及配置_SJZYLC的博客-CSDN博客中间件及工具ES相关Elasticsearch基础知识_SJZYLC的博客-CSDN博客ES索引的操作_SJZYLC的博客-CSDN博客fastjsonfastjson重复引用问题及解决办法_SJZYLC的博客-CSDN博客Microsoft officeExcelExcel的vlookup命令记录_SJZYLC的博客-CSDN博客Jav...

2022-03-27 16:37:51 2407

转载 apache poi解析Excel-检测到Zip Bomb解决方案

异常信息:Caused by: com.alibaba.excel.exception.ExcelAnalysisException: java.io.IOException: Zip bomb detected! The file would exceed the max. ratio of compressed file size to the size of the expanded data.This may indicate that the file is used to inflate

2022-03-27 16:21:10 2634

原创 JDK的安装及配置

Linux系统在Oracle官网下载二进制安装包,例如jdk-8uversion-linux-x64.tar.gz。 进入JDK安装包所在目录。 执行以下命令解压安装包:tar zxvf jdk-8uversion-linux-x64.tar.gz按以下方式配置环境变量。执行以下命令打开配置文件。vim ~/.bashrc在配置文件中添加以下内容。JAVA_HOME=/Java安装路径CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_H

2022-03-16 07:39:46 611

原创 Elasticsearch基础知识

理解Elasticsearch搜索的原理,是建立反向索引,又叫倒排索引,是根据文章内容中的关键字建立索引,与文章的标题进行对应。比如,古诗索引,让你想与“月光”相关的古诗有哪些,不容易想到。因为我们建立的索引是正向索引,先古诗名字、朝代、作者、古诗内容,但是《静夜思》中“床前明月光”就有“月光”,我们可以将“月光”和“床前明月光”建立索引,但是这首诗中可建立索引的太多了,“故乡”对应“低头思故乡”,我们记不过来,那么可以通过将“月光”、“故乡”跟《静夜思》进行对应,当我们想到了《静夜思》,后面的就都有了

2022-02-10 08:54:44 481

原创 ES索引的操作

ES索引的操作无非是增删改查。索引创建的一些注意事项:ES中的mapping只能新增字段,不能修改,如果需要修改只能删除索引再重建,数据就全没了;索引名字不能有大写字母,不要有特殊符号,支持小写字母,加下划线等;索引中的字段不能有名字相同、类型不同的;一个索引下最好只有一个type,es6已经强制只能有一个type; ......

2022-02-09 22:05:33 1896

原创 fastjson重复引用问题及解决办法

fastjson在进行序列化的时候,如果属性是同一个引用,会进行压缩,通过一些语法引用其他的json块,下面举例说明。Product类是最外层的类,BaseInfo和BaseInfoChild是Product类的两个属性的类型,其中BaseInfoChild是BaseInfo的子类。public class BaseInfo { private Long id; private String name; public Long getId() { retu

2021-12-30 21:53:55 2503 1

原创 Excel的vlookup命令记录

vlookup命令用于两个Sheet之间的数据匹配,匹配上后可以显示其他字段。备注常规用法文章:VLOOKUP 函数常用方法合集=====正常情况下,我们会选中一个目标数据区域,在单个单元格中计算出目标值后,鼠标下拉,后面所有的单元格都这样处理。问题是,下拉的时候,目标区域也会+1,导致数据计算不准。解决办法就是在目标区域的行列添加$符号,用来固定目标区域。...

2021-12-29 09:23:47 199

转载 Mac 下 idea 在同一个窗口下打开多个项目

先上效果图多个项目在同一个窗口中打开如上图,多个项目在同一个窗口中打开,通过 tab 进行切换,并且项目之间打开的文件均相互隔离如何实现?其实很简单,mac 下设置一下即可mac 设置转自:Mac 下 idea 在同一个窗口下打开多个项目 - feshfans - 博客园...

2021-12-09 23:15:04 3597 2

原创 mac上安装wget及ag

mac使用技巧记录。事情的起源是要安装ag,网上找的一段脚本,里面要下载github代码,需要安装wget,从gnu上下载的压缩包,编译安装总是失败,网上查到可以只用brew安装,但是又没有brew。安装brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装wgetbrew install wget安装ag(the silver

2021-09-18 21:28:01 480

原创 电脑小工具

1 开发工具 SourceTree Git可视化工具,提升效率 mac&win 免费,但需要注册账号 Sourcetree | Free Git GUI for Mac and Windows 2 sublime text 文本编辑器,列模式编辑,功能很强大 mac&win 免费   3 docker 桌面端 部署服务非常方便 mac&win 免费   4 SQL PRO

2021-09-18 21:19:11 132

原创 Spock单元测试框架(1)

Spock 是用于 Java 和 Groovy 应用程序的测试和规范框架。 使它从人群中脱颖而出的是其美丽且极具表现力的规范语言。 由于其 JUnit 运行器,Spock 与大多数 IDE、构建工具和持续集成服务器兼容。 Spock 的灵感来自 JUnit、jMock、RSpec、Groovy、Scala、Vulcans 和其他迷人的生命形式。...

2021-07-29 21:47:27 141

原创 idea占用C盘空间太大解决

Idea占用C盘空间超过4G,主要是Idea的一些配置,一般位置在c://users/用户名/.IntelliJIdea版本号。网上找了些资料,思路都是一样的,就是配置细节,大家还是按照各自的逻辑进行配置。我这是将文件转移到了D:/data下面:D:\data\.IntelliJIdea2018.3修改idea.properties,路径:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.5\binylc.idea.data.path=D:/

2021-07-04 11:09:33 2440

原创 Java中的多线程

本文主要是个人对java多线程的了解。首先要清楚使用多线程的原因背景。目前的计算机都是多核处理,具有并行计算的能力,这为多线程提供了技术保障。在我们的程序处理中,一些

2021-05-29 15:48:08 104

原创 windows生态小工具

1、spacesniffer查看磁盘空间都被谁占用了,占用了多少。在清理系统盘时非常方便。2、Ditto可以保存粘贴板里面的内容,当你在多个内容之间复制时,可以方便找到复制记录,快速粘贴,提升效率。...

2021-04-11 15:17:47 118

原创 jvm监控

jvm监控的思路:通过定时拉取jvm的信息,然后收集起来,图表展示数据。jvm指标的获取:jvm指标获取 获取线程数 ManagementFactory.getThreadMXBean().getThreadCount() 非堆内存使用 ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage().getUsed() 非堆内存初始化 ..

2021-02-08 15:52:44 224

原创 BigDecimal使用过程中的问题记录

使用不当记录,不涉及原理性的分析。使用BigDecimal进行小数乘除运算,出来的结果不及预期。public static void test(){ BigDecimal oneHundred = new BigDecimal(100); BigDecimal percent = BigDecimal.valueOf(15.00); BigDecimal num1 = new BigDecimal(36.90).setScale(2, BigDeci

2021-02-06 07:39:54 247 2

原创 jdk8的parallemStream与ArrayList

jdk8中增加很多新的特性,parallemStream就是其中一个。parallemStream是流式并行处理,而ArrayList是线程不安全的,他俩在一起免不了出问题。主要有两种问题:1、ArrayList中的数据不准2、数组越界异常java.lang.ArrayIndexOutOfBoundsException示例:todo原因:todo解决:1、不用并行流;2、但是你非想要并行流提升效率,那就别用ArrayList,换成一个线程安全的List,如Cop.

2020-12-29 10:25:23 247

原创 动态修改ThreadPoolExecutor线程池的参数大小

ThreadPoolExecutor作为java经济适用的线程池,在程序中应用很广。实际上在使用过程中会遇到一个问题,就是怎么设置它的线程数指标,一般是CPU*2,具体程序中执行起来不合适怎么调整?每次调整新上次线代价有点大,我们可以通过spring管理线程池的bean,那么里面的线程数都是通过spring配置进去的。可以通过后台设置,将属性值变更,然后通过bean实例的set方法更改线程数。方法有:setCorePoolSize、setMaximumPoolSize参考:htt..

2020-12-03 23:31:50 1059

原创 集成mybatis打印sql

目录springbootlogbackymlspringbootlogbackymllogback没有独立的日志器,使用时需要与SLF4J一起使用。所以使用slf4j的方式。添加配置:log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl在logback-spring.xml中添加日志器:<!--输出mapper层sql语句,这里name需根据自己项目的mapper包路径来配置--><!-.

2020-12-03 21:33:20 228

原创 jvm一点总结

不同的GCYoungGc是针对新生代的;MajorGC是针对老年代的,但是只有CMS才会触发MajorGC;FullGC是针对全JVM的。新生代和老年代的比例,默认是1:2,就是新生代占三分之一,老年代占三分之二。该值可以通过 -XX:NewRatio来指定。新生代中,Edem:from:to = 8:1:1.jstat命令S0:幸存1区当前使用比例 S1:幸存2区当前使用比例 E:伊甸园区使用比例 O:老年代使用比例 M:元数据区使用比例 CCS:压缩使用比例 ..

2020-11-25 00:32:31 144

原创 BeanPostProcessor及使用场景

一、BeanPostProcessor在bean实例化前后可进行的操作。可以通过自定义的bean继承该类,通过注解或xml配置bean,这样在bean被初始化的时候可以调用。二、使用场景1、处理自定义注解。bean可以添加我们自定义的注解,自定义的注解处理方式在该类中实现,如通过注解识别一组或几组bean,在后续的业务处理中根据组bean进行逻辑。2、打印日志,将每个bean的初始化情况打印出来;打印初始化时间等。...

2020-10-25 20:49:42 4688

原创 2020-10-10

增量很重要,因为吹牛逼的人都升上去了,那些踏实苦干的人心里肯定不爽。

2020-10-10 23:25:22 1612

原创 jdk7中新增的文件操作Files

读取文件很繁琐,需要用到输入流,自从jdk7中新增了Files类后,很多操作都很简单。读取一个文件的内容: try { byte[] bytes = Files.readAllBytes(Paths.get(new File("F://test.txt").toURI())); String content = new String(bytes); System.out.println(content);

2020-10-10 23:24:09 303

原创 tomcat作为图片服务器

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> ...

2020-09-20 21:41:40 114

原创 Intellij IDEA运行报Command line is too long解法

在Shoten Command Line处选择第三个即可。

2020-06-28 20:57:19 132

原创 【零基础编写计算器窗体程序】20200422逻辑判断与循环

【零基础编写计算器窗体程序】20200422逻辑判断与循环 逻辑判断 程序执行过程会有不同的情况,会根据分支判断结果进入不同的代码块。分支判断主要是if...else...语句举个例子:int num1 = 10;int num2 = 32;if(num1>num2){ System.out.println("num1比较大");}else{...

2020-04-22 21:05:00 385

原创 【零基础编写计算器窗体程序】20200422常用类型及基本运算

20200422常用类型及基本运算 HelloWorld程序解析 public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); }}这是一个Java类,public是类可被访问范围的修饰符,public表示此类可被...

2020-04-22 20:44:47 242

原创 【零基础编写计算器窗体程序】安装配置JDK,并且第一个java程序

安装配置JDK,并且第一个java程序JDK是java运行环境和开发工具,要想开发和运行java程序,第一步要先安装JDK。 下载JDK 搜索引擎(百度)搜索“java”关键字,在展示的结果中,找到java官网下载地址注意:oracle是java的官方开发公司,从oracle站点下载的java是最正版的。我这里打开的地址:https://www.oracle.com/ja...

2020-04-19 15:36:22 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除