Java 初始化与清理

本文讨论了Java编程中的一些细节问题,包括使用返回值进行方法重载的误区、this和static关键字的理解、垃圾回收机制以及初始化过程中的注意事项。还介绍了可变参数列表的实际应用和枚举类型的高效使用方法。
摘要由CSDN通过智能技术生成

说实话,关于《JAVA编程思想》中“初始化与清理”章节,我细致看完后,感觉若无所获,让我大失所望,姑且记录在本博客中,是因为希望未来一天再读关于“初始化”、“清理”的时候能够大彻大悟。

一、以返回值区分重载方法

我曾经就干过这样的傻事,项目中我们经常会编写自己的DateUtils包,来转换各种日期格式。

int getFromDate(Date date){
}
long getFromDate(Date date){
}

例如上面这串代码,本意是想通过一个方法名getFromDate来获得日期的long时间戳(13位)或者int时间戳(10位),我原来总觉得这样的写法,编译器应该认为是合乎情理的,但编译器是不通过的。
需要改成这样的写法:

int getIntFromDate(Date date){
}
long getLongFromDate(Date date){
}

有时你并不关心方法的返回值,你想要的是方法调用的其他效果。

所以这种情况下,针对getFromDate方法,编译器就不知道你要调用哪一个?
这里写图片描述

所以,返回值区分重载方法是不可行的。

二、this和static

本来这个小节,我是很感兴趣的,对于这两个关键字,王二一直没有“深入浅出”,以后还需再总结。

三、垃圾回收

Bruce花费了大量的文字来介绍java的垃圾回收机制,无论是“标记-清扫”,还是“停止-复制”,我都没有看明白,没有大彻大悟,实在抱歉,只恨自己脑瓜郁闷。

四、初始化

记得看尚学堂马士兵的视频,或者魔乐科技的李兴华老师视频时,都会花一定的时间介绍java类在初始化时的顺序,今天再次重温了一遍,但依然没啥感觉,不做深究。

①、可变参数列表

可变参数列表其实是很有用的,尤其是在做sql语句的变量赋值时。

public void fillStatement(PreparedStatement pst, Object... paras) throws SQLException {
    for (int i=0; i<paras.length; i++) {
        pst.setObject(i + 1, paras[i]);
    }
}

拼预处理sql语句时,我们基本上都会使用“?”来代替参数,然后将参数放在可变参数paras中,这是非常好用的做法。

②、枚举类型

王二觉得,枚举并没有发挥其原本想要的作用,至少现在看来,枚举在使用过程中还是略显疲态,不过有一个很重要的地方用枚举就特别给力,那就是单例。

public enum Single {
INSTANCE;
}
  1. 非常简洁
  2. 无偿提供序列号机制
  3. 绝对防止多次实例化

这三点在《effective java》中已强烈推荐,实现singleston的最佳方式!关于singleston,还有很多其他的版本,你可以参阅深入浅出单实例Singleton设计模式,非常详细。

本篇我并没有学到太多的至少,水平有限,只能一点一点来,如果你是大神级别的,请自动过滤!


相关文章

王二语录

it will all get better in time, And even though i really love you,i am gonna smile cause i deserve to(一切都会好起来,即便我真的真的爱你,我也要微笑面对,因为我原本如此)──Leona Lewis《Better In Time》
本文出自:【qing_gee的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默王二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值