参数化声明并使用JDK提供的泛型类型和方法通常不会太困难。 但编写自己的泛型类型有点困难,但值得努力学习。 考虑条目 7中的简单堆栈实现:
转载 2023-07-21 19:41:29
87阅读
第1条:用静态工厂方法代替构造器静态工厂方法与构造器不同的第一大优势在于,它们有名称。静态工厂方法与构造器不同的第二大优势在于,不必在每次调用它们的时候都创建一个新对象。 它从来不创建对象。 这种方法类似于享元(Flyweight)模式 。 如果程序经常请求创建相同的对象,并且创建对象的代价很高,则这项技术可以极大地提升性能。      在此,列举单例模式的几种创建方式 :public class
转载 2023-12-14 16:42:40
947阅读
  此文做为《Effective Java》系列的第一篇,所以有必要大概说下此书的特点,当然很多人可能都看过,毕竟是有着Java四大名著之一的大名在外,不过总会有萌新不了解,例如我!《Effective Java第三版较之上一新增了对Java7、8、9的一些新特性的条目。而条目的概念可以理解为武功秘籍中的一招一式,学完了每一招一式,就是神功大成之时。第三版在第二的基础上新增了一些条目数,达到
Tips 《Effective Java, Third Edition》一书英文已经出版,这本书的第二想必很多人都读过,号称Java四大名著之一,不过第二2009年出,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文。供大家学习分享之用。39. 注解优于命名模式过去,通常使用命名模式( naming patter
转载 2023-09-04 22:03:31
186阅读
66. 明智审慎地本地方法Java 本地接口(JNI)允许 Java 程序调用本地方法,这些方法是用 C 或 C++ 等本地编程语言编写的。从历史上看,本地方法主要有种用途。它们提供对特定于平台的设施(如注册中心)的访问。它们提供对现有本地代码库的访问,包括提供对遗留数据访问。最后,本地方法可以通过本地语言编写应用程序中注重性能的部分,以提高性能。使用本地方法访问特定于平台的机制是合法的,但是很
转载 2023-10-03 21:02:52
586阅读
第47条:了解和使用类库Top 100 Java Libraries on Github 2016Library Number of Projects Type % of projects junit.junit 2412 Testing 62.45% Total Projects Tested 3,862 org.slf4j.slf4j-api 895 Logging 23.17% Uniq
第1条:考虑用静态工厂方法代替构造器  通常情况下我们会利用类的构造器对其进行实例化,这似乎毫无疑问。但“静态工厂方法”也需要引起我们的高度注意。   什么是“静态工厂方法”?这不同于设计模式中的工厂方法,我们可以理解它为“在一个类中用一个静态方法来返回这个类的实例”,例如: public static People getInstance() { return new People()
Tips 《Effective Java, Third Edition》一书英文已经出版,这本书的第二想必很多人都读过,号称Java四大名著之一,不过第二2009年出,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文。供大家学习分享之用。条目1. 考虑使用静态工厂方法替代构造方法一个类允许客户端获取其实例的传统方
转载 2023-08-14 10:24:28
1152阅读
effective java(第三版)---读书笔记 第一章 引言 《 Effective Java》这本书并不厚,而且并不适合初学者,适合有一定的工作经验的java攻城狮。这本书不是百科全书式的JAVA 手册,而是试图在讲述如何正确、高效地使用java这门语言来完成日常的开发工作。 如今(2019)java已经诞生了24个年头,在这
总的感想1.注意版本。买书之前,没有确认版本,结果到的时候才发现第二的书是09年印刷,内容是基于jdk5.0 6.0的版本。而最新的第三版是基于较新API的,而且内容已从78条扩充到90条。技术开发,至少作为移动开发者来看,新技术的更新迭代是非常快速的,所以买书的时候看清版本是很重要的,一些过时的经验在新的API中可能是不适用的。第一次在这点上没注意,也算吃一堑长一智吧。2.适用人群。确实,如
转载 2024-04-26 10:47:52
55阅读
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所以JDK 最好下载 JDK 9以上的版本。51. 仔细设计方法签名这一条目是API设计提示的大杂烩,但它们本身并足以设立一个单独的条目。综合起来,这些设计提示将帮助你更容易地学习和使用API,并且更不
转载 2023-07-12 23:22:12
399阅读
Effective Java, Third Edition》一书英文已经出版,这本书的第二想必很多人都读过,号称Java四大名著之一,不过第二2009年出,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。(译者)在这里第一时间翻译成中文。供大家学习分享之用。本书的源代码见 jbloch/effective-java-3e-sour
# 如何下载Effective Java第三版中文PDF 在这篇文章中,我们将讨论如何有效地下载Effective Java第三版的中文PDF。虽然我们将讨论的过程可能会涉及到一些编程技能,但是我将会尽量用通俗易懂的语言来传达所有必要的信息。 ## 整体流程 在我们开始之前,让我们先定义一个整体流程。以下是实现目标的步骤: | 步骤 | 描述 | |------|------| |
原创 2024-09-09 07:07:15
834阅读
1. 安装软件 链接:https://pan.baidu.com/s/1IJoDRnij4W3aAD3jNa8lMA  提取码:51uc  复制这段内容后打开百度网盘手机App,操作更方便哦1.1 JDK 1.81.2 eclipse 企业1.3 Mysql 数据库1.4 Tomcat9.0 2. 安装详细步骤2.1 安装JDK1.8(1)双击下载的JDK
第三版目录第1章第2章创建和销毁对象1  考虑用静态工厂方法替换构造器2  当遇到多个构造器参数时考虑用构建器(建造者)替换3  用私有构造器或者枚举类型强化单例属性4  通过私有构造器强化不可实例化的能力5  依赖注入优先硬连接资源  @6  避免创建不必要的对象7  消除过期的对象引用8  避免使用终结方
转载 2023-09-18 17:02:56
362阅读
# 深入理解Java中的对象创建:基于《Effective Java第三版 在《Effective Java第三版中,作者Joshua Bloch提出了多种创建和管理Java对象的最佳实践。本篇文章将通过一些代码示例,帮助读者深入理解对象创建的有效方式,并讲解在实际开发中的应用。 ## 对象的创建和管理 ### 1. 使用静态工厂方法 Java中的对象通常使用构造方法来创建,但静态工厂
原创 9月前
10阅读
# 深入理解《Effective Java第三版中的最佳实践 《Effective Java第三版是一本广受欢迎的Java编程书籍,提供了许多实用的编程建议和最佳实践。本文将探讨一些重要的编程原则,并通过代码示例来加深理解。 ## 推荐的编程原则 ### 1. 使用静态工厂方法代替构造器 静态工厂方法使得代码更具可读性,并且可以根据需要返回不同类型的对象。例如: ```java pu
原创 10月前
26阅读
50. 必要时进行防御性拷贝愉快使用Java的原因,它是一种安全的语言(safe language)。 这意味着在缺少本地方法(native methods)的情况下,它不受缓冲区溢出,数组溢出,野指针以及其他困扰C和C ++等不安全语言的内存损坏错误的影响。 在一种安全的语言中,无论系统的任何其他部分发生什么,都可以编写类并确切地知道它们的不变量会保持不变。 在将所有内存视为一个巨大数组的语言中
转载 7月前
22阅读
Tips 《Effective Java, Third Edition》一书英文已经出版,这本书的第二想必很多人都读过,号称Java四大名著之一,不过第二2009年出,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文。供大家学习分享之用。嵌套类(nested class)是在另一个类中定义的类。 嵌套类应该只存在
转载 2023-09-27 06:33:05
182阅读
# 充分理解Java最佳实践——《Effective Java第三版Java编程中,如何编写高效、可维护的代码一直是开发者们关注的话题。《Effective Java第三版提供了一系列经典的编程建议,以帮助程序员写出更清晰、简洁和高效的代码。本文将简要介绍几条重要原则,并通过示例进行说明。 ## 一、单一职责原则 每个类应该有且只应有一个原因引起变化。换句话说,类应该仅仅承担一个职责
原创 2024-10-25 05:06:29
51阅读
  • 1
  • 2
  • 3
  • 4
  • 5