自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 Git命令使用

git命令使用

2024-03-27 19:43:17 233

原创 Linux查找日志常用命令

进入文件后使用/字符(从光标出向尾)或?字符(从光标出向头)搜索 + 回车键。找到内容后按n跳到下一个,按h、j、k、l可以移动光标。-C:表示找到目标时,同时显示目标上下20行内容。用法:grep -C 20 “搜索字符” 文件名。按回车键增加空白行,按Ctrl + C 结束。grep用法可以很多种,列举常用的。tail命令常使用选项-f。如:vi sys.log。

2024-01-21 11:09:08 1057

原创 判断当前时间是否在给定的时间区间内

【代码】判断当前时间是否在给定的时间区间内。

2024-01-05 23:11:13 453

原创 记录SpringCloud使用Zookeeper做服务中心遇到的问题

2、在windows的CMD使用Telnet命令检查端口是否通,不通则检查linux系统防火墙是否关闭(我的原因就是未关闭防火墙)1、使用的zookeeper是安装在本机的虚拟机中,网络调通(通过ping命令测网络)查看:systemctl status firewalld.service。关闭:systemctl stop firewalld.service。2、启动spring程序,报错看不到services。1、检查spring程序写的ip和端口。报错信息就不打出来了。

2023-09-24 22:21:31 292

原创 Idea使用tomcat插件运行Skipping non-war project问题

在pom.xml文件中,tomcat-maven的插件信息中,加入configuration节点,在该节点下加入ignorePackaging节点,值设置为true,再次启动就可以了。使用idea的tomcat-maven插件运行web app时出现:Skipping non-war。

2023-05-10 18:02:10 280

原创 Struts2表单提交404问题记录

3月29日遇到表单提交,报404错误问题,各种struts和action配置文件检查了好久都没发现问题,后来发现是form表单写的action多了/。成功调用action里的方法。

2023-03-29 11:16:44 142

原创 Oracle的CLOB类型字段在某些工具无法显示值问题记录

最近在做项目时,发现个问题:有个表的一个字段类型是CLOB,请人去帮忙去数据库查找这个字段的值(用的什么工具,不知道),发现这个字段值是空的。但是程序中一直有用这个字段,而且请业务在前端页面查看,前端显示是有值的。直到某天,再去数据库查这个字段值,因为人太多换了一台电脑,也换了一个工具,用的是plsql,查出来值了。哎,困扰许久的问题终于解了。

2023-02-25 14:56:19 927

原创 Linux系统crontab定时任务的坑

场景:有时候服务器的启停工作,像weblogic,需要用crontab定时去做。坑:如果服务器的拥有者不是root,是别的用户;crontab可能是root用户;总之两个用户不一样的话,需要注意它们的环境变量,特别是编码格式。此次踩坑就是没有注意到编码格式改变了,导致中文乱码。

2022-09-28 06:48:39 469

原创 eclipse调整Java编译器版本记录

修改eclipse全局Java编译器版本Windows } preference } Java } Compiler针对单个项目修改Java编译器版本选中项目,右键选择properties } Java Compiler第二点,需要看与项目下的.settings文件夹下的org.eclipse.wst.common.project.facet.core.xml文件配置的Java version是否一致。...

2022-07-08 20:30:13 312

原创 认识ArrayList + 源码解析

ArrayList的特性<1>. 底层基于数组实现<2>. 容器内元素有序可重复,可放null<3>. 线程不安全大概这几点,后续想到再追加。如何认识ArrayList本文章将自己按照源码一步一步实现自定义的ArrayList,并加以相应的中文描述和见解。按照源码创建自定义的ArrayListDIY ArrayList“全”代码题目的“全”是代表目前写到的所有代码。重复一次,代码是按Java源码写的(除FIXME标签的代码)。解析这个相当于解析源码,一

2022-05-26 16:06:41 121

原创 学习SpringBoot笔记以及错误记录

学习SpringBoot遇到的问题或错误

