摘要:
这一点其实深有感触。话不多说,先上代码: 这是一个完整的读取一个文件的第一行字符的代码。 核心其实就两句: 但是为了能够正确的关闭各种资源,代码变得异常冗长。 在Java 7引入try-with-resources之后,所有的问题便得到了解决: 当一个资源类实现了AutoCloseable的时候,我 阅读全文
摘要:
Finalizer和Cleaner并不等同于C++中的析构函数,是不确定多久会被调用的,甚至有时候可能不会被调用,因此除了作为一个安全网或者终止非关键的本地资源,不应该在Finalizer或Cleaner里面包含任何业务代码。 阅读全文
摘要:
java 有很多修饰类的属性的关键字:常用的static,final 说说final和static吧,平时在编程的时候,这两个关键字很多时候都觉得可有可无,最多的时候就是他们俩同时出现 定义常量的时候,其他时候:1.感觉没有对程序正常运行有任何影响 2.不使用这两个关键字看起来也没什么毛病. 这就是 阅读全文
摘要:
大概看了一遍这个小节,其实这种感觉体验最多的应该是C/C++程序,有多杀少个new就得有多个delete. 一直以为Java就不会存在这个问题,看来是我太年轻。 感觉《Effective Java》里面每句话都是浓缩的精华,第一次看就想要明白是什么,为什么,怎么办,还是再去看看资料,《Effecti 阅读全文
摘要:
相信接触过Spring的同学,对于依赖注入并不陌生。 刚开始在听说这个名字的时候,一直不明白到底什么叫依赖注入,后来才发现,依赖注入一直都存在我们日常代码中,只是我们没有刻意的把它提出来,然后再取这样一个名字。 最开始我们在定义一个类的时候它往往会依赖于其他的类,比如拼写检查器依赖于字典: 作为工具 阅读全文
摘要:
在许多时候,我们会写一个类,这个类只是用来提供一些静态方法或静态属性,就好像C++的函数一样,比如 java.lang.Math,java.util.Arrays等,但是有时候这些类的用户可能会在无意思的情况下是构造函数生成一个这个类的对象,但是这个对象没有任何意义。 这样实例类(utility c 阅读全文
摘要:
1.单例类到现在为止算是比较熟悉的一种设计模式了,最开始写单例模式是在C#里面,想要自己实现一个单例类,代码如下: 嗯,这是一贯的写法。 《Effective Java》开篇是这样写的: 感觉这样写也没什么问题啊。为什么自己在刚接触单例类的时候,没有想过呢,或者是太习惯将属性写成private的了, 阅读全文
摘要:
刚开始看见这个标题的时候,我想到了python可以选择初始化参数的语法,C++、C#能有默认参数。 为什么Java什么都没有~~ 好吧,我们是使用构造器来实现它。 1.当一个类的构造函数需要很多构造函数的时候,编程人员往往容易混淆弄错,而且很多情况并不需要这么多的构造函数。 因此: 1)是用默认构造 阅读全文
摘要:
5.7依赖调解 1.当一个项目有以下依赖关系的时候:A->B->C->X(1.0)、A->D->X(2.0),X作为A的传递依赖而拥有两个版本,Maven为了解决以上问题,制定了一下规则: Maven依赖调解第一原则:路径最近者优先。 即:第一条路径的路径长度为3,第二条路径的路径长度为2,则以X( 阅读全文
摘要:
关于JDBC 在《Maven实战》中关于依赖范围scope中的runtime中提到过 在《Effective Java》中有关静态工厂方法替代构造函数的优点中也提到过: 一直不怎么理解JDBC究竟有什么神奇之处。 下面这篇文章讲解的挺清楚,转载一下。 服务提供者框架(Service Provider 阅读全文