java 保证程序安全退出】的更多相关文章

以前在开发时只知道依靠数据库事务来保证程序关闭时数据的完整性. 但有些时候一个业务上要求的原子操作,不一定只包括数据库,比如外部接口或者消息队列.此时数据库事务就无能为力了. 这时我们可以依靠java提供的一个工具方法:java.lang.Runtime.addShutdownHook(Thread hook) addShutdownHook方法可以加入一个钩子,在程序退出时触发该钩子. (退出是指ctrl+c或者kill -15,但如果用kill -9 那是没办法的,具体有关kill的sign…
简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一个最简单的Java应用程序,Hello,Java public class FirstSample { public static void main(String[] args) { System.out.println("We will not use 'Hello, World! '"…
以前在开发时只知道依靠数据库事务来保证程序关闭时数据的完整性. 但有些时候一个业务上要求的原子操作,不一定只包括数据库,比如外部接口或者消息队列.此时数据库事务就无能为力了. 这时我们可以依靠java提供的一个工具方法:java.lang.Runtime.addShutdownHook(Thread hook) addShutdownHook方法可以加入一个钩子,在程序退出时触发该钩子. (退出是指ctrl+c或者kill -15,但如果用kill -9 那是没办法的,具体有关kill的sign…
初步探究java中程序退出.GC垃圾回收时,socket tcp连接的行为 今天在项目开发中需要用到socket tcp连接相关(作为tcp客户端),在思考中发觉需要理清socket主动.被动关闭时发生了什么,所以做了一番实验,验证socket tcp连接在调用close.被GC回收.程序运行完毕退出.程序进程被杀掉时,tcp会产生什么行为.得出了一些结论,记录于此同时分享给大家. 先写出得到的结论: java程序运行完毕退出和被杀进程时,socket tcp连接会被关闭.而且是通过发送RST方…
java程序中为了程序正常运行,需要给无限循环加入一个退出选项,保证程序的可执行性. import java.util.Scanner; public class { public static void main(String[] args) { Scanner scan = new Scanner(System.in); system.out.println("请输入您的操作选项"); int num = scan.nextInt(); switch (num) { case '1…
第 1 部分: 架构概览和安全过滤器 Acegi Security System 是一种功能强大并易于使用的替代性方案,使您不必再为 Java 企业应用程序编写大量的安全代码.虽然它专门针对使用 Spring 框架编写的应用程序,但是任何类型的 Java 应用程序都没有理由不去使用 Acegi.这份共分三部分的系列文章详细介绍了 Acegi,并展示了如何使用它保护简单的企业应用程序以及更复杂的应用程序. 本系列首先介绍企业应用程序中常见的安全问题,并说明 Acegi 如何解决这些问题.您将了解…
长期以来一直都是做java应用的开发,所使用的开发工具基本上也都是基于java的,经常用的有eclipse, netbeans, ant, maven, cruisecontrol, tomcat, findbugs等.在使用这些工具的时候,有时候会碰到OutOfMemory的问题. 问题 -------------------------------------------------------------------------------- 一般在遇到这个问题的时候,我们的第一印象是:一…
了解什么是可见性错误,为什么会发生,以及如何在并发Java应用程序中查找难以捉摸的可见性错误.这些问题你可能也遇到过,当在优锐课学习了一段时间后,我对这些问题有了一定见解,写下这篇文章和大家分享. 检测可见性错误的机会各不相同.在最佳情况下,可以在所有情况的90%中检测到以下可见性错误.在最坏的情况下,检测错误的机会低于百万分之一. 但是首先,什么是可见性错误? 什么是可见性错误? 当线程读取陈旧值时,会发生可见性错误.在以下示例中,一个线程向另一个线程发出信号以停止其while循环的处理: p…
Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直接关系到了很多大型电商网站的访问承载能力.大数据的数据处理量等,它的性能分析和调优往往还可以节省很多的硬件成本. 5.1  JVM基础知识 5.1.1  JVM简介 JVM是Java Virtual Machine(Java虚拟机)的英文简写,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Ja…
在编写Java应用程序(Application)时可以这样: 1,定义包名. 2, 导入相关的包. 3, 定义一个类. 4,定义相关变量. 5,定义构造函数.(在构造函数内调用init()方法和addEvents()方法) 6, 在init()函数中组合各种组件. 7,在addEvents()方法中为各种组件添加事件监听器.(可以有异常的捕获及声明). 8,定义主函数.在主函数中创建一个本类的对象就可以了. 通过构造函数就可以完成调用程序的各种功能. 例子如下: package myclass;…