解决jenkins中通过execute shell启动的进程会被杀死的问题

在jenkins中配置自动更新部署项目时,如果采取用execute shell启动/关闭tomcat,会发现可以进行关闭tomcat,但是无法启动tomcat,虽然构建会显示执行成功,但是查看进程,tomcat是没有启动的。这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程
阅读全文

redis批量删除指定前缀数据

有时候需要批量删除 redis 里指定前缀的数据,但 redis 只提供了 del 去删除单条数据,不过redis还提供了 keys 命令,结合这两个命令可以试想批量删除的目的有时候需要批量删除制定前缀的数据,但 redis 只提供了 del 去删除单条数据,不过 redis 还提供了 keys 命令,keys 命令可以查找所有符合给定模式 pattern 的 key,结合这两个命令就可以实现批量删除的目的
阅读全文

计算机科学速成课

《Crash Course》是连载于 YouTube 网站,包括生物学、心理学、经济学、世界史等多种学科的免费课程。计算机科学速成课是网友结果翻译的计算机视频
阅读全文

java泛型实例化

java的泛型怎样生成实例对象呢?按照以往的经验,我们很容易这样实现: public static <T> T create(T t) { t = new T(); return t; } 此时,由于T的具体类型我们无法获得,所以new T()是无法通过编译的。换一种思路,我们不妨使用反射机制,通过T的Class对象的newInstance()方法来获取它的实例,生成T对象的代码如下所示: public static <T> T create(Class<T> clazz) { T t = null; try { t = clazz.newInstance(); } catch (Exception ex) { ex.printStackTrace(); } return t; }
阅读全文

JAVA自学之路 四: 要事为先

马士兵的自学之路四:要事为先,写得挺好的,摘自:https://blog.csdn.net/piaoxuan1987/article/details/75197049 对待人生的任何事情都要:抓大放小,要事为先
阅读全文

Springboot通过spring-boot-devtools实现热部署

springboot可以通过spring-boot-devtools这个模块实现热部署。原理是在发现代码有更改之后,重新启动应用,但是速度很快。其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间
阅读全文

《大学》 第一章

大学之道,在明明德,在亲民,在止于至善。 知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。物有本末,事有终始。知所先后,则近道矣
阅读全文

通俗解释ConcurrentHashMap

相信每个JAVA程序员都了解HashMap,最大的问题是线程不安全,因为方法中不涉及到同步,也正因为如此,HashMap的效率非常高,在不涉及线程安全的程序中广泛被应用。然而当涉及到多线程作业时,就会出现一些问题。为了解决这些问题JAVA提供了Hashtable,这是一种整体加锁的数据结构,然而效率不敢恭维。这时候就有了ConcurrentHashMap
阅读全文
^