![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CoreJava
千秋大业一壶茶
世间本无事庸人自扰人
展开
-
Java编程规范整理
一、排版1. 代码采用缩进风格编写,缩进空格数为4,不允许使用Tab缩进(空格缩进可适应不同操作系统和开发工具),采用Ctrl+Shift+F进行格式化。(Eclipse设置空格缩进方法:Window->Preferences->Java->Code Style->Formatter->New->选择Spaces Only->OK)2. 较长的语句,表...2014-03-29 21:36:25 · 174 阅读 · 0 评论 -
EffectiveJava--并发
[b]本章内容:[/b]1. 同步访问共享的可变数据2. 避免过度同步3. executor和task优先干线程4. 并发工具优先于wait和notify5. 线程安全性的文档化6. 慎用延迟初始化7. 不要依赖于线程调度器8. 避免使用线程组[b]1. 同步访问共享的可变数据[/b] 关键字synchronized可以保证在同一时刻,只有一个线程...2014-12-01 21:53:18 · 240 阅读 · 0 评论 -
EffectiveJava--异常
[b]本章内容:[/b]1. 只针对异常的情况才使用异常2. 对可恢复的情况使用受检异常,对编程错误使用运行时异常3. 避免不必要地使用受检的异常4. 优先使用标准的异常5. 抛出与抽象相对应的异常6. 每个方法抛出的异常都要有文档7. 在细节消息中包含能捕获失败的信息8. 努力使失败保持原子性9. 不要忽略异常[b]1. 只针对异常的情况才使用异常[/...2014-11-23 21:47:36 · 195 阅读 · 0 评论 -
EffectiveJava--通用程序设计
[b]本章内容:[/b]1. 将局部变量的作用域最小化2. for-each循环优先于传统的for循环3. 了解和使用类库4. 如果需要精确的答案,请避免使用float和double5. 基本类型优先于装箱基本类型6. 如果其他类型更适合,则尽量避免使用字符串7. 当心字符串连接的性能8. 通过接口引用对象9. 接口优先于反射机制10. 谨慎地使用本地方法...2014-11-20 16:22:01 · 243 阅读 · 0 评论 -
EffectiveJava--方法
[b]本章内容:[/b]1. 检查参数的有效性2. 必要时进行保护性拷贝3. 谨慎设计方法签名4. 慎用重载5. 慎用可变参数6. 返回零长度的数组或者集合,而不是null7. 为所有导出的API元素编写文档注释[b]1. 检查参数的有效性[/b] 每当编写方法或者构造器的时候,应该考虑他的参数有哪些限制。应该把这些限制写到文档中,并且在这个方法体的开...2014-11-16 17:44:38 · 168 阅读 · 0 评论 -
EffectiveJava--枚举和注解
[b]本章内容:[/b]1. 用enum代替int常量2. 用实例域代替序数3. 用EnumSet代替位域4. 用EnumMap代替充数索引5. 用接口模拟可伸缩的枚举6. 注解优先于命名模式7. 坚持使用Override注解8. 用标记接口定义类型[b]1. 用enum代替int常量[/b] 枚举类型是指由一组固定的常量组成合法值的类型,该特征是...2014-11-15 21:23:19 · 358 阅读 · 0 评论 -
EffectiveJava--泛型
[b]本章内容:[/b]1. 请不要在新代码中使用原生态类型2. 消除非受检警告3. 列表优先于数组4. 优先考虑泛型5. 优先考虑泛型方法6. 利用有限制通配符来提升API的灵活性7. 优先考虑类型安全的异构容器[b]1. 请不要在新代码中使用原生态类型[/b] 泛型是指声明中且有一个或者多个类型参数的类或者接口。每个泛型都定义了一个原生态类型,即不...2014-11-08 00:22:20 · 300 阅读 · 0 评论 -
EffectiveJava--类和接口
[b]本章内容:[/b]1. 使类和成员的可访问性最小化2. 在公有类中使用访问方法而非公有域3. 使可变性最小化4. 复合优先于继承5. 要么为继承而设计,并提供文档说明,要么就禁止继承6. 接口优于抽象类7. 接口只用于定义类型8. 类层次优于标签类9. 用函数对象表示策略10. 优先考虑静态成员类(嵌套类)[b]1. 使类和成员的可访问性最小化...2014-11-05 00:30:58 · 207 阅读 · 0 评论 -
EffectiveJava--对象通用方法
[b]本章内容:[/b]1. 覆盖equals时请遵守通用约定2. 覆盖equals时总要覆盖hashCode3. 始终要覆盖toString4. 谨慎地覆盖clone5. 考虑实现Comparable接口[b]1. 覆盖equals时请遵守通用约定[/b] 如果不覆盖equals方法,类的每个实例都只与它自身相等。以下类则不需要覆盖equals方法: ...2014-10-27 22:49:49 · 130 阅读 · 0 评论 -
EffectiveJava--创建和销毁对象
[b]本章内容:[/b]1. 考虑用静态工厂方法代替构造器2. 遇到多个构造器参数时要考虑用构建器(Builder模式)3. 用私有构造器或者枚举类型强化Singleton属性4. 通过私有构造器强化不可实例化的能力5. 避免创建不必要的对象6. 消除过期的对象引用7. 避免使用终结方法[b]1. 考虑用静态工厂方法代替构造器[/b] 类可以通过静态工...2014-10-22 23:38:20 · 194 阅读 · 0 评论 -
Java多线程
[b]一、多线程简介[/b] 对于Java而言,可以在一个程序中并发地启动多个线程,让这些线程在多处理器上同时运行。在单处理器系统中,多个线程共享CPU时间称为时间共享,而操作系统负责调度及分配资源给它们,即使是单处理器,多线程程序的运行速度也比单线程程序更快。 当程序作为一个应用程序运行时,Java解释器为main方法启动一个线程。当程序作为一个applet运行时,Web浏览器启动一...2014-04-28 18:56:39 · 107 阅读 · 0 评论 -
Java异常处理
[b]一、异常简介[/b] 在程序运行过程中,如果环境检测出一个不可以执行的操作,就会出现运行时错误。如果这个错误没有被处理,那么程序将会非正常终止。该如何处理这个异常,以使程序可以继续运行或者平稳终止呢?这就是下面要说到的异常处理。 警告:在这里有必要声明一下,异常处理需要初始化新的异常对象,需要从调用栈返回,而且还需要沿着方法调用链来传播异常以便找到它的异常处理器。所以,异常只...2014-04-27 00:49:55 · 130 阅读 · 0 评论 -
Java集合框架
[b]一、集合框架简介[/b] 数据结构是以某种形式将数据组织在一起的集合。数据结构不权存储数据,还支持那些访问和处理数据的操作。Java提供了几个能更有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架。 在面向对象思想里,一种数据结构也被认为是一个容器,它是一个能存储其他对象的对象,这里的其它对象指数据或者元素,有此人将数据结构称为容器对象。Java集合框架支持以下...2014-04-24 23:56:29 · 145 阅读 · 0 评论 -
EffectiveJava--序列化
[b]本章内容:[/b]1. 谨慎地实现Serializable接口2. 考虑使用自定义的序列化形式3. 保护性地编写readObject方法4. 对于实例控制,枚举类型优先于readResolve5. 考虑用序列化代理代替序列化实例[b]1. 谨慎地实现Serializable接口[/b] 对象序列化API,它提供了一个框架,用来将对象编码成字节流,并从字节...2014-12-03 11:43:31 · 205 阅读 · 0 评论