记一次sftp工具类导致jvm频繁GC事件

背景项目中需要使用sftp进行远程文件的读取,入库。原有代码中存在一个SFTPUtil类,底层使用的是jsch库调用方法。经过事件前一天正好进行了发版,上线版本中,我修改了原有SFTPUtil中的一个问题:原有代码读取完成了之后,没有关闭连接,导致读取了文件之后,连接一直保持着。我在此次版本中关闭了连接。当天中午,...
阅读全文

Java分派

首先来看以下代码的运行结果public class StaticDispatch { static abstract class Human { } static class Man extends Human { } static class Woman extends Hum...
阅读全文

Java为什么会有并发问题?

因为Java是一种多线程的访问处理模型。所以当一个请求过来的时候,Java会将产生一个线程来处理这个请求。如果多个线程访问同一个共享变量的时候,就会出现并发问题。所以,并发问题产生的条件之一是“共享变量”。那么什么样的变量是共享变量呢?这就涉及到Java中的运行时数据区结构了Java运行时数据区...
阅读全文

设计模式之适配器模式

适配器模式的作用适配器模式使得原来由于接口不兼容而不能一起工作的哪些类可以在一起工作。适配器中的角色:目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。适配器(Adapter):通过包装一个需要适配的对象,把原接口转换为目标接口待适配对象(Adaptee):需要...
阅读全文