2022-04-25 13:41:22 4109 2

原创 telnet认识以及使用

TelnetTelnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。...

2022-03-02 19:41:10 228

原创 记一次http404的排除过程

Http404

2022-02-22 11:44:57 246

原创 详聊ThreadPoolExecutor构造器的参数corePoolSize,queueCapacity,maximumPoolSize...

ThreadPoolExecutor构造方法参数解析

2022-02-11 14:36:13 1693

原创 jedis-2.9.0.jar下载

jedis-2.9.0.jar下载关注下方微信公众号并回复jedis获取下载链接。

2021-08-14 10:00:11 821

原创 fastjson-1.2.49.jar下载

fastjson-1.2.49.jar下载关注下方微信公众号并回复fastjson获取下载链接。

2021-08-14 09:04:31 466

原创 Idea打包jar,MANIFEST.MF文件没有Main-Class属性 & xxx.jar中没有主清单属性

Idea打包jar下图中圈出来的路径不能是默认的,需要放在项目根路径下,修改为:D:\IntelliJIdea\project\MyFtpServer\META-INF\MANIFEST.MF。修改后打包jar,MANIFEST.MF文件就会有Main-Class属性。

2021-08-12 17:47:17 5333 2

原创 Netty权威指南2.2伪异步IO,Demo代码

