Java
文章平均质量分 75
strive_or_die
谦虚学习,好好生活。
展开
-
Linux监控SpringBoot的Jar方式运行的进程并且重启
前言因为写了个SpringBoot的程序,以Jar方式运行,次用了内嵌Tomcat作为容器;在程序启动后,如果程序挂了,那服务就会出现问题,所以需要增加一个监控进程存活并且可以进行重新启动程序的脚本。程序启动脚本(start.sh)server.jar的启动脚本,可以用在其他也是jar启动的程序里,需要记得替换对应的jar名字和一些路径,下列是start.sh脚本的内容。#!/bin/bashsource /etc/profile#指定要运行的jar的home目录export JAR_HOM原创 2021-05-29 12:26:22 · 964 阅读 · 0 评论 -
Get和Post各种编码方式和获取参数的问题
Get和Post各种编码方式和获取参数的问题【抓包分析】 做后端开发,会跟各种请求打交道,Get或者Post甚至其他,而就Get和Post不同的编码方式和content-type提交也有许多的不同,在开发过程中,经常遇到参数接收不到的问题,无论是原生servlet还是springboot框架,都有到过这种问题。这篇文中就这些问题,通过分析,希望能让自己能更进一步的了解HTTP请求和参数接收相关...原创 2019-10-23 22:13:53 · 2145 阅读 · 0 评论 -
使用http-server代理axios请求
使用http-server代理axios请求 开始想简单的学习一下axios相关的使用和API,写了一个简单的html通过引入CDN方式的axios的js,然后通过axios向后端发起请求,出现了跨域,所以想到使用http-server来处理这种前端和后端分离时跨域的问题。http-server简介 http-server是一个简单的零配置命令行http服务器。它足够强大,足以用于生产用...原创 2019-10-20 12:28:33 · 3898 阅读 · 0 评论 -
设计模式之职责链模式
设计模式之职责链模式 职责链模式主要是为了解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求,将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。职责链模式结构图 Handler(抽象处理者),ConcreteHandler(具体处理者)和Client(客户类)。Han...原创 2019-09-28 12:19:31 · 388 阅读 · 0 评论 -
sfl4j日志框架的加载导致冲突问题的原因和解决方式
日志框架的加载导致冲突问题的原因 经常使用slf4j-api接口包时引入log4j包,总是出现下列的错误,网上查找了一圈,都是说实现包冲突,几乎都是官网的答案。比较少有分析为什么会报这个错的原因。主要有两大类问题:1.引入了slf4j-api的包,但没有引入它的实现包,2.引入了slf4j-api的包,但是实现类引入了多个。未引入sfl4j-api包的实现包 报错Failed to lo...原创 2019-09-19 22:05:01 · 1201 阅读 · 0 评论 -
Java设计模式之观察者模式
设计模式之观察者模式 观察者模式行为型设计模式,定义了对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并且自动更新。观察者模式也被称作发布-订阅模式。现实中,最简单的例子就是红绿灯,在十字路口的交通信号灯,红灯亮则汽车停,绿灯亮则汽车行。观察者模式结构图 观察这模式包含Subject(目标),ConcreteSubject(具体目标),Observer...原创 2019-09-15 09:39:33 · 586 阅读 · 0 评论 -
Java的线程池是怎么实现复用的?
Java的线程池是怎么实现复用的?Java的线程池,维护了一个线程池,每一个新的任务都会提交到线程池,由线程池进行调度和资源释放,这样的好处:1.通过线程池,可以限制线程创建的数量,当创建许多的任务时,任务需要在线程池中进行排队。2.通过线程池,统一管理任务调度以及异常的策略处理。线程池简单例子import java.util.concurrent.ExecutorService;im...原创 2019-09-08 17:09:21 · 1190 阅读 · 0 评论 -
Log4j日志配置和使用
Log4j概述1 什么是Log4j Log4j 是Apache为Java提供的日志管理工具。为了你快速理解Log4j的作用,我们用下面的代码说明Log4j的作用。 public void login(String userName,String pwd){ if (userName == null || pwd == null){ Sys...原创 2019-08-31 21:59:34 · 1208 阅读 · 0 评论 -
Java设计模式之策略模式
策略模式,完成一项任务,往往有许多种不同的方式,每一种方式称为一个策略,根据环境或者条件的不同选择不同的策略来完成该项任务。策略模式是一种对象行为模式。什么场景下使用策略模式 在某些情况下,解决问题的方案和实现由很多种,往往不止一种,这个时候就可以考虑使用策略模式来实现各种方案,然后在需要切换其他方案时,可以比较容易的切换。策略模式结构图 策略模式包含Context(环境类),St...原创 2019-08-28 20:43:07 · 741 阅读 · 0 评论 -
Java自定义类加载器实现-原理分析
Java自定义类加载文章目录Java自定义类加载为什么要自定义怎么自定义实现自定义类加载器总结 这篇文章主要聊一下如何自定义Java的类加载器,关于Java的类加载机制,可以参考Java的类加载机制双亲委派模型的文章:https://blog.csdn.net/strive_or_die/article/details/98664519为什么要自定义需要将我们的class放到自定义的c...原创 2019-08-15 22:57:44 · 1433 阅读 · 1 评论 -
Java设计模式之单例模式
设计模式之单例模式 单例模式确保某一个类只有一个实例,而且自行实例化并且向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例的特点某个类只能有一个实例它必须自行创建这个实例它必须自行向整个系统提供这个实例单例模式是一种对象创建型模式什么场景下使用单例模式 如果我们的类的初始化的开销非常大,且每一次初始化都是一样,也即是每次实例其实都是状态一致的实例,或者多个...原创 2019-08-05 19:46:58 · 630 阅读 · 0 评论 -
Java设计模式之代理模式
设计模式之代理模式 代理模式,给某一个对象提供一个代理,并且由代理对象控制对原对象的引用。什么场景下使用代理模式 如果某个应用的调用端不想或者不能直接引用一个对象,此时可以采用代理模式。代理模式结构图 代理模式包含Subject(抽象主题角色),Proxy(代理主题角色)和RealSubject(真实主题角色)。静态代理模式示例 假设有一名毕业生,想要找工作,然后通过51j...原创 2019-08-14 21:40:41 · 639 阅读 · 0 评论 -
Java如何快速的模拟出OutOfMemoryError,StackOverflowError
Java如何快速的模拟出OutOfMemoryError,StackOverflowError 之前有一次面试,有个面试官问了,Java怎么样快速的模拟出OutOfMemoryError的错误,侧面的考察了知不知道JVM的内存模型。。在Java中,如果有需求,想要模拟OutOfMemoryError错误,可以直接通过调节JVM的参数即可。模拟OutOfMemory 通过调节JVM的内存的...原创 2019-08-19 22:38:48 · 1405 阅读 · 0 评论 -
Java设计模式之简单工厂模式
设计模式之简单工厂模式 简单工厂模式(Simple Factory pattern)也被称为静态工厂方法,是一种创建型模式,该模式中,可以根据参数的不同返回不同类的实例。什么场景下使用简单工厂模式 简单工厂模式适用于,工厂类负责创建的对象比较少,调用者只需要传递参数,并且不关心对象的创建,则可以使用简单工厂模式,其实即使两点:1.调用者不关心对象的创建(最重要),2.创建的对象不多,如果...原创 2019-08-07 20:01:32 · 676 阅读 · 0 评论 -
Java设计模式之适配器模式
设计模式之适配器模式 适配器模式,将一个类的接口转换成用户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它可以使得原本不兼容的事物能够协同工作,而无需修改现有事物的内部结构。什么场景下使用适配器模式 使用该模式的前提是不能或者不想修改原来的适配者类接口和目标对象类接口,这样就可以使用已有的实现来实现所需的接口,否则,如果都能够修改或者想要修改原有的实现,那完...原创 2019-08-18 23:08:33 · 653 阅读 · 0 评论 -
代码整洁之道的阅读笔记
代码整洁之道的阅读笔记异常:使用异常代替返回错误码 返回错误码的方式违反了指令与询问分隔的规则,它容易导致了更深层次的嵌套结构。当返回错误码时就要求调用者立即处理错误。此外,使用异常替代的话,可以使得错误代码的处理能从主代码路径中分离出来,得到简化。抽离Try/Catch代码块 Try/Catch代码块丑陋且搞乱了代码结构,最好的处理是把try和catch代码块的主体部分抽离...原创 2019-08-12 21:52:39 · 614 阅读 · 0 评论 -
Java的类加载机制双亲委派模型
Java的类加载机制双亲委派模型文章目录Java的类加载机制双亲委派模型Java的类加载器启动类加载器(Bootstrap ClassLoader)拓展类加载器(Extension ClassLoader)应用程序加载器(Application ClassLoader)自定义加载器(User ClassLoader)Java类加载的机制类加载器的源码ClassLoader#loadClass的基...原创 2019-08-06 21:38:52 · 891 阅读 · 0 评论 -
使用keytool工具产生带根CA和二级CA的用户证书
使用keytool工具产生带根CA和二级CA的用户证书1 生成根CA1.1 生成根CA证书根CA实际是一张自签CA,自签CA的使用者和颁发者都是它自己。使用下面的命令生成根证书,如果没有指定keystore则会使用默认在用户Home目录下的.keystore秘钥库(如果没有则会创建),输入秘钥库的密码,填写根证书的信息,最后填写根证书秘钥对的密码。keytool -genkeypair -...原创 2019-08-03 21:03:03 · 2240 阅读 · 0 评论 -
Java的JNI例子
JNI简介 JNI(Java NativeInterface) ,Java本地接口。用Java去调用其他语言编写的程序,比如C或C++。JNI作为二者连接的桥梁。Java的跨平台本质主要是由于JVM不是跨平台的,JNI本身也不是跨平台的,即JNI是与特定平台相关的。JNI的实例 主要实现了两个小实例,一个是无参数无返回值的Native方法,一个是带参数有返回值的Native原创 2018-01-23 17:22:36 · 3247 阅读 · 0 评论