Java 初始化与清理

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/50343489 说实话,关于《JAVA编程思想》中“初始化与清理”章节,我细致看完后,感觉若无所获,让我大失所望,姑且记录在本博客中,是因为希望未来一天再读关于“初始化”、“清理”的时候能够大彻大悟。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/50343489

说实话,关于《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的博客

相关文章
|
5月前
|
Java
java初始化、执行顺序
java初始化、执行顺序
27 0
|
4月前
|
Java
Java | 类、实例初始化 、方法重写规则
Java | 类、实例初始化 、方法重写规则
25 0
|
1月前
|
存储 Java 索引
Java数组的初始化
Java数组的初始化
12 0
|
2月前
|
缓存 Java 编译器
Java 构造函数与修饰符详解:初始化对象与控制权限
Java 构造函数 是一种特殊的类方法,用于在创建对象时初始化对象的属性。它与类名相同,并且没有返回值类型。 构造函数的作用: 为对象的属性设置初始值 执行必要的初始化操作
54 0
|
3月前
|
Java
java初始化list的几种方式
java初始化list的几种方式
20 0
|
4月前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
|
4月前
|
Java
java变量声明和初始化
java变量声明和初始化
38 1
|
4月前
|
Java
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
Java【代码 15】文件操作相关方法(获取文件、复制文件、创建文件夹、获取图片文件、写出数据到文件、清理文件夹)
29 0
|
4月前
|
Java
Java【代码 14】一个用于判断磁盘空间和分区表是否需要清理的工具类
Java【代码 14】一个用于判断磁盘空间和分区表是否需要清理的工具类
25 0
|
4月前
|
存储 安全 Java
Trembling ! Java类的加载过程详解(加载验证准备解析初始化使用卸载)
Trembling ! Java类的加载过程详解(加载验证准备解析初始化使用卸载)
34 0