首页 / 知识
Java中的无痛资源管理
2023-04-15 02:24:00

Painless resource management in java在C ++中,我们在构造函数中获取资源,然后在析构函数中释放它。 因此,当函数中间出现异常时,将不会发生资源泄漏或锁定的互斥锁或其他任何情况。 AFAIK Java类没有析构函数。 因此,如何用Java进行资源管理。 例如:
如果DoSomething引发异常,如何释放资源? 我们不能在整个代码中放置try catch块,可以吗? 这个问题可以追溯到2008年,因此与Java 6有关。此后Java 7被发布,其中包含自动资源管理的新功能。有关与Java 7相关的最新问题,请参见以下问题: 自动释放资源的Java技术?"及时清理"? 是的,您可以并且应该在代码周围放置try / catch / finally块。在C#中,有一个简短的" using"语句,但是在Java中,您会遇到以下问题:
可以使用Execute around惯用法来排除try / finally(以及异常和算法)。但是,语法非常冗长。
如果您要进行的抽象工作比try / finally多,则这种事情更有意义。例如,使用JDBC,您可以执行一条语句,遍历结果,关闭资源并包装异常。 如果您希望using块参与Java闭包辩论:S 很抱歉让您失望,但是在Java中,我们确实使用try catch finally块很多。"很多"是指很多。有时我确实希望Java具有C#using块。大多数时候,您不需要释放资源,因为Java的垃圾收集器会解决这一问题。 但是,异常确实可以使错误处理更加干净。您可以编写自己的异常,并在执行任何操作时捕获它们。不再向用户返回任意错误代码! |
最新内容
相关内容
linux变量释放命令?
linux变量释放命令?,系统,环境,名称,工具,官网,简介,变量,环境变量,命令,内存,如何手动释放Linux内存?1、也就是说可以通过修改/proc中的文件,linux查看函数命令?
linux查看函数命令?,系统,信息,名称,命令,位置,情况,公用,名字,标准,资料,linux下有没有像查看函数那样直接使用man命令来查看结构体的命令?这linux释放文件命令?
linux释放文件命令?,数据,系统,管理,地址,命令,文件,位置,通信,标准,设备,如何手动释放Linux内存的方法1、重启服务器:重启服务器是释放内存最调用函数命令linux?
调用函数命令linux?,系统,管理,网络,通用,统一,观察,地址,代码,设备,地方,怎么调用system函数,使用Android的linux命令1、int system(const chlinux释放权限的命令?
linux释放权限的命令?,系统,档案,代码,地址,密码,命令,管理,工具,工作,简介,Linux用户以及权限相关常用命令总结1、sudo和su类似,有一些附加的linux查询函数命令?
linux查询函数命令?,系统,信息,名称,标准,函数,百度,代码,名字,最新,实时,Linux下查找一个函数在哪个库文件中1、默认状态下,gcc并不搜索数学库linux端口释放命令?
linux端口释放命令?,网络,系统,信息,服务,情况,端口,命令,灵活,地址,工作,linux命令界面中查看网络连接使用什么命令1、Netstat 命令用于显示linux释放分区命令?
linux释放分区命令?,工具,系统,信息,环境,情况,电脑,分区,命令,数据,第一,linux下如何删除磁盘分区fdisk命令是Linux中的磁盘分区工具,可以用来linux内存释放命令?
linux内存释放命令?,系统,服务,内存,情况,环境,较大,一致,电脑,数据,地方,linux系统如何释放内存1、也就是说系统的内存会为此减少,除非在它之深入理解python函数传参机制
深入理解python函数传参机制,培训,对象,函数,变量,类型,复本,下面,操作,机制,内存,首先需要申明的一点是,python里是没有像C和C++里那样按值传Python中的匿名函数lambda
Python中的匿名函数lambda,代码,地方,名字,主体,名称,培训,函数,表达式,赋值,语句,简述除了def语句之外,Python还提供了一种生成函数对象的表Python有哪些常用函数?
Python有哪些常用函数?,数据,函数,地址,数字,培训,工作,网络,位置,字符串,字符,Python常用函数有哪些?我想大家都比较好奇这个问题,今天小编特