TimeServer代码package pseudoasynchronous;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TimeServer { public static void main(String[] args) throws IOException { int port = 8081; if (args != null &&

2021-08-06 20:09:12 111

原创 Netty权威指南2.1BIO通信Demo代码

写在前面所属章节链接第二章2.1BIO通信aaaTimeServer代码import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TimeServer { public static void main(String[] args) throws IOException { int port = 8081; if (args

2021-08-06 19:39:51 102

原创 Junit简单使用记录

导入Junit依赖好像是我的STS之前有下载Junit插件,所以我编写一个方法,在方法上加上@Test注解就会提示我去引用依赖。如下:还有一个方法就是直接就是右键项目–>Build Path–>Configure Build Path…下去配置,如下:Junit版本自行选择,然后有下一步就下一步有确定就确定。这两个引用依赖的方法的前提都是要有Junit,没有的话自行百度下载,因为我也不懂。简单测试import org.junit.Assert;import org.junit.

2021-08-05 15:59:01 108

原创 InputStream和String互转记录

InputStream转String public static String inputStreamToString(InputStream is) { byte[] bytes = new byte[1024 * 4]; try { is.read(bytes); } catch (IOException e) { log.error(e); } re

2021-07-22 11:27:18 53

原创 使用WinSW注册Java程序为Windows服务

1. 打包可运行的jar打包可运行的jar(不可运行的jar会报错:没有主清单属性)如图:默认选项,最后点击确定。2. 下载WinSW下载链接:https://github.com/winsw/winsw/releases下载下图中红色圈出的那两个。下载完将Java程序的jar和下载的这两个放在同一个文件夹下,需要将下载的两个文件改名。3. 其他操作参考https://blog.csdn.net/qq_28566071/article/details/80882503...

2021-07-20 15:52:45 417

原创 删除文件发现被占用,如何找到占用的程序记录

1. 目的我们经常会删除一下文件,但并不是每次都顺利删除掉,有时候会发现因为有别的程序占用而无法删除,这个时候应该怎么找到占用的程序呢?这篇文章会给出答案。记录一下以便日后的参考或他人的借鉴。2. 过程模拟我们来模拟一下过程:文件位置如下图:打开Java运行时数据区域.xlsx模拟占用。删除Java运行时数据区域.xlsx无法删除,报错如下:接下来就是要找到占用的程序并解除了,事实上这个占用Excel的程序还是很容易找到的,因为它会在任务栏出现。但是对于一些不会在任务栏出现的程

2021-07-20 11:45:18 825

原创 Java读取文件生成properties,包括类下文件和任意路径文件

1. 目的记录一下读取文件生成properties,这个经常有用到,以供他人和自己后续参考。2. 相对路径和绝对路径先来说一下相对路径和绝对路径的区别,我的认知:相对路径:不包括盘符(C:),如c:\test\test.properties绝对路径:包括盘符(C:),如test.properties最主要的差别是是否包括盘符,后续会通过这一特点做相对或绝对路径判断。3. 代码import部分其中io.netty这个import不用理会,只是用做写log而已。import java.i

2021-07-20 09:53:39 361

原创 Java获取当前项目的路径记录

方式1 String projectPath = System.getProperty("user.dir"); System.out.println("projectPath==" + projectPath);方式2try { String projectPath = new File("").getCanonicalPath(); System.out.println("projectPath==" + projectPath);

2021-07-20 09:26:29 190

原创 Java volatile关键字的作用

1. 目的用Java程式测试一下volatile关键字的作用。2. 代码package volatile_;import java.io.IOException;public class Volatile { private static /*volatile*/ boolean running = true; private static void test() { System.out.println("test start");

2021-07-15 11:38:41 152

原创 Java运行时数据区

1. Java运行时数据区2. 解析程序计数器节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖这个计数器来完成。由于jvm的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程中的指令。因此未来线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们成这类内存区域为“线程私有”的内存。如果线程正在执行的是一个Java方法,这个计数器记录的则是正在执行的虚拟机字

2021-07-15 11:00:35 50

原创 Java程序朗读文字的实现,jacob.jar

目的使用Java程序实现朗读文字。依赖jacob.jar(我的是\jacob-1.18)这个可以用Maven去下载,在dependencies节点下增加如下内容:<!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音 --> <dependency> <groupId>com.hynnet</groupId> <

2021-07-14 10:06:30 1015

原创 dump文件与内存泄漏分析记录

1. dump文件命令格式:jmap -dump:format=b,file=${文件路径} 进程IDjmap -dump:format=b,file=E:/OOM/dump.hprof 11076(指定生成文件路径)jmap -dump:format=b,file=dump.hprof 18516(未指定生成文件路径,在执行该命令的路径下生成文件)随便运行cmd,执行命令就可以dump文件了。如何知道PID可以通过JConsole,或者CMD命令tasklist,这个不好找。如下图:

2021-07-09 17:08:12 1361

原创 探讨ThreadLocal使用完remove与否的差别(内存泄漏)

1. 问题这次我们就是想要探讨一下ThreadLocal使用完不remove数据和remove数据的差别是什么?是否会存在内存泄漏?那我们应该怎样制造怎样测试的环境呢?我是这样制造测试环境的:使用Tomcat服务,但是Tomcat的nio线程限制在1个,我的是Spring Boot配置起来很简单只需要在application.properties增加一行,外带的Tomcat可以自行百度一下。如下:server.tomcat.threads.max=1我们如何证明影响?我们后端配置两个服务

2021-07-09 14:17:01 1461

原创 模拟高并发下Tomcat线程不安全现场记录<二>

1. 目的继上一次发现的线程安全问题后,这次来看看如何解决这个问题。2. 使用ThreadLocal代码:package thread;import java.util.ArrayList;import java.util.List;public class ThreadSecurity {private static ThreadLocal<List<byte[]>> byteListThreadLocal = new ThreadLocal<>(

2021-07-09 10:32:21 241

原创 模拟高并发下Tomcat线程不安全现场记录<一>

1. 所需工具集成开发工具(我的是STS)Tomcat,用来模拟真实请求响应服务(我的是Spring Boot内置有Tomcat)2. 代码ThreadInsecurity类,主要用来提供服务,这里的服务也很简单。全局变量的累加,每请求一次就加3000;100以内的每次增加都会休眠100ms(为什么要休眠?为了模拟耗时的写入操作,以达到线程不安全现象。这是符合现实情况的)。package thread;import java.util.ArrayList;import java.ut

2021-07-09 09:58:36 290

原创 Java程序静态全局变量与内存泄漏的关系与分析<二>

1. 测试和分析第二种类型(先声明,用时再new创建)继上一篇文章,测试完第一种类型后。2. 代码同样先看代码:package leakmemory;import java.util.ArrayList;import java.util.List;public class LeakMemory { private static List<byte[]> byteList; public static String addByte() {

2021-07-08 14:54:38 254

原创 Java程序静态全局变量与内存泄漏的关系与分析<一>

1. 所需工具说明要做这样的测试与分析我们需要以下这些工具:集成开发工具(我用的是STS)jconsole.exe(用来观察堆内存的变化,路径是JDK安装路径bin下,我的是C:\Program Files\Zulu\zulu-8\bin),用法链接Tomcat(我的是Spring Boot内置有Tomcat),要模拟Tomcat前后端服务2. 任务静态全局变量与内存泄漏的关系与分析。重点考试要考:静态全局变量的生命周期与服务器一致。按定义格式分两种静态全局变量类型:<1>.

2021-07-08 13:50:42 609

原创 jconsole.exe查GC和内存,简单使用记录

jconsole.exejconsole.exe(路径是JDK安装路径bin下,我的是C:\Program Files\Zulu\zulu-8\bin),如下图:使用双击打开(如果不行可能需要管理员权限,右键以管理员权限运行)。打开后如下图:红色圈出,左边是进程名称,右边是PID。双击我们要连接的进程或者选中我们要连接的进程点击右下方连接按钮,点击连接之后如下图:会弹出一个警告框,点击不安全的连接。点击后界面如下:在概览里,左1是堆内存使用量,右1是线程数,左2是类数量,右2是CPU占

2021-07-08 10:55:28 1499

原创 使用CompletableFuture.supplyAsync实现异步操作

如何使用CompletableFuture.supplyAsync实现异步操作(复杂型)实现的代码封装在function中,也有简单的说明,如下: public static void useCompletableFuture_complicated() { // 这个方法时描述一般地使用CompletableFuture实现异步操作,即复杂的使用CompletableFuture实现异步操作 // 假设我们有一个Person名字List

2021-07-07 11:11:24 46648 8

原创 Java多线程的三种实现方式的记录

代码MyThread_thread类是继承Threadpackage thread;public class MyThread_thread extends Thread { private String id; public MyThread_thread(String id) { this.id = id; } public void setId(String id) { this.id = i

2021-07-06 15:57:23 60

原创 SelectNodes(“//item“),包括带名字空间节点的获取

SelectNodes("//item")从任意位置的节点上选择名称为 item 的节点,即整个xml文件的所有名为item的节点。dom4j.jar文章是使用dom4j.jar去解析XML文件,如何下载可以自行百度。代码import部分(包括不限于)import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.XPath;import org.

2021-07-06 15:16:45 394

原创 Windows下Nginx安装与简单使用

Nginx下载下载链接下载Windows版本,我目前是1.12.2解压CMD命令启动在该路径输入cmd并回车,如下图:输入启动命令:start nginx.exe并回车。会有个窗口一闪而过,并不是说启动失败了。通过任务管理器检查是否启动成功。成功启动如下图(为什么会有两个nginx在运行,官网好像有解释,我目前还没有看原因):简单的反向代理使用修改配置文件修改的部分红色圈出。upstream的名字要和proxy_pass后http://名字匹配。server_name就是反向

2021-07-06 14:11:25 85

原创 ThreadLocal使用例子记录

代码package threadlocal;public class ThreadLocalTest { private static ThreadLocal<String> name = new ThreadLocal<>(); public static void remove() { name.remove(); } public static void main(String[] args) {

2021-07-05 15:42:19 132

sonarqube-6.7.5和sonar-scanner下载(Sonar.zip)

sonarqube-6.7.5和sonar-scanner下载

2021-07-07

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

TA关注的人

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