首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java的句柄_java获取窗口句柄

java的句柄_java获取窗口句柄

作者头像
全栈程序员站长
发布于 2022-11-02 09:05:53
发布于 2022-11-02 09:05:53
2.7K0
举报

Java代码书写过程,文件资源的释放需要特别谨慎的对待.通常文件资源使用后必须close,然后再删除。

如果先删除但没有close掉,会造成文件句柄未被释放.

这会造成实际使用磁盘空间较大,成为瓶颈

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

public class FileTest {

public static void main(String[] args) {

File file = new File(“/home/admin/a.txt”);

// File file = new File(“c://a.txt”);

FileOutputStream out = null;

try {

out = new FileOutputStream(file);

file.delete();

while(true){

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(out!=null) {

out.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

此时文件关闭了,但是out还持有文件,out未关闭则文件句柄未被释放。造成实际可使用空间小于可使用空间。

2.文件句柄的调试可用lsof 命令进行查看

lsof -s |grep java

lsof -s |grep deleted

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180674.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ucgui在嵌入式linux下的移植
前几天在研究minigui,照着官方的步骤编译,竟然一堆错,不是缺这库,就是缺那库。好不容易快到了最后一步,竟然再链接时告诉我用的64位系统不兼容32位的minigui。
杨永贞
2020/08/04
2.1K0
freetype的交叉编译及在嵌入式linux上的简单使用及改变字体背景和颜色
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。关于freetype的详细信息可以参考freetype的官方网站:https://www.freetype.org/来获取更多相关的信息。
杨永贞
2020/12/16
5.6K0
freetype的交叉编译及在嵌入式linux上的简单使用及改变字体背景和颜色
littlevgl(Lvgl)最新版V7.4移植
LittleVGL最新已经更新到V7,网上大多数移植教程的版本比较老,很多特性没有,界面也不够酷炫。
杨永贞
2020/09/02
3.5K0
sm2,sm3,sm4国密算法的纯c语言版本,使用于任何嵌入式平台
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
杨永贞
2020/08/04
14.7K1
全志V831基于pjsip的双向视频通话实现
注意显示设备的注册顺序,video_dev.c中,注册显示设备的时候,要放到camera适配设备的后面,这样子默认的capture设备,即时不配置,也能找到第一个。
呱牛笔记
2024/07/18
4590
全志V831基于pjsip的双向视频通话实现
Linux应用开发:嵌入式Linux下矢量字体运用
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。关于freetype的详细信息可以参考freetype的官方网站:https://www.freetype.org/来获取更多相关的信息。
DS小龙哥
2022/01/12
4.9K0
Linux应用开发:嵌入式Linux下矢量字体运用
MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀
最近智能小车的项目还在加功能调试中,等后续调试完毕后更文。今天咱们就来分享一个在Github上看到的非常有意思的GUI开源项目。
杨源鑫
2020/05/26
1.3K0
【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?
糖糖小伙,你搞C语言嵌入式开发这么久了,我来考考你u8、u16、u32、s8、s16、s32是什么意思啊?你要是回答的让我满意了,给你升职加薪,从此走上人生巅峰呦~
全栈程序员站长
2022/11/03
5.2K0
【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?
Linux小项目-数码相册设计
这是基于Linux系统开发板设计一个小项目-数码相册,在LCD屏上可以显示完成常见的图片显示,翻页、旋转、缩放等功能。
DS小龙哥
2022/05/11
1.5K0
Linux小项目-数码相册设计
LCD Framebuffer应用开发 - 操作原理
​ LCD Framebuffer 就是一块显存,在嵌入式系统中,显存是被包含在内存中。LCD Framebuffer里的若干字节(根据驱动程序对LCD控制器的配置而定)表示LCD屏幕中的一个像素点,一一对应整个LCD屏幕。举个例子,LCD屏幕是800* 600的分辨率,即LCD屏幕存在480000个像素点,若每个像素点4个字节表示,那么LCD Framebuffer显存大小为480000 * 4=960000字节,即1.92MB。因此我们的内存将会分割至少1.92MB的空间用作显存。具体地址在哪里,这个就是又驱动程序去定,应用程序只需直接使用即可,硬件相关操作已由驱动程序封装好。
阿志小管家
2024/11/23
2280
LCD Framebuffer应用开发 - 操作原理
Linux应用开发-LCD显示BMP图片
BMP是一种与硬件设备无关的图像文件格式,是Windows环境中交换与图有关的数据的一种标准,在Windows环境中运行的图形图像软件都支持BMP图像格式。BMP格式的图片存放的就是原始的RGB数据,一般没有做压缩,也就是图片的画质是最原始的,也导致BMP图片占用的内存非常大。现在常用的jpg、jpeg格式都是压缩格式,保存的时候通过算法编码压缩,显示的时候再解压成RGB数据渲染显示。
DS小龙哥
2022/05/11
4.5K0
Linux应用开发-LCD显示BMP图片
Linux应用开发【第一章】Framebuffer应用开发
​ LCD Framebuffer 就是一块显存,在嵌入式系统中,显存是被包含在内存中。LCD Framebuffer里的若干字节(根据驱动程序对LCD控制器的配置而定)表示LCD屏幕中的一个像素点,一一对应整个LCD屏幕。举个例子,LCD屏幕是800*600的分辨率,即LCD屏幕存在480000个像素点,若每个像素点4个字节表示,那么LCD Framebuffer显存大小为480000 *4=960000字节,即1.92MB。因此我们的内存将会分割至少1.92MB的空间用作显存。具体地址在哪里,这个就是又驱动程序去定,应用程序只需直接使用即可,硬件相关操作已由驱动程序封装好。
韦东山
2021/12/15
2K0
Linux应用开发【第一章】Framebuffer应用开发
Linux应用开发-libjpeg库交叉编译与使用
在开发板上如果想要显示jpeg格式的图片,必须用到libjpeg库,不可能自己去编写jpg的解码代码。
DS小龙哥
2022/05/09
4.3K0
Linux应用开发-libjpeg库交叉编译与使用
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片
显示设备例如 LCD,在 Linux 中用 Framebuffer 来表征, Framebuffer 翻译过来就是帧缓冲,简称 fb,在 /dev 目录下显示设备一般表示成这样:/dev/fbn,应用程序通过访问这个设备来访问 LCD,实际上应用程序通过操作显存来操作显示设备,显存由驱动程序设置。说白了,我们要在 linux 下操作屏幕进行显示那么直接对 /dev/fbn 进行操作即可。
Gnep@97
2023/08/10
1.2K0
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片
i.MX6ULL嵌入式Linux开发2-uboot移植实践
上篇文章,我们介绍了如何使用NXP原厂的uboot进行编译和烧写,将uboot运行在自己的开发板上。NXP原厂的uboot,直接烧录到我的开发板中,LCD的驱动是不正常的,需要进行修改。本篇我们就来继续研究uboot,「使得uboot能匹配我们自己的开发板」。
xxpcb
2021/07/20
1.6K0
STM32CubeMX |42-使用DMA2D加速显存数据传输
STM32CubeMX | 41-使用LTDC驱动TFT-LCD屏幕(RGB屏)。
Mculover666
2021/07/23
3.4K2
STM32CubeMX |42-使用DMA2D加速显存数据传输
C语言实现面向对象的原理
不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语言的语法功能在不断升级变化。
刘盼
2021/01/25
9240
嵌入式Linux下LCD应用编程: 读取摄像头画面完成本地视频监控画面显示
完整项目代码下载地址(包含矢量字库源码和编译安装方法): https://download.csdn.net/download/xiaolong1126626497/16680219
DS小龙哥
2022/01/12
2.4K0
嵌入式Linux下LCD应用编程: 读取摄像头画面完成本地视频监控画面显示
i.MX6ULL嵌入式Linux开发3-Kernel移植
NXP 会从linux内核官网下载某个版本,然后将其移植到自己的 CPU上,测试成功后就会将其开放给NXP的CPU开发者。开发者下载 NXP 提供的 Linux 内核,然后将其移植到自己的产品上。
xxpcb
2021/08/13
1.7K0
Linux驱动开发: FrameBuffe(LCD)驱动开发
帧缓冲(framebuffer)是Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。用户不必关心物理显示缓冲区的具体位置及存放方式,这些都由帧缓冲设备驱动本身来完成。
DS小龙哥
2022/01/12
50.9K0
Linux驱动开发: FrameBuffe(LCD)驱动开发
推荐阅读
相关推荐
ucgui在嵌入式linux下的移植
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档