java开发日常问题

最近程序媛小白在开发中遇到的一些低级错误,但为了避免同样的错误再次出现,还是记录下来

  1. 第一 日期格式化问题

yyyy年MM月dd日 写成了大写的 YYYY,转换会出现意想不到的日期!!

     2  file.delete()并未释放磁盘空间

java代码里处理文件删除后,linux服务器上的磁盘空间并没有真的释放,
为什么呢?文件句柄依然在?怎么彻底释放空间呢?
(1)背景:小白在处理导出数据时发现一般一个txt 有8G,这么跑下去磁盘早晚会爆,想着把txt压缩成zip文件后,把源文件txt删除,会不会空间会小一些,因为zip后也有差不多1G左右,但zip后源文件txt已经删除后磁盘空间依然不释放(因为晚上22点收到了磁盘告警>80%),100G的磁盘空间,使用了81G,但du -sh * 看数据文件已经不大了,找不到是哪儿占用的!最后通过分析剩下要跑的数据不到2G,剩下的20G足够;先睡觉第二天换个脑子,但疑问还是未解开,那81G是怎么回事??!

第二天早早到了公司心想数据都跑完了,要不重启下服务看下是否会释放磁盘空间,果然重启后磁盘占用率变成1%,直觉有时是最简单有效的呢,但也需要谨慎,能否重启是因为它是一个跑数据的java进程,不涉及生产服务所以敢重启呢。

看来释放java进程删除文件未释放的空间,最简单粗暴的办法是重启java进程,有没有其他一劳永逸的方法呢?总不能程序跑着还得有人盯着磁盘满不满?那也太...

网上提供了一个方法说先把文件清空,然后再删除,先用这个笨方法

   3 数据库时区问题

其实数据库时区是SYSTEM,并没有问题,是代码里的日期转换类设置的时区是UTC,导致写入数据库的时间+8小时!
假如数据库时区不是当地时区,可以通过在jdbc连接上加上serverTimeZone=Asia/Shanghai来设置当地时区
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值